Bài giảng Cấu trúc hệ điều hành

Mô tả các dịch vụ một HĐH cung cấp cho người dùng, quá trình và các hệ thống khác. „ Thảo luận các phương pháp cấu trúc một HĐH. „ Giải thích các HĐH được cài đặt như thế nào và chúng boot ra sao

pdf40 trang | Chia sẻ: vietpd | Lượt xem: 2012 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Bài giảng 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 DOWNLOAD ở trên
CHƯƠNG 2 CẤU TRÚC HỆ ĐIỀU HÀNH 2.2 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 14, 2005 NỘI DUNG „ Các dịch vụ hệ điều hành (Operating System Services) „ Giao diện HĐH người dùng (User Operating System Interface) „ Lời gọi hệ thống (System Calls) „ Các kiểu lời gọi hệ thống (Types of System Calls) „ Chương trình hệ thống (System Programs) „ Thiết kế và thực thi HĐH (Operating System Design and Implementation) „ Cấu trúc HĐH (Operating System Structure) „ Máy ảo (Virtual Machines) „ Các thế hệ HĐH (Operating System Generations) „ Boot hệ thống (System Boot) 2.3 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 14, 2005 MỤC TIÊU „ Mô tả các dịch vụ một HĐH cung cấp cho người dùng, quá trình và các hệ thống khác. „ Thảo luận các phương pháp cấu trúc một HĐH. „ Giải thích các HĐH được cài đặt như thế nào và chúng boot ra sao. 2.4 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 14, 2005 CÁC DỊCH VỤ HĐH „ Một tập các dịch vụ HĐH cung cấp các chức năng hữu dụng cho người dùng: z Giao diện người dùng Giao diện hàng lệnh (Command Line Interface - CLI) Giao diện người dùng đồ họa (Graphics User Interface - GUI)  Bó (Batch) z Thực hiện chương trình:  Nạp chương trình vào bộ nhớ  Chạy chương trình  Kết thúc chương trình: bình thường / bất bình thường (chỉ định lỗi) z Các hoạt động I/O z Thao tác hệ thống file 2.5 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 14, 2005 CÁC DỊCH VỤ HĐH (Cont.) z Liên lạc  Thông qua bộ nhớ chia sẻ  Thông qua truyền thông điêp z Phát hiện lỗi  Xảy ra trong CPU và phần cứng bộ nhớ, trong thiết bị I/O, trong chương trình người dùng  Đối với mỗi kiểu lỗi, HĐH cho ra hành động thích hợp, đảm bảo tính toán đúng và nhất quán Gỡ rối (Debugging) 2.6 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 14, 2005 CÁC DỊCH VỤ HĐH (Cont.) „ Tập các chức năng khác của HĐH nhằm đảm bảo hệ thống hoạt động hiệu quả thông qua chia sẻ tài nguyên z Cấp phát tài nguyên (Resource allocation) : nhiều kiểu cấp phát tài nguyên  Một số (ví dụ CPU cycles,mainmemory, và file storage) có thể có mã cấp phát đặc biệt  Một số khác (ví dụ I/O devices) có thể có mã yêu cầu và giải phóng chung z Kiểm toán (Accounting) : Lưu vết sử dụng của người dùng (kiểu tài nguyên, thời gian sử dụng …) z Bảo vệ và an ninh (Protection and security) :  Bảo vệ : bao gồm đảm bảo tất cả các truy xuất đến các nguyên hệ thống được điều khiển  An ninh : chống truy xuất bất hợp lệ đến các tài nguyên 2.7 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 14, 2005 GIAO DIỆN HÀNG LỆNH - CLI „ CLI cho phép đầu vào lệnh trực tiếp: Một số thực hiện trong phương thức hạt nhân, một số bởi chương trình hệ thống  shells  Đem về một hàng lệnh từ người dùng và thực hiện nó – Các lệnh dính liền – Tên chương trình 2.8 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 14, 2005 GIAO DIỆN NGƯỜI DÙNG ĐỒ HỌA- GUI „ Giao diện biểu tượng z Chuột, bàn phím và màn hình z Các biểu tượng (Icons) biểu diễn files, chương trình, hành động … z Các phím chuột trên đối tượng giao diện gây ra các hành dộng khác nhau (cung cấp thông tin, chọn lựa, thực hiện chức năng, mở thư mục …) „ Nhiều hệ thống bao hàm cả CLI và GUI z Microsoft Windows z Apple Mac OS X z UNIX z Solaris (Java Desktop, KDE) 2.9 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 14, 2005 LỜI GỌI HỆ THỐNG „ Giao diện lập trình đến các dịch vụ „ Thường được viết trong ngôn ngữ lập trình mức cao (C / C++ …) „ Được truy xuất bởi chương trình thông qua giao diện lập trình ứng dụng mức cao (Application Program Interface - API) „ Các API thông dụng nhất: z Win32 API / Windows z POSIX API cho các hệ thống dựa trên POSIX (bao gồm tất cả các phiên bản của UNIX, Linux, và Mac OS X), and z Java API cho máy ảo Java (Java virtual machine - JVM) 2.10 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 14, 2005 VÍ DỤ LỜI GỌI HỆ THỐNG „ Dãy lời gọi hệ thống để sao chép một file 2.11 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 14, 2005 VÍ DỤ API CHUẨN „ Chức năng đọc file ReadFile() trong z Win32 API— một hàm đọc file z Mô tả các tham số:  HANDLE file—file được đọc  LPVOID buffer— buffer ở đó dữ liệu được dọc vào/ viết ra  DWORD bytesToRead— số bytes được đọc vào buffer  LPDWORD bytesRead— số bytes được đọc trong lần đọc sau cùng  LPOVERLAPPED ovl—chỉ ra I/O viết đè được dùng 2.12 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 14, 2005 THỰC THI LỜI GỌI HỆ THỐNG „ Thông thường, một số kết hợp với mỗi lời gọi hệ thống z Giao diện lời gọi hệ thống duy trì một bảng tương ứng với các số này „ Giao diện lời gọi hệ thống gọi lời gọi hệ thống mong muốn trong hạt nhân, trả lại tình trạng lời gọi hệ thống và trả lại các giá trị „ Người gọi không cần biết về sự thực thi của lời gọi hệ thống z Chỉ cần tuân thủ API và hiểu cái mà HĐH sẽ làm như kết quả z Hầu hết chi tiết của giao diện HĐH được che bởi API 2.13 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 14, 2005 API – LỜI GỌI HỆ THỐNG – MỐI QUAN HỆ OS 2.14 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 14, 2005 VÍ DỤ THƯ VIỆN C CHUẨN „ Chương trình C gọi lời gọi thư viện printf(), printf gọi lời gọi hệ thống write() 2.15 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 14, 2005 TRUYỀN THAM SỐ TRONG LỜI GỌI HỆ THỐNG „ Thông thường, thông tin được đòi hỏi nhiều hơn định danh của lời gọi hệ thống mong muốn z Kiểu và số lượng thông tin thay đổi tùy theo HĐH và lời gọi „ Ba phương pháp chung để truyền tham số z Truyền than số trong thanh ghi z Tham số được lưu trong một khối / bảng trong bộ nhớ địa chỉ khối được truyền trong một thanh ghi (Linux và Solaris) z Các tham số được bố trí / đẩn lên stack bởi chương trình và được pop từ stack bởi HĐH z Khối và stack không giới hạn độ dài tham số được truyền 2.16 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 14, 2005 TRUYỀN THAM SỐ THÔNG QUA BẢNG 2.17 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 14, 2005 CÁC KIỂU LỜI GỌI HỆ THỐNG „ Điều khiển quá trình „ Quản trị file „ Quản trị thiết bị „ Duy trì thông tin „ Liên lạc 2.18 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 14, 2005 SỰ THỰC HIỆN TRONG MS-DOS (a) At system startup (b) running a program 2.19 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 14, 2005 FreeBSD CHẠY NHIỀU CHƯƠNG TRÌNH 2.20 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 14, 2005 CÁC CHƯƠNG TRÌNH HỆ THỐNG „ Các chương trình hệ thống cung cấp môi trường thuận lợi cho phát triển và thực hiện chương trình. Có thể được chia thành: z Thao tác file: Tạo, xóa, sao chép, đổi tên, in, dump, liệt kê … z Thông tin tình trạng:  Date, time, lượng bộ nhớ sẵn dùng, không gian đĩa, số người dùng …  Thông tin sổ ghi, gỡ rối  Thông tin cấu hình … z Sửa đổi file  Các bộ soạn thảo văn bản tạo và sửa đổi files  Các lệnh tìm kiếm nội dung file và biến đổi văn bản 2.21 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 14, 2005 CÁC CHƯƠNG TRÌNH HỆ THỐNG (cont) z Hỗ trợ ngôn ngữ lập trình  Compilers, assemblers, debuggers và interpreters z Nạp và thực hiện chương trình  Bộ nạp tuyệt đối, bộ nạp tái định vị, bộ tạo nối kết, bộ phủ lấp, hệ thống gỡi rối cho ngôn ngữ mức cao và ngôn ngữ máy z Liên lạc  Cung cấp cơ chế tạo nối kết ảo giữa các quá trình, người dùng và các hệ thống máy tính  Cho phép người dùng gửi thông điệp các màn hình khác, duyệt các trang Web, thư điện tử, log-in từ xa, truyền files z Các trình ứng dụng Hầu hết người dùng nhìn HĐH dưới các chương trình hệ thống không dưới các lời gọi hệ thống 2.22 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 14, 2005 THIẾT KẾ & THỰC THI HĐH „ Cấu trúc bên trong của các HĐH khác nhau có thể rất khác nhau „ Bắt đầu bởi xác định các đích và các đặc tả „ Bị ảnh hưởng bởi chọn phần cứng, kiểu hệ thống „ Đích người dùng và đích hệ thống z Đích người dùng: thuận lợi cho việc sử dụng, dễ học, tin cậy, an toàn và nhanh z Đích hệ thống : dễ thiết kế, thực thi, bảo trì, mềm dẻo, tin cậy, lượng thứ lỗi và hiệu quả „ Tách biệt chính sách và cơ chế là nguyên lý rất quan trọng để đảm bảo tính mềm dẻo z Chính sách: làm cái gì? z Cơ chế: Làm như thế nào? 2.23 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 14, 2005 CẤU TRÚC ĐƠN GIẢN „ MS-DOS – Được viết để cung cấp các tính năng trong một “không gian hẹp” z Không chia thành các modules z Có cấu trúc nhưng các giao diện và các mức tính năng không được tách biệt 2.24 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 14, 2005 CẤU TRÚC PHÂN TẦNG CỦA MS-DOS 2.25 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 14, 2005 PHƯƠNG PHÁP PHÂN TẦNG „ HĐH được chia thành một số tầng (mức), mỗi một được xây dựng trên các mức thấp hơn, mức thấp nhất là hardware, mức cao nhất là giao diện người dùng „ Với tính module hóa, các tầng được xây dựng sao cho mỗi một chỉ sử dụng các chức năng, dịch vụ của các tầng thấp hơn 2.26 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 14, 2005 HĐH PHÂN TẦNG 2.27 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 14, 2005 UNIX „ UNIX – Bị giới hạn bởi tính năng phần cứng, được cấu trúc hóa, gồm hai phần tách biệt: z Các chương trình hệ thống z Hạt nhân Mọi thứ bên dưới giao diện lời gọi hệ thống bên trên phần cứng  Cung cấp hệ thống file, lập lịch biểu CPU, quản trị bộ nhớ, các các chức năng khác 2.28 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 14, 2005 CẤU TRÚC HỆ THỐNG UNIX 2.29 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 14, 2005 CẤU TRÚC HỆ THỐNG VI HẠT NHÂN „ Chuyển nhiều nhất như có thể các chức năng hạt nhân sang không gian người dùng „ Liên lạc giữa các modules người dùng sử dụng truyền thông điệp „ Các lợi điểm: z Dễ dàng hơn trong việc mở rộng microkernel z Dễ dàng hơn trong việc lái HĐH sang các cấu trúc mới z Đáng tin cậy hơn z An ninh hơn „ Các phương hại: z Tổng phí hiệu năng liên lạc không gian người dùng-không gian hạt nhân cao 2.30 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 14, 2005 CẤU TRÚC Mac OS X 2.31 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 14, 2005 CÁC MODULES „ Hầu hết các HĐH hiện đại thực thi các modules hạt nhân: z Sử dụng tiếp cận hướng đối tượng z Tách biệt mỗi thành phần lõi z Trao đổi thông qua giao diện z Có thể nạp mỗi khi cần 2.32 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 14, 2005 TIẾP CẬN MODULE HÓA Solaris 2.33 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 14, 2005 MÁY ẢO „ Máy ảo: z tiếp cận phân tầng z Ứng xử hạt nhân HĐH như phần cứng z Cung cấp một giao diện đồng nhất „ HĐH tạo ra một ảo ảnh đa quá trình, mỗi một chạy trên một bộ xử lý riêng, bố nhớ riêng „ Các tài nguyên máy tính vật lý được chia sẻ để tạo ra các máy ảo: z Lập lịch biểu CPU tạo ra vẻ mỗi người dùng có bộ xử lý riêng z Spooling và hệ thống file cung cấp bộ đọc card ảo và máy in ảo z Đầu cuối thời gian chia sẻ người dùng cung cấp console toán tử máy ảo 2.34 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 14, 2005 MÁY ẢO (Cont.) (a) Nonvirtual machine (b) virtual machine Non-virtual Machine Virtual Machine 2.35 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 14, 2005 MÁY ẢO (Cont.) „ Quan niệm máy ảo cung cấp sự bảo vệ đầy đủ các tài nguyên hệ thống vì mỗi máy ảo được cô lập với các máy khác, tuy nhiên sự cô lập này không cho phép chia sẻ tài nguyên trực tiếp „ Hệ thống máy ảo là cỗ máy hoàn hảo cho nghiên cứu và phát triển HĐH „ Quan niệm máy ảo khó thực thi 2.36 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 14, 2005 KIẾN TRÚC VMware 2.37 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 14, 2005 MÁY ẢO Java 2.38 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 14, 2005 SỰ SINH RA HĐH „ Các HĐH được thiết kế để chạy trên một máy bất kỳ của một “mẫu máy tính”, hệ thống phải được cấu hình cho mỗi site máy tính xác định „ Chương trình SYSGEN nhận được thông tin liên quan đến cấu hình xác định của hệ thống phần cứng „ Booting – Khởi động máy tính bởi nạp hạt nhân „ Chương trình Bootstrap : code được lưu trong ROM có khả năng định vị hạt nhân, nạp nó vào bộ nhớ và khởi động sự thực hiện của nó 2.39 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 14, 2005 BOOT HỆ THỐNG „ Đoạn code nhỏ - bootstrap loader: định vị hạt nhân, nạp vào bộ nhớ và khởi động nó „ Đôi khi, quá trình hai bước: z boot block ở vị trí cố định nạp bộ nạp bootstrap z Khi được cấp nguồn, sự thực hiện bắt đầu ở một vị trí bộ nhớ cố định z Firmware = initial boot code End of Chapter 2
Tài liệu liên quan