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
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