Nội dung chính của chương 2 Cấu trúc hệ điều hành thuộc bài giảng hệ điều hành nhằm trình bày về các kiến thức: các thành phần của hệ điều hành, các dịch vụ 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ệ thống, máy ảo.
Chương II: Cấu Trúc Hệ Điều Hành Các thành phần hệ điều hành Các dịch vụ hệ điều hành cung cấp Lời gọi hệ thống (System call) Các chương trình hệ thống (system programs) Cấu trúc hệ thống Máy ảo (virtual machine) 10/07/2013 Khoa KTMT 2.1 Các thành phần hệ điều hành „2.1.1 Quản lý trình (process management) - Quá trình (hay tiến trình ‟ process) gì? - Quá trình khác chương trình điểm gì? - Một trình cần tài nguyên hệ thống CPU, nhớ, file, thiết bị I/O,… để hoàn thành công việc - Các nhiệm vụ thành phần Tạo hủy trình Tạm dừng/thực thi tiếp (suspend/resume) trình Cung cấp chế ‟ đồng hoạt động trình (synchronization) ‟ giao tiếp trình (interprocess communication) ‟ khống chế tắc nghẽn (deadlock) 10/07/2013 Khoa KTMT 2.1 Các thành phần hệ điều hành •2.1.2 Quản lý nhớ – Bộ nhớ trung tâm thao tác, xử lý – Để nâng caó hiệu suất sử dụng CPU, hệ điều hành cần quản lý nhớ thích hợp – Các nhiệm vụ thành phần Theo dõi, quản lý vùng nhớ trống cấp phát Quyết định nạp chương trình có vùng nhớ trống Cấp phát thu hồi vùng nhớ cần thiết 10/07/2013 Khoa KTMT 2.1 Các thành phần hệ điều hành •2.1.3 Quản lý file (file management) ‟ Hệ thống file (file system) File Thư mục ‟ Các dịch vụ mà thành phần cung cấp Tạo xoá file/thư mục Các thao tác xử lý file/thư mục (mkdir, rename, copy, move, new,…) “Ánh xạ” file/thư mục vào thiết bị lưu trữ thứ cấp tương ứng Sao lưu phục hồi liệu 10/07/2013 Khoa KTMT 2.1 Các thành phần hệ điều hành •2.1.4 Quản lý hệ thống I/O (I/O system management) ‟ Che dấu khác biệt thiết bị I/O trước người dùng ‟ Có chức Cơ chế: buffering, caching, spooling Cung cấp giao diện chung đến trình điều khiển thiết bị (device-driver interface) Bộ điều khiển thiết bị (device driver) phần cứng 10/07/2013 Khoa KTMT 2.1 Các thành phần hệ điều hành •2.1.5 Quản lý hệ thống lưu trữ thứ cấp (secondary storage management) ‟ Bộ nhớ chính: kích thước nhỏ, môi trường chứa tin không bền vững => cần hệ thống lưu trữ thứ cấp để lưu trữ bền vững liệu, chương trình ‟ Phương tiện lưu trữ thông dụng đóa từ, đóa quang ‟ Nhiệm vụ hệ điều hành quản lý đóa Quản lý không gian trống đóa(free space management) Cấp phát không gian lưu trữ (storage allocation) Định thời họat động cho đóa (disk scheduling) Sử dụng thường xuyên => ảnh hưởng lớn đến tốc độ hệ thống => cần hiệu 10/07/2013 Khoa KTMT 2.1 Các thành phần hệ điều hành •2.1.6 Hệ thống bảo vệ Trong hệ thống cho phép nhiều user hay nhiều process diễn đồng thời: ‟ Kiểm soát trình người dùng đăng nhập/xuất sử dụng hệ thống ‟ Kiểm soát việc truy cập tài nguyên hệ thống ‟ Bảo đảm user/process phép sử dụng tài nguyên dành cho ‟ Các nhiệm vụ hệ thống bảo vệ Cung cấp chế kiểm soát đăng nhập/xuất (login, log out) Phân định truy cập tài nguyên hợp pháp bất hợp pháp (authorized/unauthorized) Phương tiện thi hành sách (enforcement of policies) Chính sách: cần bảo vệ liệu 10/07/2013 Khoa KTMT 2.1 Các thành phần hệ điều hành •2.1.7 Hệ thống thông dịch lệnh ‟ Là giao diện chủ yếu người dùng OS „ Ví dụ: shell, mouse-based window-and-menu ‟ Khi user login „ command line interpreter (shell) chạy, chờ nhận lệnh từ người dùng, thực thi lệnh trả kết ‟ Các lệnh ->bộ điều khiển lệnh ->hệ điều hành ‟ Các lệnh có quan hệ với việc: Tạo, hủy, quản lý trình, hệ thống Kiểm soát I/O Quản lý lưu trữ thứ cấp Quản lý nhớ Truy cập hệ thống file chế bảo mật 10/07/2013 Khoa KTMT 2.2 Các dịch vụ hệ điều hành cung cấp ‟ Thực thi chương trình ‟ Thực thao tácï I/O theo yêu cầu chương trình ‟ Các thao tác hệ thống file „ Đọc/ghi hay tạo/xóa file ‟ Trao đổi thông tin trình qua hai cách: Chia xẻ nhớ (Shared memory) Chuyển thông điệp (Message passing) ‟ Phát lỗi Trong CPU, nhớ, thiết bị I/O (dữ liệu hư, hết giấy,…) Do chương trình: chia cho 0, truy cập đến địa nhớ không cho phép 10/07/2013 Khoa KTMT 2.2 Các dịch vụ hệ điều hành cung cấp Ngoài dịch vụ giúp tăng hiệu suất hệ thống: ‟ Cấp phát tài nguyên (resource allocation) „ Tài nguyên: CPU, nhớ chính, tape drives,… „ OS có routine tương ứng ‟ Kế toán (accounting) „ Nhằm lưu vết user để tính phí đơn giản để thống kê ‟ Bảo vệ (protection) „ Hai trình khác không ảnh hưởng „ Kiểm soát truy xuất tài nguyên hệ thống ‟ An ninh (security) „ Chỉ user phép sử dụng hệ thống truy cập tài nguyên hệ thống (vd: thông qua username password) 10/07/2013 Khoa KTMT 10 2.3 Lời gọi hệ thống (System call) • Dùng để giao tiếp trình hệ điều hành ‟ Cung cấp giao diện trình hệ điều hành „ Vd: open, read, write file ‟ Thông thường dạng thư viện nhị phân (binary libraries) hay giống lệnh hợp ngữ ‟ Trong ngôn ngữ lập trình cấp cao, số thư viện lập trình xây dựng dựa thư viện hệ thống (ví dụ Windows API, thư viện GNU C/C++ glibc, glibc++,…) ‟ Ba phương pháp truyền tham số sử dụng system call Qua ghi Qua vùng nhớ, địa vùng nhớ gửi đến hệ điều hành qua ghi Qua stack 10/07/2013 Khoa KTMT 11 2.4 Các chương trình hệ thống Chương trình hệ thống (system program, phân biệt với application program) gồm ‟ Quản lý hệ thống file: create, delete, rename, list ‟ Thông tin trạng thái: date, time, dung lượng nhớ trống ‟ Soạn thảo file: file editor ‟ Hỗ trợ ngôn ngữ lập trình: compiler, assembler, interpreter ‟ Nạp, thực thi, giúp tìm lỗi chương trình: loader, debugger ‟ Giao tiếp: email, talk, web browser ‟ … Người dùng chủ yếu làm việc thông qua system program (không làm việc “trực tiếp” với system call) 10/07/2013 Khoa KTMT 12 2.5 Cấu trúc hệ thống Cấu trúc đơn giản (monolithic) ‟ MS-DOS: thiết kế, giới hạn dung lượng nhớ nên không phân chia thành module (modularization) chưa phân chia rõ chức phần hệ thống Cấu trúc phân tầng MS-DOS 10/07/2013 Khoa KTMT 13 2.5 Cấu trúc hệ thống Cấu trúc đơn giản (monolithic) UNIX: gồm hai phần tách rời Nhân (cung cấp file system, CPU scheduling, memory management, số chức khác) system program 10/07/2013 Khoa KTMT 14 2.5 Cấu trúc hệ thống Cấu trúc phân tầng: HĐH chi thành nhiều lớp (layer) Lớp cùng: hardware Lớp giao tiếp với user Lớp phụ thuộc lớp Một lớp gọi hàm lớp hàm gọi lớp Mỗi lớp tương đương đối tượng trừu tượng: cấu trúc liệu + thao tác Phân lớp có lợi ích gì? Gỡ rối (debugger, kiểm tra hệ thống, thay đổi chức năng) 10/07/2013 Khoa KTMT 15 2.5 Cấu trúc hệ thống Cấu trúc phân tầng: Lần áp dụng cho HĐH THE (Technische Hogeschool Eindhoven) 10/07/2013 Lớp user programm Lớp Tạo buffer cho thiết bị I/O Lớp Device driver thao tác hình Lớp Quản lý nhớ Lớp Lập lịch CPU Lớp Phần cứng Khoa KTMT 16 2.5 Cấu trúc hệ thống Vi nhân: phân chia module theo microkernel (CMU Mach OS, 1980) Chuyển số chức OS từ kernel space sang user space Thu gọn kernel => microkernel, microkernel bao gồm chức tối thiểu quản lý trình, nhớ chế giao tiếp trình Giao tiếp module qua chế truyền thông điệp module Application File server POSIX application OS/2 application OS/2 server POSIX server Microkernel 10/07/2013 Khoa KTMT 17 2.5 Cấu trúc hệ thống Vi nhân: - Lợi ích: dễ mở rộng HĐH Một số HĐH đại sử dụng vi nhân: + Tru64 UNIX (Digital UNIX trước ñaây): nhaân Mach + Apple MacOS Server : nhaân Mach + QNX ‟ vi nhân cung cấp: truyền thông điệp, định thời CPU, giao tiếp mạng cấp thấp ngắt phần cứng + Windows NT: chạy ứng dụng khác win32, OS/2, POSIX (Portable OS for uniX) 10/07/2013 Khoa KTMT 18 2.6 Máy ảo „ Từ OS layer đến máy ảo (virtual machine) processes processes processes programming interface kernel hardware processes kernel kernel kernel VM1 VM2 VM3 Virtual-machine implementation hardware Non-virtual machine system model 10/07/2013 Virtual machine system model Khoa KTMT 19 2.6 Máy ảo Hiện thực ý niệm VM ‟ Làm để thực thi chương trình MS-DOS hệ thống Sun với hệ điều hành Solaris ? Tạo máy ảo Intel bên hệ điều hành Solaris hệ thống Sun Các lệnh Intel (x86) máy ảo Intel chuyển thành lệnh tương ứng hệ thống Sun 10/07/2013 Khoa KTMT Intel x86 Application Intel x86 VM VM interpretation Solaris kernel Sun hardware 20 ... trình MS-DOS hệ thống Sun với hệ điều hành Solaris ? Tạo máy ảo Intel bên hệ điều hành Solaris hệ thống Sun Các lệnh Intel (x86) máy ảo Intel chuyển thành lệnh tương ứng hệ thống Sun 10/07 /20 13... nghẽn (deadlock) 10/07 /20 13 Khoa KTMT 2. 1 Các thành phần hệ điều hành ? ?2. 1 .2 Quản lý nhớ – Bộ nhớ trung tâm thao tác, xử lý – Để nâng caó hiệu suất sử dụng CPU, hệ điều hành cần quản lý nhớ thích... chung đến trình điều khiển thiết bị (device-driver interface) Bộ điều khiển thiết bị (device driver) phần cứng 10/07 /20 13 Khoa KTMT 2. 1 Các thành phần hệ điều hành ? ?2. 1.5 Quản lý hệ thống lưu