Bài giảng Hệ điều hành (Operating System) - Nguyễn Hoàng Việt - Chương 2: Cấu trúc hệ điều hành

Các thành phần của hệ điều hành

ƒ Các dịch vụmà hệ điều hành cung cấp

ƒ Lời gọi hệthống

ƒ Các chương trình hệthống

ƒ Cấu trúc hệ điều hành

ƒ Cài đặt hệ điều hành

ƒ Tạo môi trường hệthống

pdf40 trang | Chuyên mục: Hệ Điều Hành | Chia sẻ: dkS00TYs | Lượt xem: 2952 | Lượt tải: 5download
Tóm tắt nội dung Bài giảng Hệ điều hành (Operating System) - Nguyễn Hoàng Việt - Chương 2: Cấu trúc hệ điều hành, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
quá trình (Process control)
ƒ Quản lý file (File management)
ƒ Quản lý thiết bị (Device management)
ƒ Duy trì thông tin trạng thái (Information maintenance)
ƒ Giao tiếp (Communication)
Nguyễn Hoàng Việt – Khoa Công Nghệ Thông Tin ĐHCT (2007) 2.19
Lời gọi hệ thống (5)
Các dạng của lời gọi hệ thống (tt)
ƒ Process control:
• end, abort
• load, execute
• create process, terminate process
• get process attributes, set process attributes
• wait for time
• wait event, signal event
• allocate and free memory
ƒ File management:
• create file, delete file
• open, close
• read, write, reposition
• get file attributes, set file attributes
Nguyễn Hoàng Việt – Khoa Công Nghệ Thông Tin ĐHCT (2007) 2.20
Lời gọi hệ thống (6)
Các dạng của lời gọi hệ thống (tt)
ƒ Device management:
• request device, release device
• read, write, reposition
• get device attributes, set device attributes
• logically attach or detach devices
ƒ Information maintenance:
• get time or date, set time or date
• get system data, set system data
• get process, file, or device attributes
• set process, file, or device attributes
ƒ Communications:
• create, delete communication connection
• send, receive message
• Transfer status information
• Attach or detach remote device
Nguyễn Hoàng Việt – Khoa Công Nghệ Thông Tin ĐHCT (2007) 2.21
Lời gọi hệ thống (7)
Thực thi chương trình trong MS-DOS
Lúc hệ thống khởi động Chạy một chương trình
Nguyễn Hoàng Việt – Khoa Công Nghệ Thông Tin ĐHCT (2007) 2.22
Lời gọi hệ thống (8)
UNIX chạy nhiều chương trình cùng lúc
Nguyễn Hoàng Việt – Khoa Công Nghệ Thông Tin ĐHCT (2007) 2.23
Lời gọi hệ thống (9)
Các mô hình giao tiếp (Communication Models)
Chuyển thông điệp (Message Passing) Bộ nhớ chia sẻ (Shared Memory)
ƒ Message Passing: trao đổi thông tin dựa vào phương tiện giao tiếp liên 
quá trình cung cấp bởi HĐH
ƒ Shared Memory: các quá trình dùng Map Memory System Calls để truy 
cập vào shared memory
Nguyễn Hoàng Việt – Khoa Công Nghệ Thông Tin ĐHCT (2007) 2.24
Chương trình hệ thống (System Program)
ƒ Chương trình hệ thống cung cấp môi trường thuận lợi cho việc 
phát triển và thực thi chương trình.
ƒ Một số là các giao diện người dùng đơn giản cho các lời gọi hệ 
thống. 
ƒ Người dùng hầu như nhìn HĐH qua các chương trình hệ thống, 
không qua các lời gọi hệ thống.
ƒ Các loại chương trình hệ thống:
• Thao tác tập tin
• Thông tin trạng thái
• Điều chỉnh tập tin
• Hỗ trợ ngôn ngữ lập trình
• Nạp và thực thi chương trình
• Giao tiếp giữa các quá trình, người dùng, các máy tính
Nguyễn Hoàng Việt – Khoa Công Nghệ Thông Tin ĐHCT (2007) 2.25
Cấu trúc HĐH (1)
Các cấu trúc HĐH
ƒ Tổ chức của các thành phần HĐH để xác định đặc quyền mà 
mỗi thành phần thực hiện
ƒ Ba loại cấu trúc:
• Nguyên khối (Monolithic): tất cả các thành phần chứa trong nhân 
(kernel)
• Vi nhân (Microkernel): chỉ những thành phần chủ yếu bao gồm 
trong kernel
• Phân tầng (Layered): phương pháp trên-xuống (top-down), tách 
biệt các chức năng và các đặc điểm trong các thành phần
Nguyễn Hoàng Việt – Khoa Công Nghệ Thông Tin ĐHCT (2007) 2.26
Cấu trúc HĐH (2)
Cấu trúc hệ thống MS-DOS
Cấu trúc phân tầng của MS-DOS
ƒ MS-DOS – được viết để 
cung cấp nhiều chức 
năng nhất với dung 
lượng nhỏ nhất.
• Không được chia thành 
các modules.
• Mặc dù MS-DOS có cấu 
trúc nào đó, các mức 
chức năng và giao diện 
giữa chúng không được 
tách biệt.
Nguyễn Hoàng Việt – Khoa Công Nghệ Thông Tin ĐHCT (2007) 2.27
Cấu trúc HĐH (3)
Cấu trúc của hệ thống UNIX 
ƒ UNIX – bị giới hạn bởi chức năng phần cứng, HĐH UNIX khởi 
thủy có cấu trúc giới hạn. 
ƒ HĐH UNIX bao gồm hai phần tách biệt.
• Các chương trình hệ thống
• Nhân (kernel)
9 Bao gồm mọi thứ phía dưới giao diện lời gọi hệ thống và phía trên 
phần cứng vật lý.
9 Cung cấp cơ chế quản lý hệ thống tập tin, định thời CPU, quản lý
bộ nhớ và các chức năng khác của HĐH
Nguyễn Hoàng Việt – Khoa Công Nghệ Thông Tin ĐHCT (2007) 2.28
Cấu trúc HĐH (4)
Cấu trúc của hệ thống UNIX 
Nguyễn Hoàng Việt – Khoa Công Nghệ Thông Tin ĐHCT (2007) 2.29
Cấu trúc HĐH - Vi nhân (1)
(Microkernel)
ƒ 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 bằng 
cơ chế chuyển thông điệp gián tiếp thông qua nhân
ƒ Lợi ích:
• Dễ dàng mở rộng HĐH như các dịch vụ mới, đưa vào không gian 
người dùng
• Dễ dàng chuyển đổi HĐH sang các kiến trúc mới do nhân nhỏ hơn
• Tin cậy và an toàn hơn (ít mã lệnh chạy ở mức nhân hơn)
Nguyễn Hoàng Việt – Khoa Công Nghệ Thông Tin ĐHCT (2007) 2.30
Cấu trúc HĐH - Vi nhân (2)
Kiến trúc Client-Server của Windows NT
ƒ Các ứng dụng khác nhau (Win32, OS/2, POSIX) chạy trên không gian 
người dùng
ƒ Server cho mỗi ứng dụng chạy trên không gian người dùng
ƒ Message Passing giữa các client application programs và application 
servers chạy trong không gian nhân 
Nguyễn Hoàng Việt – Khoa Công Nghệ Thông Tin ĐHCT (2007) 2.31
Cấu trúc HĐH - Phân tầng (1)
(Layered Structure) 
ƒ HĐH đượ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 tầng 
khác thấp hơn. Tầng 
thấp nhất (layer 0) là 
tầng vật lý, tầng cao nhất 
(layer N) là giao diện với 
người dùng.
ƒ Sự phân chia chức năng 
được thực hiện sao cho 
mỗi một tầng sẽ sử dụng 
các chức năng (thao tác) 
và các dịch vụ được 
cung cấp chỉ bởi các 
tầng mức thấp hơn.
Nguyễn Hoàng Việt – Khoa Công Nghệ Thông Tin ĐHCT (2007) 2.32
Cấu trúc HĐH - Phân tầng (2)
Kiến trúc phân tầng của OS/2
Nguyễn Hoàng Việt – Khoa Công Nghệ Thông Tin ĐHCT (2007) 2.33
Cấu trúc HĐH - Phân tầng (3)
Thuận lợi và khó khăn
ƒ Thuận lợi:
• Tính module (modularity) → đơn giản hóa trong việc thiết kế, cài 
đặt, gỡ rối và kiểm tra hệ thống.
• Đơn giản hóa được thể hiện qua việc có thể sửa đổi, cải tiến tại 
từng tầng, không ảnh hưởng đến các tầng khác. 
ƒ Khó khăn: 
• Cần phải định nghĩa cẩn thận chức năng các tầng vì mỗi tầng chỉ 
có thể sử dụng các tầng dưới nó.
• Đôi khi khó khăn trong việc xác định một chức năng của HĐH nằm 
tại tầng nào.
• Tăng phí tổn về thời gian cho việc gọi các lời gọi hệ thống thông 
qua nhiều tầng.
Nguyễn Hoàng Việt – Khoa Công Nghệ Thông Tin ĐHCT (2007) 2.34
Cấu trúc HĐH - Máy ảo (1)
(Virtual Machine)
ƒ Máy ảo sử dụng mô hình 
phân tầng. Nó xem phần 
cứng và nhân HĐH đều là 
phần cứng.
ƒ Một máy ảo cung cấp giao 
diện đồng nhất cho phần 
cứng thực bên dưới.
ƒ Tài nguyên thực của máy 
tính được chia sẻ để tạo ra 
các máy ảo
ƒ HĐH tạo ảo giác nhiều 
máy (nhiều quá trình), mỗi 
máy sử dụng phần CPU và 
bộ nhớ ảo của nó giống 
như hệ thống truyền thống. Không là máy ảo Máy ảo
Nguyễn Hoàng Việt – Khoa Công Nghệ Thông Tin ĐHCT (2007) 2.35
Cấu trúc HĐH - Máy ảo (2)
Ưu điểm và nhược điểm của máy ảo 
ƒ Máy ảo cung cấp cơ chế bảo vệ tuyệt đối các tài nguyên hệ 
thống do mỗi máy ảo được tách biệt khỏi tất cả các máy ảo 
khác. Tuy nhiên, sự tách biệt này không cho phép việc chia sẻ 
trực tiếp tài nguyên.
ƒ Hệ thống máy ảo là công cụ hoàn hảo cho việc nghiên cứu và 
phát triển HĐH. 
• Việc phát triển hệ thống được hoàn thành trên máy ảo thay vì trên 
máy tính vật lý thật, vì vậy nó không ngắt quãng hoạt động bình 
thường của hệ thống.
ƒ Máy ảo khó cài đặt do yêu cầu đặt ra là phải cung cấp bản sao 
chính xác phần cứng của máy thật.
Nguyễn Hoàng Việt – Khoa Công Nghệ Thông Tin ĐHCT (2007) 2.36
Cấu trúc HĐH - Máy ảo (3)
Java Virtual Machine (JVM)
ƒ Các chương trình Java đã biên dịch là 
các mã-byte nền trung lập (platform-
neutral bytecodes) và được thực hiện 
bởi JVM.
ƒ JVM bao gồm:
• class loader
• class verifier
• runtime interpreter
ƒ Việc đọc và thông dịch bytecodes khi 
chạy của JVM sẽ làm giảm hiệu suất 
của ứng dụng. JIT (Just-In-Time) 
compilers giúp tăng hiệu suất
• Biến đổi architecture-neural bytecodes 
thành ngôn ngữ máy
Nguyễn Hoàng Việt – Khoa Công Nghệ Thông Tin ĐHCT (2007) 2.37
Cài đặt HĐH (1)
Mục tiêu thiết kế hệ thống
ƒ Mục tiêu người dùng: HĐH phải dễ dùng, dễ học, tin cậy, an 
toàn và nhanh.
ƒ Mục tiêu hệ thống: HĐH phải dễ thiết kế, cài đặt, bảo trì, cũng 
như phải linh họat, tin cậy, không lỗi và hiệu quả.
Nguyễn Hoàng Việt – Khoa Công Nghệ Thông Tin ĐHCT (2007) 2.38
Cài đặt HĐH (2)
Các cơ chế và chiến lược
ƒ Cơ chế (mechanism) xác định cách thực hiện một việc
ƒ Chiến lược (policy) quyết định cái gì sẽ được làm
ƒ Việc tách chiến lược ra khỏi cơ chế cho phép đạt được sự linh 
họat tối đa
• Các quyết định về chiến lược có thể thay đổi sau đó
• HĐH hành dạng Microkernel cài đặt một tập hợp các hàm cơ 
(primitive) cho phép tạo các khối cho hầu hết các chiến lược
ƒ Các quyết định về chiến lược phải được xác lập cho tất cả các 
vấn đề về cấp phát tài nguyên (resource allocation) và định thời
(scheduling)
Nguyễn Hoàng Việt – Khoa Công Nghệ Thông Tin ĐHCT (2007) 2.39
Cài đặt HĐH (3)
Cài đặt hệ thống
ƒ Thay vì được viết bằng hợp ngữ theo truyền thống, ngày nay 
HĐH có thể được viết bằng các ngôn ngữ lập trình cấp cao.
ƒ Mã lệnh được viết ở ngôn ngữ cấp cao:
• Có thể được viết nhanh hơn.
• Gói gọn hơn.
• Dễ hiểu và sửa lỗi hơn.
ƒ Một HĐH có thể được chuyển đổi (sang hệ thống phần cứng 
khác) dễ dàng hơn nhiều nếu nó được viết bằng ngôn ngữ lập 
trình cấp cao.
Nguyễn Hoàng Việt – Khoa Công Nghệ Thông Tin ĐHCT (2007) 2.40
Tạo môi trường hệ thống
(SYSGEN – System Generation)
ƒ HĐH được thiết kế để có thể chạy trên bất kỳ dạng máy
• Hệ thống phải được cấu hình cho mỗi dạng máy tính cụ thể - một 
quá trình được gọi là SYSGEN (System Generation).
ƒ SYSGEN nhận các thông tin về cấu hình cụ thể của phần cứng 
hệ thống và các tùy chọn cụ thể của HĐH
• CPU, bộ nhớ, thiết bị
• HĐH sẽ làm cho tương hợp bằng cách tái biên dịch
ƒ Booting: khởi động máy tính bằng cách nạp kernel
• Chương trình Bootstrap: các mã lệnh được trữ trong RAM. Nó có 
thể định vị kernel, nạp nó vào bộ nhớ và cho thực thi

File đính kèm:

  • pdfBài giảng Hệ điều hành (Operating System) - Nguyễn Hoàng Việt - Chương 2 Cấu trúc hệ điều hành.pdf