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
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:
- 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.pdf