Các dịch vụ của hệ điều hành ¢ HDH cung cấp môi trường cho các chương trình thực thi và các dịch vụ cho các chương trình và người dùng.. ° - Các dịch vụ cung cấp các tính năng hữu ích
Trang 1Chương II: Cấu Trúc Hệ
Điều Hành
Khoa Công Nghệ Thông Tin & Truyền Thông
Dai hoc Can Tho
Giang vién: Ha Duy An
Trang 2NỘI DUNG
Các dịch vụ của hệ điều hành
Giao điện người dùng
Lời goi hệ thông
Trang 31 Các dịch vụ
của hệ điều hành
Trang 4Mô hình kiến trúc dich vu cua HDH
user and other system programs
execution operations systems communication
protection
and
security
error detection
Trang 5Các dịch vụ của hệ điều hành
¢ HDH cung cấp môi trường cho các chương trình thực thi và các dịch vụ cho các chương trình và người dùng
° - Các dịch vụ cung cấp các tính năng hữu ích với người dùng:
o User interface (UI) - Hau hết tất cả các hệ điều hành điều có một giao dién nguoi dung: Command-Line (CLI), Graphics User Interface (GUI), Batch
o Program execution — nạp chương trình vào bộ nhớ, thực thi và kết thúc nó
o I/O operations — do chương trình người dùng không thể thực hiện trực tiếp các thao tác IO, HĐH phải cung câp phương tiện
để thực hiện thao tác I/O (file trên đĩa hay các thiết bị I/O khác)
o File- “sytem manipulation — cung cấp các phương tiện dé chương trình có thể đọc, ghi, tạo, xóa, liệt kê, tìm kiêm, quản lý quyên truy cập trên tập tin/thư mục
Trang 6o Có thê tôn tai trong CPU, memory, I/O devices, user program
© Với mỗi loại lỗi, HĐH cân có một cơ chế thích hop dé dam bao
việc tính toán là chính xác và nhất quán
Trang 7Các dịch vụ của hệ điều hành (tt)
¢ Cac dich vu dam bao su hoat dong higu qua của chính hệ
thông với cơ chê chia sẽ tài nguyên
o Resource allocation — khi có nhiều người dùng hay nhiều công việc dang thực thì đồng thời, các nguôn tài nguyên phải được câp phát cho môi công việc
°Ổ Có nhiều loại tài tài nguyên — một vài loại có mã cấp phát riêng biệt (CPU cycles, main memory, file storage), những loại khác có mã yêu câu và giải phóng tài nguyên chung (L/O devices)
O Accounting - theo dõi va ghi lại thông tin sử dụng tài nguyên của người dùng để làm cơ sở tính tiên sử dụng hệ thông hoặc thông kê sử dụng
Trang 92 Giao điện người dùng
Trang 10User Interface - CLI
¢ CLI hay command interpreter cho phép nhập các câu lệnh trực tiếp
O Co thê được cài đặt trong nhân hay như là một chương trình hệ
thong (system program)
o Mot hé thông có thể cài đặt nhiêu CLI — shells
° Các CLI có thể được cung cấp bởi bên thứ 3
o Chức năng chính là lấy lệnh từ người dùng và thực thi nó
o Các lệnh trên shell có thể được cài đặt:
°Ò Shell chứa mã thực thi các lệnh của người dùng
°Ồ Shell thực thi các lệnh của người dùng bằng cách gọi các chương
trình bên ngoài => chương trình CLI nhỏ, việc cập nhật các lệnh
không ảnh hưởng đến CLI
Trang 11Microsoft Windows Command Promt
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation
tb-1n-f125: 5222 w1k1med1a- lb: http Z5:http
Trang 12
User Operating System Interface - GUI
°« Giao diện người dùng đô họa (Desktop): thân thiện, dé sử
dụng
o Mouse, keyboard, monitor
o Icons hién thi file, chuong trinh, thao tac,
© Các sự kiện chuột trên những đôi tượng khác nhau trên giao diện
là cơ sở cho các thao tác khác nhau
o Phat minh tai Xerox PARC
¢ Nhiéu hé thong ngay nay cé ca CLI va GUI:
Trang 13Touchscreen Interfaces
° SA ` ` > „ at_.CELCOM © 03:26PM -:,: @ 93% mm
¢ Giao dién man hinh cam tng: ~~ —
o Khong su dung chuodt
O Cac thao tac dua trén cử chỉ Messages Calendar Photos Camera
Trang 143 Lời gọi hệ thống
Trang 15Lời gọi hệ thống
- Loi goi hé thong (System call) la giao diện lập trình để sử
dụng các dịch vụ được cung câp bởi hệ điêu hành
° _ Thường được viết băng ngôn ngữ cấp cao (C, C++)
¢ Hau hét các chương trình sử dụng system call thông qua một giao diện lập trình ứng dụng ở mức cao (API) hơn là dùng trực tiêp
¢ |3 API phô biến nhất:
o Windows API (HDH Windows)
o POSIX API cho POSIX-based systems (tất cả các phiên bản của
UNIX, Linux, Mac OS X)
o Java API cho Java virtual machine (JVM)
Trang 16
Open the input file
if file doesn't exist, abort
Create output file
if file exists, abort Loop
Read from input file Write to output file Until read fails Close output file Write completion message to screen
Trang 17Cài đặt lời gọi hệ thống
° Giao diện lời gọi hệ thông (System-call interface): cung cấp giao
diện trực tiếp đến các lời gọi hệ thông bên trong nhân => bắt các lời
gọi hàm trong API và gọi các lời gọi hệ thông cân thiết
¢ Thong thường, mỗi system call sẽ được kết hợp với một số
O Giao diện lời gọi hệ thông duy trì một bảng được lặp chỉ mục theo các
sô này
« Giao diện lời gọi hệ thông gọi system call được chỉ định trong nhân HĐH (OS kernel) và trả về trạng thái + giá trị (nêu có) của lời gọi hệ thông
° Người lập trình không cân biết bất cứ gì về cách thức system call
được cài đặt
o Chỉ cân tuân theo API va hiểu HĐH sẽ làm gì khi thực hiện một lời gọi
o Hau hét cac chi tiết của giao diện HĐH ân với người lập trình bởi API
Trang 18API - System Call - OS
user mode kernel
Trang 19Truyền tham số cho lời gọi hệ thống
°Ồ Thông thường, nhiêu thông tin được yêu câu hơn là chỉ có
định danh của lời gọi hệ thông (kiêu, đữ liệu, tùy chọn)
° - Nhìn chung có 3 phương pháp đề truyền tham số cho HĐH:
o Đơn giản nhất: truyền qua các thanh ghi
°©_ Có thể có nhiêu tham số hơn số lượng thanh ghi có thê chứa
o Các tham số được lưu trữ như là một khôi (block) hay bang
(table) trong bộ nhớ và địa chỉ của khôi hay bảng tham sô được truyên như là một tham sô vào thanh ghi (Linux, Solaris)
o Dung stack: các tham sô duoc dat (pushed) vao stack boi chương trình và lây ra bởi HDH
O Phuong phap dung block hay stack không giới hạn số lượng hay chiêu dài của tham số cân truyền
Trang 20Tham số được truyền qua bảng
Trang 21Các kiểu System Call
¢ Cac System Call co thé được nhóm vào trong 6 loại chính: process control, file manipulation, device manipulation, information maintenance, communications, protection
¢ Process control
o end, abort
o load, execute
© create process, terminate process
get process attributes, set process attributes wait for time
wait event, signal event allocate and free memory
Trang 22Các kiểu System Call (tt)
°ÒỒ File management
o create file, delete file
o open, close file
o read, write, reposition
o get and set file attributes
¢ Device management
© request device, release device
o read, write, reposition
o get device attributes, set device attributes
o logically attach or detach devices
Trang 23
Các kiểu System Call (tt)
¢ Information maintenance
o get time or date, set time or date
o get system data, set system data
o get and set process, file, or device attributes
¢ Communications
o create, delete communication connection
© send, receive messages if message passing model to host name or process name
¢ From client to server
o Shared-memory model create and gain access to memory regions
o transfer status information
o attach and detach remote devices
Trang 24Các kiểu System Call (tt)
¢ Protection
o Control access to resources
o Get and set permissions
o Allow and deny user access
Trang 25Ví dụ về System Calls trong Windows và
File Manipulation
Device Manipulation
Information Maintenance
Communication
Protection
Windows
CreateProcess() ExitProcess()
WaitForSingleObject()
CreateFile()
ReadFile() WriteFlle() CloseHandle()
SetConsoleMode()
ReadConsole()
WriteConsole()
GetCurrentProcessID() SetTimer()
Sleep() CreatePipe() CreateFileMapping() MapViewOfFile() SetFileSecurity()
InitlializeSecurityDescriptor()
SetSecurityDescriptorGroup()
Unix
fork() exit() wait()
open()
read() write) close() 1octl() read() write()
getpid() alarm () sleep()
Trang 26
4 Chương trình hệ thống
Trang 27Chương trình hệ thống
° Các chương trình hệ thông (System Programs) cung cấp một môi
trường thuận lợi cho việc phát triển và thực thi chương trình Nó có
thể đơn giản là giao diện đến các lời gọi hệ thông hay phức tạp hơn
Trang 28Chương trình hệ thống (tt)
¢ File management — Create, delete, copy, rename, print, dump,
list, va cac thao tac chung trén cac file va thu muc
¢ Status information
o Là những chương trình yêu câu hệ thông cung cấp các thông tin như ngày, giờ, lượng bộ nhớ hay đĩa sẵn dùng, số lượng người dùng
o Hay các thông tin chi tiết phức tạp hơn: tình trạng thực thi, logging, debugging
o Cac chuong trình này dinh dang va xuat dir liéu ra may in hay
Trang 29Chương trình hệ thống (tt)
¢ File modification
o Cac trinh soan thao van ban dung để tạo và sửa đối file
o_Có cung cập các lệnh đề tìm kiêm nội dung file hay thực hiện
việc chuyên đôi văn bản
¢ Programming-language support — Compilers, assemblers,
debuggers, interpreters cho cdc ng6n ngữ phố biên
¢ Program loading and execution — Absolute loaders,
relocatable loaders, linkage editors, and overlay-loaders,
debugging systems for higher-level and machine language
¢ Communications — cung cap cơ chế để tạo các kết nỗi ảo giữa các tiễn trình, người dùng hay các hệ thông máy tính
Trang 30Chương trình hệ thống (tt)
¢ Background Services: disk checking, error monitoring, network daemon
o Khởi chạy vào thời gian hệ thông được khởi động
°_ Vài chương trình dùng để khởi động hệ thông, sau đó kết thúc
°- Vài chương trình thực thi đên khi hệ thông shutdown
o Chay trong chế độ người dùng
© Được biêt như là services, subsystems, daemons
Trang 315 Thiết kế và cài đặt HDH
Trang 32Thiết kế
Có nhiêu hướng tiêp cận
Câu trúc bên trong các HĐH có thể rất khác nhau
Bat dau bang việc xác định các mục tiêu và đặt tả kỹ thuật
o Phân cứng, kiểu hệ thông (batch, time sharing, single user, multiuser, distributed, real time, or general purpose)
¢ Muc tiéu ngudi ding va muc tiéu hé thong:
© Mục tiêu người dùng: HDH cân tiện dung, dé hoc, đáng tin cậy,
an toàn và nhanh
o Mục tiêu hệ thông: HĐH cân dễ thiết kê, cài đặt và bảo trì, linh
hoạt, tin cậy, không lôi và hiệu quả
Trang 34o Các chương trình hệ thông: C, C++, scripting languages (PERL,
Python, shell scripts)
° Mie dùng ngôn ngữ cấp cao cho phép HĐH dễ thực thi trên
ác phân cứng khác nhau nhưng chậm hơn
Trang 35
6 Cau trúc HĐH
Các hệ điêu hành đa mục đích rất lớn và phức tạp
S Các thành phần can được bố trí can than
=> đảm bảo các chức năng và dễ bổ xung sửa đổi
Trang 36Cấu trúc đơn giản
cung cap nhiéu chirc nang
nhất với dung lượng nhỏ
MS-DOS device drivers
ROM BIOS device drivers py
Chuong 2: Cau tric hé diéu hanh e
Trang 37Cấu trúc đơn giản (tt)
°Ò UNIX - bị giới hạn bởi phần cứng, hệ điều hành UNIX khởi
đâu có cấu trúc giới hạn Gồm 2 phân riêng biệt:
° Cung cấp hệ thống quản lý tập tin, định thời CPU, quản lý bộ nhớ,
và các chức năng khác của HDH => một lượng lớn các chức năng trong cùng một mức
Trang 38Cấu trúc của HĐH UNIX truyền thống
system-call interface to the kernel
— signals terminal file system CPU scheduling
c l handling swapping block I/O page replacement
o character I/O system system demand paging
terminal drivers disk and tape drivers virtual memory
kernel interface to the hardware
terminal controllers device controllers memory controllers
terminals disks and tapes physical memory
Trang 39
Cấu trúc phân tầng
° HDH được chia thành một
sô tâng (mức), mỗi tâng
được xây dựng trên nên tảng
của một tang khac thap hon
Tang thap nhat (layer 0) là
tâng vật ly, tâng cao nhất
(layer N) là giao diện người
dùng
*°® Sự phân chia chức năng
được thực hiện sao cho mỗi
Trang 40Cấu trúc Vi nhân
° - Di chuyên nhiều chức năng từ nhân lên mức người dùng, giữ lại các phân chính yêu: quản lý quá trình, bộ nhớ, giao tiêp giữa các quá trình —> nhân nhỏ hơn
° - Giao tiếp giữa các quá trình người dùng được thực hiện bang cơ chê chuyên thông điệp gián tiêp thông qua nhân
Trang 41Cấu trúc Vi nhân (tt)
Application Program
lnterprocess Communication
Trang 42Modules
° - Hâu hết các HĐH dùng các loadable kernel module
o Dung tiếp cận hướng đối tượng
o Các thành phân lõi được tách ra
o Giao tiếp với nhau thông qua các interface
© Được nạp vào trong nhân khi cân thiết
° Nhin chung gân giông với kiến trúc phân tầng nhưng linh hoạt hơn
o Linux, Solaris, Mac OS X, Windows,
Trang 43
core Solaris kernel
Trang 44Hệ thống lai (Hybrid System)
¢ Hau hết các hệ điều hành không thật sự dùng một kiểu câu trúc
đơn nhât
o Kết hợp nhiêu hướng tiếp cận nhăm đạt được hiệu suất, độ an
toàn, khả năng linh hoạt cao nhât có thê
Trang 45THE END!