2.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 14, 2005NỘI DUNG Các dịch vụ hệ điều hành Operating System Services Giao diện HĐH người dùng Us
Trang 1CHƯƠNG 2 CẤU TRÚC HỆ ĐIỀU HÀNH
Trang 22.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th 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)
Trang 3MỤ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
Trang 42.4 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 14, 2005
CÁC DỊCH VỤ HĐH
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)
Trang 5CÁ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
Trang 62.6 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th 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
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
Trang 7GIAO 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ởichươ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
Trang 82.8 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 14, 2005
Giao diện biểu tượng
Trang 9LỜ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)
Trang 102.10 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 14, 2005
Dãy lời gọi hệ thống để sao chép một file
Trang 11VÍ 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
Trang 122.12 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 14, 2005
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
Trang 13API – LỜI GỌI HỆ THỐNG – MỐI QUAN HỆ OS
Trang 142.14 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 14, 2005
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()
Trang 15TRUYỀ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
Trang 162.16 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 14, 2005
Trang 17CÁ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
Trang 182.18 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 14, 2005
(a) At system startup (b) running a program
Trang 19FreeBSD CHẠY NHIỀU CHƯƠNG TRÌNH
Trang 202.20 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 14, 2005
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
Trang 222.22 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 14, 2005
THIẾT KẾ & THỰC THI HĐH 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
Trang 23CẤ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
Trang 242.24 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 14, 2005
CẤU TRÚC PHÂN TẦNG CỦA MS-DOS
Trang 25PHƯƠ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
Trang 262.26 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 14, 2005
HĐH PHÂN TẦNG
Trang 282.28 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 14, 2005
Trang 29CẤ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 gianhạt nhân cao
Trang 302.30 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 14, 2005
CẤU TRÚC Mac OS X
Trang 31CÁ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
Trang 322.32 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 14, 2005
TIẾP CẬN MODULE HÓA Solaris
Trang 33MÁ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ộ
Trang 342.34 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 14, 2005
MÁY ẢO (Cont.)
(a) Nonvirtual machine (b) virtual machineNon-virtual Machine Virtual Machine
Trang 35MÁ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
Trang 362.36 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 14, 2005
KIẾN TRÚC VMware
Trang 37MÁY ẢO Java
Trang 382.38 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th 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
định vị hạt nhân, nạp nó vào bộ nhớ và khởi động sự thực hiện củanó
Trang 39BOOT 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
Trang 40End of Chapter 2