Bài giảng Hệ điều hành - Chương II: Cấu trúc hệ điều hành - Trần Công Án
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Hệ điều hành - Chương II: Cấu trúc hệ điều hành - Trần Công Án", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- bai_giang_he_dieu_hanh_chuong_ii_cau_truc_he_dieu_hanh_tran.pdf
Nội dung text: Bài giảng Hệ điều hành - Chương II: Cấu trúc hệ điều hành - Trần Công Án
- CT107. Hệ Điều Hành Chương 2. Cấu Trúc Hệ Điều Hành Giảng viên: Trần Công Án (tcan@cit.ctu.edu.vn) Bộ môn Mạng máy tính & Truyền thông Khoa Công Nghệ Thông Tin & Truyền Thông Đại học Cần Thơ 2014
- [CT107] Ch2. Cấu trúc HĐH Mục Tiêu Giới thiệu các dịch vụ mà hệ điều hành cung cấp và các phương pháp thiết kế các kiến trúc và cài đặt hệ điều hành. TS. Trần Công Án (Khoa CNTT&TT) [CT107] Ch2. Cấu trúc HĐH 2
- [CT107] Ch2. Cấu trúc HĐH Nội Dung Các thành phần của Hệ điều hành Các dịch vụ của Hệ điều hành Lời gọi hệ thống Các chương trình hệ thống Kiến trúc hệ điều hành Thiết kế & Cài đặt hệ điều hành TS. Trần Công Án (Khoa CNTT&TT) [CT107] Ch2. Cấu trúc HĐH 3
- [CT107] Ch2. Cấu trúc HĐH Các thành phần của Hệ điều hành Các Thành Phần Của Hệ Điều Hành I Là một hệ thống phức tạp bao gồm nhiều thành phần với input, output và chức năng được định nghĩa rõ ràng: 1. Quản lý tiến trình (process management) 2. Quản lý bộ nhớ chính (main-memory management) 3. Quản lý hệ thống tập tin (file management) 4. Quản lý hệ thống nhập/xuất (I/O management) 5. Quản lý hệ thống lưu trữ thứ cấp (secondary storage management) 6. Hệ thống kết nối mạng (networking) 7. Hệ thống bảo vệ (protection system) 8. Giao diện người dùng (user interface) TS. Trần Công Án (Khoa CNTT&TT) [CT107] Ch2. Cấu trúc HĐH 4
- [CT107] Ch2. Cấu trúc HĐH Các thành phần của Hệ điều hành Quản lý tiến trình Quản Lý Tiến Trình I Tiến trình (process) là một chương trình đang thực thi. I Tiến trình cần các tài nguyên để thực hiện tác vụ của nó: thời gian phục vụ của CPU, bộ nhớ, tập tin, thiết bị vào ra. I Bộ quản lý tiến trình chịu trách nhiệm thực hiện các tác vụ sau: I Tạo và hủy tiến trình. I Ngừng và tiếp tục tiến trình. I Đưa ra các cơ chế để: I đồng bộ hóa các tiến trình. I thực hiện việc giao tiếp giữa các tiến trình. I chống deadlock. TS. Trần Công Án (Khoa CNTT&TT) [CT107] Ch2. Cấu trúc HĐH 5
- [CT107] Ch2. Cấu trúc HĐH Các thành phần của Hệ điều hành Quản lý bộ nhớ chính Quản Lý Bộ Nhớ Chính I Bộ nhớ là một mảng lớn các words hoặc bytes, với địa chỉ riêng biệt. I Là kho chứa dữ liệu truy cập nhanh, được chia sẻ bởi CPU và các thiết bị vào ra. I Là thiết bị lưu trữ bay hơi (volatile storage device), sẽ bị mất nội dung khi hệ thống gặp sự cố∗. I Bộ quản lý bộ nhớ chính chịu trách nhiệm thực hiện các tác vụ: I Theo dõi phần nào của bộ nhớ đang được sử dụng bởi tiến trình nào. I Quyết định tiến trình nào sẽ được nạp vào bộ nhớ khi không gian nhớ còn chỗ trống. I Cấp phát và thu hồi không gian nhớ khi cần thiết. TS. Trần Công Án (Khoa CNTT&TT) [CT107] Ch2. Cấu trúc HĐH 6
- [CT107] Ch2. Cấu trúc HĐH Các thành phần của Hệ điều hành Quản lý tập tin Quản Lý Tập Tin I Một tập tin: I là một tập hợp các thông tin có liên quan với nhau, I dùng để lưu các chương trình hoặc dữ liệu trong các thiết bị lưu trữ, như đĩa, băng từ. I Bộ quản lý tập tin chịu trách nhiệm thực hiện các tác vụ: I Tạo và xóa tập tin, thư mục. I Hỗ trợ các cơ sở cho việc thao tác trên tập tin và thư mục. I Ánh xạ tập tin lên các thiết bị lưu trữ thứ cấp. I Sao lưu tập tin lên các phương tiện lưu trữ không bay hơi. TS. Trần Công Án (Khoa CNTT&TT) [CT107] Ch2. Cấu trúc HĐH 7
- [CT107] Ch2. Cấu trúc HĐH Các thành phần của Hệ điều hành Quản lý hệ thống nhập/xuất Quản Lý Hệ Thống Nhập/Xuất I Hệ thống xuất/nhập bao gồm: I Hệ thống lưu trữ đệm (buffer-caching system): buffering, caching, spooling. I Giao diện điều khiển thiết bị tổng quát (general device-driver interface). I Trình điều khiển thiết bị (driver) cho các thiết bị cụ thể. I Thành phần quản lý hệ thống xuất/nhập giao tiếp với các thành phần khác của hệ thống để quản lý các thiết bị, chuyển tải dữ liệu, và phát hiện các hoàn thành xuất/nhập. TS. Trần Công Án (Khoa CNTT&TT) [CT107] Ch2. Cấu trúc HĐH 8
- [CT107] Ch2. Cấu trúc HĐH Các thành phần của Hệ điều hành Quản lý hệ thống lưu trữ thứ cấp Quản Lý Hệ Thống Lưu Trữ Thứ Cấp I Bộ nhớ chính bị bay hơi và quá nhỏ để chứa tất cả dữ liệu và chương trình lâu dài ⇒ dùng thiết bị lưu trữ thứ cấp để hỗ trợ. I Hầu hết sử dụng đĩa từ làm thiết bị lưu trữ trực tuyến chính yếu cho cả dữ liệu và chương trình. I Bộ quản lý đĩa chịu trách nhiệm thực hiện các tác vụ: I Quản lý không gian còn trống I Cấp phát không gian lưu trữ I Định thời sử dụng đĩa TS. Trần Công Án (Khoa CNTT&TT) [CT107] Ch2. Cấu trúc HĐH 9
- [CT107] Ch2. Cấu trúc HĐH Các thành phần của Hệ điều hành Hệ thống nối kết mạng – Hệ thống phân tán Hệ Thống Nối Kết Mạng – Phân Tán I Hệ thống phân tán là tập hợp các bộ xử lý không dùng chung bộ nhớ hoặc xung đồng hồ. I Các bộ xử lý trong hệ thống được nối kết thông qua một mạng truyền thông (communication network). I Giao tiếp được thực hiện thông qua các giao thức: FTP, NFS, HTTP I Hệ thống phân tán cho phép người dùng truy cập nhiều loại tài nguyên hệ thống khác nhau, giúp: I Tăng tốc độ tính toán I Tăng mức độ sẵn dùng của dữ liệu I Tăng độ tin cậy TS. Trần Công Án (Khoa CNTT&TT) [CT107] Ch2. Cấu trúc HĐH 10
- [CT107] Ch2. Cấu trúc HĐH Các thành phần của Hệ điều hành Hệ thống bảo vệ Hệ Thống Bảo Vệ I Khái niệm bảo vệ nhằm ám chỉ cơ chế điều khiển truy cập từ các chương trình, tiến trình hoặc người dùng đến tài nguyên của cả hệ thống và của người dùng. I Cơ chế bảo vệ phải: I phân biệt được việc truy cập có thẩm quyền hay không I xác định những quyền điều khiển có nguy cơ bị chiếm bất hợp pháp I cung cấp các phương tiện để bảo vệ an ninh TS. Trần Công Án (Khoa CNTT&TT) [CT107] Ch2. Cấu trúc HĐH 11
- [CT107] Ch2. Cấu trúc HĐH Các thành phần của Hệ điều hành Giao diện người dùng Thông Dịch Lệnh (Command-line Interpreter) I Nhận và thực hiện các câu lệnh điều khiển của người dùng để thực hiện các tác vụ như: quản lý tiến trình, quản lý vào/ra, quản lý bộ nhớ, truy cập hệ thống tập tin, . . . I Được cài đặt trong kernel (DOS) hoặc qua các chương trình hệ thống (Widows, Unix), còn được gọi là shell. I Có 2 loại lệnh cơ bản: các lệnh cung cấp bởi shell (built-in) hay tên của một chương trình. I Sử dụng các lệnh cung cấp qua chương trình cho phép thêm các lệnh vào hệ thống mà không cần phải cập nhật lại shell. I Dung lượng shell nhỏ. TS. Trần Công Án (Khoa CNTT&TT) [CT107] Ch2. Cấu trúc HĐH 12
- [CT107] Ch2. Cấu trúc HĐH Các thành phần của Hệ điều hành Giao diện người dùng Môi trường nền (Desktop Environment) I Giao diện người dùng theo dạng đồ họa (GUI): Windows DE, GNOME DE, KDE. I Môi trường nền điển hình cung cấp các icons, windows, toolbars, folders, wallpapers, và khả năng drag and drop. I Môi trường nền bao gồm: I window manager (như Metacity hoặc Kwin), I file manager (như Konqueror hoặc Nautilus), I tập hợp các themes, các chương trình và các thư viện cho việc quản lý desktop. TS. Trần Công Án (Khoa CNTT&TT) [CT107] Ch2. Cấu trúc HĐH 13
- [CT107] Ch2. Cấu trúc HĐH Các dịch vụ của Hệ điều hành Các Dịch Vụ Của Hệ Điều Hành user and other system programs GUI batch command line user interfaces system calls program I/O file resource communication accounting execution operations systems allocation protection error and detection security services operating system hardware TS. Trần Công Án (Khoa CNTT&TT) [CT107] Ch2. Cấu trúc HĐH 14
- [CT107] Ch2. Cấu trúc HĐH Các dịch vụ của Hệ điều hành Dịch Vụ Cho Chương Trình & Người Dùng I Giao diện người dùng: command line, batch interface, GUI I Thực thi chương trình: nạp chương trình vào bộ nhớ và thực thi I Thao tác I/O: cung cấp các phương tiện để thực hiện các thao tác I/O I Thao tác hệ thống tập tin: cung cấp khả năng có thể lập trình để đọc, ghi, tạo và xóa tập tin I Giao tiếp: chuyển thông tin giữa các tiến trình đang thực thi trên cùng một máy tính hoặc trên nhiều hệ thống được kết nối với nhau qua mạng máy tính (dùng p/p bộ nhớ chia sẻ hoặc chuyển thông điệp) I Phát hiện lỗi: phát hiện lỗi phát sinh tại CPU và bộ nhớ, tại thiết bị I/O hoặc tại chương trình người dùng để bảo đảm tính toán chính xác TS. Trần Công Án (Khoa CNTT&TT) [CT107] Ch2. Cấu trúc HĐH 15
- [CT107] Ch2. Cấu trúc HĐH Các dịch vụ của Hệ điều hành Dịch Vụ Cho Hệ Thống I Một số chức năng không nhằm hỗ trợ người dùng mà dùng để đảm bảo cho hoạt động hiệu quả của hệ thống bao gồm: I Cấp phát tài nguyên: cấp tài nguyên cho nhiều người dùng hoặc nhiều công việc đang chạy song song. I Tính chi phí: theo dõi và ghi lại người dùng nào đã sử dụng tài nguyên gì của hệ thống để làm cơ sở tính tiền sử dụng hệ thống hoặc thống kê sử dụng. I Bảo vệ: đảm bảo rằng tất cả truy cập đến hệ thống đều được kiểm soát. TS. Trần Công Án (Khoa CNTT&TT) [CT107] Ch2. Cấu trúc HĐH 16
- [CT107] Ch2. Cấu trúc HĐH Lời gọi hệ thống Lời Gọi Hệ Thống I Là giao diện giữa tiến trình và hệ điều hành, dùng để gọi các dịch vụ của HĐH. I Về cơ bản, được hỗ trợ dưới dạng các chỉ thị assembler. I Các lời gọi hệ thống còn được cài đặt bằng các ngôn ngữ cấp cao hơn (C, C++), gọi là các giao diện lập trình ứng dụng (API) I Một số API phổ biến: I Windows API (cho HĐH Windows) I POSIX API (cho POSIX-Based systems như Linux, Unix, MacOS) I Java API (cho Java Virtual Machine) TS. Trần Công Án (Khoa CNTT&TT) [CT107] Ch2. Cấu trúc HĐH 17
- [CT107] Ch2. Cấu trúc HĐH Lời gọi hệ thống Lời Gọi Hệ Thống – Ví Dụ Acquire input filename echo -n "Source filename: " Write prompt to screen read src Accept input echo -n "Target filename: " Acquire output filename read targ Write prompt to screen if [ ! -f $src ] then Accept output echo ”Error, $src doesn’t exist” Check existence of input file exit 1 if input file doesn’t exist elif [ -f $targ ] then Write prompt to screen, abort echo “Error, $targ exist” Check existence of output file exit 2 if output file exists fi Write prompt to screen, abort cp $src $targ Copy input file to output file echo "Sucessfully” Terminate normally TS. Trần Công Án (Khoa CNTT&TT) [CT107] Ch2. Cấu trúc HĐH 18
- [CT107] Ch2. Cấu trúc HĐH Lời gọi hệ thống Truyền Tham Số Cho Lời Gọi Hệ Thống I Một lời gọi hệ thống thường kèm theo các tham số. I Có 3 phương pháp tổng quát để truyền tham số: 1. Truyền qua thanh ghi: giới hạn số lượng tham số vì số thanh ghi tương đối ít. 2. Truyền qua bộ nhớ: các tham số được lưu vào 1 bảng hay khối trong bộ nhớ và địa chỉ của bảng/khối được chuyển vào thanh ghi như là 1 tham số. 3. Truyền bằng stack: chương trình push tham số vào stack và hệ điều hành sẽ lấy tham số bằng cách pop stack. TS. Trần Công Án (Khoa CNTT&TT) [CT107] Ch2. Cấu trúc HĐH 19
- [CT107] Ch2. Cấu trúc HĐH Lời gọi hệ thống Truyền Tham Số Qua Bộ Nhớ – Ví Dụ X register X: parameters for call use parameters code for load address X from table X system system call 13 call 13 user program operating system TS. Trần Công Án (Khoa CNTT&TT) [CT107] Ch2. Cấu trúc HĐH 20
- [CT107] Ch2. Cấu trúc HĐH Lời gọi hệ thống Các Kiểu Lời Gọi Hệ Thống 1. Điều khiển tiến trình (process control) 2. Quản lý file (file management) 3. Quản lý thiết bị (device management) 4. Duy trì thông tin trạng thái (information maintenance) 5. Giao tiếp (communication) 6. Một số HĐH còn cung cấp lời gọi hệ thống để sử dụng các dịch vụ bảo vệ (protection) của HĐH TS. Trần Công Án (Khoa CNTT&TT) [CT107] Ch2. Cấu trúc HĐH 21
- [CT107] Ch2. Cấu trúc HĐH Lời gọi hệ thống Thực Thi Chương Trình Trong MS-DOS free memoryfree memory I Thực thi chương trình trong free memoryfree memory MS-DOS: a) Lúc hệ thống khởi động, và process process b) Lúc chạy một chương trình. I MS-DOS là một chương trình đơncommand command nhiệm: tại 1 thời điểm chỉ tối đai 1nterpreterinterpreter command command interpreterinterpreter chương trình được thực thi. kernel kernel kernel kernel (a) (a) (b) (b) TS. Trần Công Án (Khoa CNTT&TT) [CT107] Ch2. Cấu trúc HĐH 22
- 70 Chapter 2 Operating-System Structures free memory free memory process command interpreter command interpreter kernel kernel (a) (b) Figure 2.9 MS-DOS execution. (a) At system startup. (b) Running a program. give the program as much memory as possible (Figure 2.9(b)). Next, it sets the instruction pointer to the first instruction of the program. The program then runs, and either an error causes a trap, or the program executes a system call to terminate. In either case, the error code is saved in the system memory for later use. Following this action, the small portion of the command interpreter that was not overwritten resumes execution. Its first task is to reload the rest of the command interpreter from disk. Then the command interpreter makes the previous error code available to the user or to the next program. FreeBSD (derived from Berkeley UNIX) is an example of a multitasking [CT107] Ch2. Cấu trúc HĐH system. When a user logs on to the system, the shell of the user’s choice Lời gọi hệ thống is run. This shell is similar to the MS-DOS shell in that it accepts commands and executes programs that the user requests. However, since FreeBSD is a multitasking system, the command interpreter may continue running while Thực Thi Chươnganother Trình program Trong is executed UNIX (Figure 2.10). To start a new process, the shell I UNIX là một chương trình đa nhiệm: tại 1 thời điểm có thể có nhiều chương trình được thực thi. process D I Cần cơ chế thực hiện giao tiếp giữa các tiến trình: free memory 124 Chapterchuyển 3 Processes thông điệp hay bộ nhớ chia sẻ. process C processprocess A A process A shared memory processprocess B B interpreter process B process B messagemessage queue queue m0 m10 m21 m32 m 3 m n mn kernel kernel kernelkernel (a) (b) Figure 2.10 FreeBSD running multiple programs. Figure 3.12 Communications models. (a) Message passing. (b) Shared memory. TS. Trần Công Án (Khoa CNTT&TT) [CT107] Ch2. Cấu trúc HĐH 23 memory regions. Once shared memory is established, all accesses are treated as routine memory accesses, and no assistance from the kernel is required. Recent research on systems with several processing cores indicates that message passing provides better performance than shared memory on such systems. Shared memory suffers from cache coherency issues, which arise because shared data migrate among the several caches. As the number of processing cores on systems increases, it is possible that we will see message passing as the preferred mechanism for IPC. In the remainder of this section, we explore shared-memory and message- passing systems in more detail. 3.4.1 Shared-Memory Systems Interprocess communication using shared memory requires communicating processes to establish a region of shared memory. Typically, a shared-memory region resides in the address space of the process creating the shared-memory segment. Other processes that wish to communicate using this shared-memory segment must attach it to their address space. Recall that, normally, the operating system tries to prevent one process from accessing another process’s memory. Shared memory requires that two or more processes agree to remove this restriction. They can then exchange information by reading and writing data in the shared areas. The form of the data and the location are determined by these processes and are not under the operating system’s control. The processes are also responsible for ensuring that they are not writing to the same location simultaneously. To illustrate the concept of cooperating processes, let’s consider the producer–consumer problem, which is a common paradigm for cooperating processes. A producer process produces information that is consumed by a consumer process. For example, a compiler may produce assembly code that is consumed by an assembler. The assembler, in turn, may produce object modules that are consumed by the loader. The producer–consumer problem
- [CT107] Ch2. Cấu trúc HĐH Các chương trình hệ thống Các Chương Trình Hệ Thống I 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 và đơn giản hóa cho các lời gọi hệ thống đối với người dùng. I Các loại chương trình hệ thống: I Thao tác tập tin và điều chỉnh tập tin I Thông tin trạng thái I Hỗ trợ ngôn ngữ lập trình I Nạp và thực thi chương trình I Giao tiếp giữa các tiến trình, người dùng, các máy tính I 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. TS. Trần Công Án (Khoa CNTT&TT) [CT107] Ch2. Cấu trúc HĐH 24
- [CT107] Ch2. Cấu trúc HĐH Kiến trúc hệ điều hành Kiến Trúc Hệ Điều Hành I Là cách thức tổ chức 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. I Ba loại kiến trúc: I Nguyên khối (monolithic): tất cả các thành phần chứa trong nhân (kernel) I 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 I Vi nhân (microkernel): chỉ những thành phần chủ yếu bao gồm trong kernel TS. Trần Công Án (Khoa CNTT&TT) [CT107] Ch2. Cấu trúc HĐH 25
- [CT107] Ch2. Cấu trúc HĐH Kiến trúc hệ điều hành Một số hệ điều hành có kiến trúc đơn giản Kiến Trúc Hệ Điều Hành MS-DOS I Không có kiến trúc rõ ràng. application program I Được viết để cung cấp nhiều chức năng nhất với dung lượng nhỏ nhất. resident system program I Không được chia thành các modules. I Mặc dù MS-DOS được tổ chức có cấu MS-DOS device drivers trúc, các lớp chức năng cũng như giao diện giữa chúng không được phân chia tốt. ROM BIOS device drivers TS. Trần Công Án (Khoa CNTT&TT) [CT107] Ch2. Cấu trúc HĐH 26
- [CT107] Ch2. Cấu trúc HĐH Kiến trúc hệ điều hành Một số hệ điều hành có kiến trúc đơn giản Kiến Trúc Hệ Điều Hành UNIX Cổ Điển I Hệ điều hành UNIX khởi thủy có kiến trúc giới hạn do những giới hạn về phần cứng. I Hệ điều hành UNIX bao gồm hai phần tách biệt: I Các chương trình hệ thống I Nhân (kernel) I 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ý. I 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ệ điều hành TS. Trần Công Án (Khoa CNTT&TT) [CT107] Ch2. Cấu trúc HĐH 27
- [CT107] Ch2. Cấu trúc HĐH Kiến trúc hệ điều hành Một số hệ điều hành có kiến trúc đơn giản Kiến Trúc Hệ Điều Hành UNIX Cổ Điển (the users) shells and commands compilers and interpreters system libraries system-call interface to the kernel signals terminal file system CPU scheduling handling swapping block I/O page replacement character I/O system system demand paging kernel 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 TS. Trần Công Án (Khoa CNTT&TT) [CT107] Ch2. Cấu trúc HĐH 28
- [CT107] Ch2. Cấu trúc HĐH Kiến trúc hệ điều hành Kiến trúc phân tầng Kiến Trúc Phân Tầng layer N I Hệ điều hành được chia thành một số user interface • • tầng, 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. layer 1 I Tầng thấp nhất là tầng vật lý, tầng cao layer 0 nhất là giao diện với người dùng. hardware I Sự phân chia chức năng: mỗi một tầng sẽ sử dụng các hàm (thao tác) và dịch vụ được cung cấp duy nhất bởi tầng phía dưới liền kề nó. TS. Trần Công Án (Khoa CNTT&TT) [CT107] Ch2. Cấu trúc HĐH 29
- [CT107] Ch2. Cấu trúc HĐH Kiến trúc hệ điều hành Kiến trúc phân tầng Kiến Trúc Phân Tầng – Ưu Nhược Điểm I Ưu điểm: 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. I Đơ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. I Nhược điểm: I 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 Đô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 I Tăng chi phí cho việc gọi các lời gọi hệ thống thông qua nhiều tầng. TS. Trần Công Án (Khoa CNTT&TT) [CT107] Ch2. Cấu trúc HĐH 30
- [CT107] Ch2. Cấu trúc HĐH Kiến trúc hệ điều hành Kiến trúc vi nhân Kiến Trúc Vi Nhân I Di chuyển nhiều chức năng từ nhân lên mức người dùng. I Việc giao tiếp giữa các module người dùng được thực hiện bằng cách sử dụng cơ chế chuyển thông điệp. I Lợi ích: I dễ dàng mở rộng một microkernel I dễ dàng chuyển đổi hệ điều hành sang các kiến trúc mới I tin cậy hơn và an toàn hơn (ít mã lệnh chạy ở mức nhân hơn) I Nhược điểm: chi phí giao tiếp giữa tiến trình của người dùng và nhân. TS. Trần Công Án (Khoa CNTT&TT) [CT107] Ch2. Cấu trúc HĐH 31
- [CT107] Ch2. Cấu trúc HĐH Kiến trúc hệ điều hành Kiến trúc vi nhân Kiến Trúc Của Một Hệ Vi Nhân Kiểu Mẫu Application File Device user Program System Driver mode messages messages Interprocess memory CPU kernel Communication managment scheduling mode microkernel hardware TS. Trần Công Án (Khoa CNTT&TT) [CT107] Ch2. Cấu trúc HĐH 32
- [CT107] Ch2. Cấu trúc HĐH Kiến trúc hệ điều hành Máy ảo (Virtual machine) Máy Ảo (Virtual Machine) I 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. I 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. I Tài nguyên thực của máy tính được chia sẻ để tạo ra các máy ảo. I HĐH tạo cảm giác nhiều máy, 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. TS. Trần Công Án (Khoa CNTT&TT) [CT107] Ch2. Cấu trúc HĐH 33
- [CT107] Ch2. Cấu trúc HĐH Kiến trúc hệ điều hành Máy ảo (Virtual machine) Mô Hình Hệ Thống Máy Ảo processes processes processes processes programming interface kernel kernel kernel VM1VM2 VM3 kernel virtual machine manager hardware hardware TS. Trần Công Án (Khoa CNTT&TT) [CT107] Ch2. Cấu trúc HĐH 34
- [CT107] Ch2. Cấu trúc HĐH Kiến trúc hệ điều hành Máy ảo (Virtual machine) Ưu Nhược Điểm Của Hệ Thống Máy Ảo I 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. I 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. I 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 ⇒ không ngắt quãng hoạt động bình thường của hệ thống. I 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. TS. Trần Công Án (Khoa CNTT&TT) [CT107] Ch2. Cấu trúc HĐH 35
- [CT107] Ch2. Cấu trúc HĐH Thiết kế & Cài đặt hệ điều hành Thiết Kế Hệ Điều Hành I Có nhiều hướng tiếp cận. I Bắt đầu bằng việc xác định các mục tiêu và đặc tả kỹ thuật: I phần cứng, kiểu hệ điều hành (batch, time-sharing, distributed, . . . ) I Yêu cầu: I Đối với người dùng: HĐH phải dễ dùng, dễ học, tin cậy, an toàn và nhanh. I Đối với hệ thống: HĐH phải dễ thiết kế, cài đặt, bảo trì, cũng như phải linh hoạt, tin cậy, không lỗi và hiệu quả. TS. Trần Công Án (Khoa CNTT&TT) [CT107] Ch2. Cấu trúc HĐH 36
- [CT107] Ch2. Cấu trúc HĐH Thiết kế & Cài đặt hệ điều hành Cơ Chế Và Chính Sách I Cơ chế (mechanism) xác định cách thực hiện một việc. I Chính sách (policy) quyết định cái gì được làm. I Việc tách chiến lược ra khỏi cơ chế cho phép đạt được sự linh hoạt tối đa: I Các quyết định về chính sách có thể thay đổi sau đó I HĐH hành dạng microkernel cài đặt một tập hợp các hàm cơ bản (primitive) không có chính sách, cho phép thêm vào các chính sách và cơ chế dựa trên các hàm cơ bản này. I Các quyết định về chính sách 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). TS. Trần Công Án (Khoa CNTT&TT) [CT107] Ch2. Cấu trúc HĐH 37
- [CT107] Ch2. Cấu trúc HĐH Thiết kế & Cài đặt hệ điều hành Cài Đặt Hệ Thống I 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. I Mã lệnh được viết ở ngôn ngữ cấp cao: I Có thể được viết nhanh hơn. I Gói gọn hơn. I Dễ hiểu và sửa lỗi hơn. I 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. TS. Trần Công Án (Khoa CNTT&TT) [CT107] Ch2. Cấu trúc HĐH 38