CHƯƠNG 2:CấU TRÚC Hệ
ĐIềU HÀNH
1
Trương Văn Quốc
Trần Văn Quang
Nguyễn Hồng Quân
CHƯƠNG 2: CấU TRÚC Hệ ĐIềU HÀNH
Các hệ thống thông tin dịch vụ
Giao diện hệ điều hành của người sử dụng
Lời gọi hệ thống
Các lời gọi hệ thống
Các chương trình hệ thống
Hệ điều hành thiết kế và cài đặt
Cấu trúc hệ điều hành
Máy ảo
Tổng quát hệ điều hành
Khởi động hệ thống
2
MụC TIÊU
Mô tả các dịch vụ hệ điều hành cung cấp cho người sử dụng,
các quy trình và các hệ thống khác
Thảo luận về sự khác nhau trong cấu trúc hệ điều hành
Phương pháp để cài đặt , tuỳ chỉnh, cách khởi động hệ điều
hành
3
CÁC Hệ THốNG THÔNG TIN DịCH Vụ
Một hệ điều hành – dịch vụ cung cấp các chức năng hữu ích cho người sử dụng :
Giao diện người sử dụng-Hầu hết các HĐH đều có giao diện người sử dụng(user
interface –UI)
Sự khác nhau giữa Command-Line (CLI), Graphics User Interface (GUI),
Batch
Thực hiện chương trình - Các hệ thống cần phải có khả năng tải một chương
trình vào bộ nhớ và để chạy chương trình đó, kết thúc thực hiện, hoặc là bình
thường hay khác thường (chỉ lỗi)
Hoạt động vào ra(I/O)- Một chương trình chạy có thể yêu cầu vào ra, trong đó có
thể bao gồm một tập tin hoặc một thiết bị vào ra (I/O device)
Sử dụng file hệ thống - Các file hệ thống là đặc biệt quan trọng. Rõ ràng, các
chương trình cần phải đọc và viết các file và thư mục, tạo và xóa chúng, họ tìm
kiếm, danh sách tập tin Thông tin, cho phép quản lý
4
CÁC Hệ THốNG THÔNG TIN DịCH Vụ
(TIếP)
Một hệ điều hành – dịch vụ cung cấp các chức năng hữu
ích cho người sử dụng (tiếp):
Truyền thông – điều khiển quá trình trao đổi thông tin, trên
cùng một máy tính hoặc giữa các máy tính trên một mạng
lưới
Truyền thông có thể được chia sẻ thông qua bộ nhớ hoặc thông qua tin
nhắn (gói chuyển bởi các hệ điều hành)
Phát hiện lỗi - Hệ điều hành cần phải được liên tục có thể
nhận ra các lỗi
Có thể xảy ra trong CPU và bộ nhớ vật lý, trong thiết bị vào ra, trong
chương trinh của người sủ dụng
Đối với mỗi loại hình báo lỗi, hệ điều hành nên dùng các hành động
thích hợp để đảm bảo chính xác và tính toán phù hợp
Các tiện ích gỡ lỗi có thể giúp người dùng và các lập trình viên tăng
khả năng sử dụng hiệu quả các hệ thống
5
CÁC Hệ THốNG THÔNG TIN DịCH Vụ
(TIếP)
Một chức năng khác của hệ điều hành là bảo đảm sự tồn tại cho hiệu quả hoạt động
của mình thông qua hệ thống chia sẻ tài nguyên
Phân bổ nguồn lực - Khi có nhiều người dùng hoặc nhiều công việc làm đồng thời,
nguồn tài nguyên phải được chia nhỏ ra
Nhiều loại hình tài nguyên - Một số (như là chu kỳ CPU, bộ nhớ chính, và lưu
trữ file) có thể được phân bổ mã đặc biệt, một số khác (chẳng hạn như thiết bị
vào ra) có thể có yêu cầu nói chung và phát hành mã
Thống kê- Để theo dõi trong đó có bao nhiêu người sử dụng và các loại tài nguyên
của máy tính
Bảo vệ và an ninh - Các chủ sở hữu của thông tin được lưu giữ trong một máy tính
dùng chung hay hệ thống mạng máy tính có thể muốn kiểm soát việc sử dụng
thông tin đó, các quy trình xảy ra đồng thời không nên can thiệp với nhau
Bảo vệ bao gồm việc bảo đảm rằng tất cả các truy cập vào hệ thống tài nguyên
phải được kiểm soát
An ninh của hệ thống việc truy cập từ bên ngoài phải được xác nhận, kéo dài
để bảo vệ bên ngoài thiết bị vào ra truy cập từ các nỗ lực không hợp lệ
Nếu là một hệ thống được bảo vệ và an toàn, nghĩa là phải được đặt nền móng
cho chính nó. Một chuỗi chỉ như mạnh mẽ nhờ các yếu liên kết
6
GIAO DIệN Hệ ĐIềU HÀNH CủA NGƯờI Sử
DụNG
(USER OPERATING SYSTEM INTERFACE – CLI)
CLI(Command-line) cho phép trực tiếp nhập lệnh
Đôi khi triển khai thực hiện trong kernel, đôi khi do hệ thống
chương trình
Đôi khi nhiều mùi vị triển khai thực hiện – Vỏ
Chủ yếu tìm nạp một lệnh từ người dùng và thực thi nó
Đôi khi xây dựng lệnh, đôi khi chỉ cần tên của các chương trình
Nếu sau, việc thêm các tính năng mới không cần sửa đổi, bổ sung
thêm
7
USER OPERATING SYSTEM
INTERFACE – GUI(GRAPHICS USER
INTERFACE)
Thân thiện với người dùng máy tính để bàn giao diện ẩn
Thông thường chuột, bàn phím, và màn hình
Icon đại diện cho file, chương trình, hành động, vv
Dùng con chuột tác động đến các đối tượng khác nhau trong
giao diện gây ra nhiều hoạt động (cung cấp thông tin, lựa chọn,
thực hiện chức năng, mở thư mục )
Được phát minh tại Xerox PARC
Nhiều hệ thống hiện nay bao gồm cả hai CLI và giao diện GUI
Microsoft Windows là GUI với CLI “command" shell
Apple Mac OS X như là "Aqua" GUI giao diện với UNIX kernel
bên dưới và hệ vỏ có sẵn
Solaris là CLI với tùy chọn giao diện GUI (Java Desktop, KDE)
8
LờI GọI Hệ THốNG
Lập trình giao diện cho các dịch vụ được cung cấp bởi các hệ
điều hành
Thường được viết trong một ngôn ngữ cấp độ cao (C hoặc C +
+)
Phần lớn các truy cập thông qua một chương trình cao cấp-Lập
trình Ứng dụng (API) hơn là trực tiếp sử dụng hệ thống gọi
Ba API phổ biến nhất là Win32 API cho Windows, posix API
cho posix dựa trên hệ thống (bao gồm hầu như tất cả các phiên
bản của UNIX, Linux, và hệ điều hành Mac OS X), và Java
API cho các máy ảo Java (JVM)
Tại sao phải sử dụng các API hơn là các lời gọi hệ thống?
(Lưu ý rằng lời gọi hệ thống là tên được sử dụng trong suốt văn
bản này là chung)
9
VÍ Dụ Về LờI GọI Hệ THốNG
Lời gọi hệ thống được dùng để sao chép nội dung của 1
file vào 1 file khác
10
File nguồn
File đích
VÍ Dụ Về STANDARD API
Xem xét cách đọc của JAVA
byte [] b – bộ đệm là nơi đọc dữ liệu
Int off - bắt đầu offset trong b, nơi các đọc dữ liệu
Int len - tối đa số byte đọc
11
Sự THI HÀNH CUA LờI GọI Hệ THốNG
Thông thường, một số liên kết với mỗi hệ thống gọi
Hệ thống-gọi giao diện duy trì một bảng mục theo những con
số
Hệ thống giao diện gọi dẫn ra hệ thống gọi trong hệ điều
hành kernel và trở về tình trạng của hệ thống gọi và trả về
giá trị
Người gọi cần biết gì về cách lời gọi hệ thống được thực
hiện
Chỉ cần phải tuân theo các API và hiểu rõ những gì sẽ làm hệ
điều hành như là một kết quả cuộc gọi
Hầu hết các chi tiết của giao diện hệ điều hành dều ẩn do các
lập trình viên từ API
Quản lý bởi thời gian chạy hỗ trợ thư viện (bộ các chức năng được
xây dựng vào thư viện bao gồm trình biên dịch)
12
API – SYSTEM CALL – QUAN Hệ TRONG
HDH
13
Ứng dụng cho
ngươi dùng
Hệ thống gọi
giao diện
VÍ Dụ Về THƯ VIệN C CHUẩN
14
Chương trình C
Thư viện C chuẩn
TRUYềN THAM Số CHO CÁC LờI GọI Hệ
THốNG
Bình thường, nhiều thông tin được yêu cầu nhận dạng một cách
đơn giản hơn mong muốn của hệ thống gọi
Loại và số lượng của thông tin khác nhau tùy thuộc vào hệ điều
hành và cách gọi
Ba phương pháp chính được sử dụng để gửi tham số cho các hệ
điều hành
Đơn giản nhất: truyền tham số vào các thanh ghi
Trong một số trường hợp, có thể có nhiều tham số hơn số thanh ghi
Các tham số được lưu giữ trong một khối, hoặc bảng, trong bộ nhớ,
và địa chỉ của khối được truyền bằng tham số vào trong thanh ghi
Phương pháp tiếp cận này được sủ dụng cho Linux và Solaris
Các tham số được đặt, hoặc đưa vào stack bởi các chương trình và
lấy ra khỏi stack do hệ điều hành
Khối và stack các phương thức không giới hạn số lượng hay chiều
dài của tham số được truyền vào
15
TRUYềN THAM Số VÀO BảNG
16
Thanh ghi
Hệ Điều hành
Người dùng
CÁC LờI HọI Hệ THốNG:
Quá trình điều khiển
Quản lý dữ liệu
Quản lý thiết bị
Sự duy trì thông tin
Sự giao tiếp
17
Sự THựC HIệN MS_DOS
18
(a) Khi mới khởi động
(b) Khi đang chạy chương trình
Lệnh phiên
dịch
Quá trình
CHƯƠNG TRÌNH HOạT ĐộNG NHIềU
NHÁNH LIÊN TụC Tự DO BSD
19