You are on page 1of 40

Chương 2:

NHỮNG VẤN ĐỀ CƠ BẢN


1
CỦA NGUYÊN LÝ HỆ ĐIỀU HÀNH
2 Nội dung
 Định nghĩa Hệ điều hành
 Các nguyên lý xây dựng Hệ điều hành
 Các loại Hệ điều hành
 Các thành phần Hệ điều hành
 Cấu trúc của Hệ điều hành
 Lịch sử phát triển Hệ điều hành
3 Định nghĩa Hệ điều hành

 Hệ điều hành (operating system): Người dùng


Chương trình trung gian giữa phần
cứng MT và người sử dụng, có
chức năng điều khiển và phối hợp
việc sử dụng phần cứng và cung Các ứng dụng
cấp các dịch vụ cơ bản cho các ứng
Hệ điều hành
dụng
Phần cứng
4 Định nghĩa Hệ điều hành (2)

 Mục tiêu:
 Giúp user dễ dàng sử dụng HT
 Command
 GUI
 Quản lý và cấp phát tài nguyên HT một cách hiệu quả
 Size (Mem): hữu hạn
 Size (Process): lớn
5 Định nghĩa Hệ điều hành (3)
 Góc nhìn hệ thống (System):

Banking system Airline reservation Web browser Application


programs
Compilers Editors Command
Interpreter
System programs
Operating system

Machine language

Microprogramming Hardware

Physical devices
6 Định nghĩa Hệ điều hành (4)
 Góc nhìn user:
7 Các nguyên lý xây dựng Hệ điều hành

 Nguyên lý modul
 Nguyên lý tương đối trong định vị
 Nguyên lý phủ chức năng
 Nguyên lý Macro-Processor
 Nguyên lý khởi tạo trong cài đặt
 Nguyên lý bảng tham số điều khiển
 Nguyên lý giá trị chuẩn
 Nguyên lý bảo vệ nhiều mức
8 Các loại Hệ điều hành
 Dưới góc độ loại MT:
 HĐH dành cho máy MainFrame
 HĐH dành cho máy Server
 HĐH dành cho máy nhiều CPU
 HĐH dành cho máy tính cá nhân PC
 HĐH dành cho máy PDA (Embedded OS – hđh nhúng)
 HĐH dành cho máy chuyên biệt
 HĐH dành cho thẻ chip (SmartCard)
9 Các loại Hệ điều hành (2)

 Dưới góc độ số ct được sử dụng cùng lúc:


 HĐH đơn nhiệm
 HĐH đa nhiệm
 Dưới góc độ người dùng:
 Một người dùng
 Nhiều người dùng
 Mạng ngang hàng
 Mạng có máy chủ: LAN, WAN,…
10 Các loại Hệ điều hành (3)

 Dưới góc độ hình thức xử lý


 HT xử lý theo lô
 HT chia sẻ
 HT song song
 HT phân tán
 HT xử lý thời gian thực
11 Các loại Hệ điều hành (4)
 Hệ thống xử lý đơn chương
 Tác vụ được thi hành tuần tự
 Bộ giám sát thường trực
 CPU và các thao tác nhập xuất
 Xử lý offline
 Đồng bộ hóa các thao tác bên ngoài (Spooling: Simultaneous
Peripheral Operation On Line)

Nhập
Nhập CPU Xuất
12 Các loại Hệ điều hành (5)
 Hệ thống xử lý đa chương (Multiprogrammed
systems)
 Nhiều tác vụ sẵn sàng thi hành cùng một thời điểm
 Khi một tác vụ thực hiện I/O, bắt đầu tác vụ khác
 Bộ xử lý và thiết bị thi hành toàn thời gian
13 Các loại Hệ điều hành (6)
Hệ thống xử lý đa chương 0
OS
Nhiều công việc được nạp đồng thời vào bộ nhớ chính
Khi một tiến trình thực hiện I/O, một tiến trình khác được thực thi job 1
Tận dụng được thời gian rảnh, tăng hiệu suất sử dụng CPU
Y/c đối với HĐH: job 2
Định thời công việc (job scheduling): chọn job trong job pool trên đĩa và nạp vào
bộ nhớ để thực thi
job 3
Quản lý bộ nhớ
Định thời CPU
job 4
Cấp phát tài nguyên (đĩa, máy in,…)
Bảo vệ

512K
14

Time
Multiprogramming with three programs
15 Các loại Hệ điều hành (8)
 Hệ thống chia xẻ thời gian (Time – sharing systems)
 Còn gọi là HT đa nhiệm (Multitasking)
 Giống như HT đa chương: Khi 1 process (A) xử lý sk I/O thì process
khác (B,C,…) cũng được đưa vào CPU
 Khác ở chỗ (slice time): P(A) đc đưa vào để xl sk I/O => giống như
đa chương là sẽ được cấp khoảng tg (VD:100ms), nhưng khi hết
100ms vẫn chưa xong => P(A) sẽ được đưa trở lại BNC để chọn
P(B) vàothực thi
Windows
 Linux

 Mục tiêu: tăng khả năng tương tác với user


16 Các loại Hệ điều hành (9)
 Hệ thống chia xẻ thời gian (Time – sharing systems)
 Multiprogrammed systems ko cung cấp k/n tương tác hiệu quả với
users
 CPU luân phiên thực thi các công việc: mỗi công việc được chia
một phần nhỏ tg CPU
 Một công việc chỉ được chiếm CPU khi nó nằm trong BNC
 Khi cần, 1 công việc nào đó có thể được chuyển từ BNC ra th.bị
lưu trữ thứ cấp: đĩa cứng (cơ chế swapping), nhường BNC cho
công việc khác.
17 Các loại Hệ điều hành (10)
 Hệ thống chia xẻ thời gian (Time – sharing systems)
 Y/c đối với OS:
 Định thời công việc: mỗi process được cấp 1 khoảng tg, nếu sau khoảng tg
đó mà chưa kết thúc thì phần còn lại của process đó được đưa trở lại BNC
để chờ xử lý tiếp.
 Quản lý bộ nhớ ảo: ~ đa chương
 Quản lý các quá trình (tiến trình): định thời CPU, đồng bộ các quá trình, giao
tiếp các quá trình, tránh deadlock
 Quản lý HT file, HT lưu trữ
 Cấp phát hợp lý các tài nguyên
 Bảo vệ (protection)
18 Các loại Hệ điều hành (11)
 Hệ thống đa xử lý (xử lý song song)
 Hai hoặc nhiều bộ xử lý cùng chia sẻ một bộ nhớ
 Theo cơ chế Master/Slave: 1 bộ xl chính kiểm soát một số bộ xl còn
lại
 Có 2 mô hình sau:

CPU CPU CPU CPU MEM CPU MEM CPU MEM

MEM

CPU chuyên đọc dl/ghi dl/tính toán/… =>an toàn hơn (vì lí do nào đó, 1
CPU bị hỏng => master sẽ giao công việc đó cho 1 CPU khác)
19 Các loại Hệ điều hành (12)
 Hệ thống song song (parallel, multiprocessor, tightly
coupled system):
 Nhiều CPU
 Năng suất HT:
 Càng nhiều processor =>tăng khả năng tính toán => nhanh xong công việc
 Ít tốn kém hơn multiple single-processor system vì có thể dung chung tài
nguyên (đĩa, bộ nhớ,…)
 Độ tin cậy: khi 1 processor hỏng thì công việc của nó được chia sẻ
với các processor còn lại
20 Các loại Hệ điều hành (13)
 Hệ thống phân tán
 Nhiều MT liên kết với nhau bằng đường truyền thông đặc biệt
 Tương tự HT đa xử lý nhưng ko chia sẻ bộ nhớ
HT máy tính 1 HT máy tính 2

Giao tiếp mạng Giao tiếp mạng


Mạng

Bộ xử lý Bộ xử lý

Bộ nhớ Bộ nhớ
21 Các loại Hệ điều hành (14)
 Hệ thống phân tán (distributed system, loosely coupled
system)
 Mỗi processor có bộ nhớ riêng, các processor giao tiếp qua các kênh
nối như mạng, bus tốc độ cao
 Người dùng chỉ thấy 1 HT đơn nhất
 Ưu điểm:
 Chia sẻ tài nguyên (resource sharing)
 Chia sẻ sức mạnh tính toán (computational sharing)
 Độ tin cậy cao (high reliability)
 Độ sẵn sàng cao (high availability): các d.vụ của HT được cung cấp liên tục cho
dù 1 thành phần hardware trở nên hỏng
22 Các loại Hệ điều hành (15)
Hệ thống phân tán - Các mô hình:
 Client – server
 Server: cung cấp dịch vụ
 Client: có thể sử dụng dịch vụ của server

 Peer - to - peer (P2P)


 Các peer (MT trong HT) đều ngang hàng nhau
 Không có CSDL tập trung
 Các peer là tự trị
23 Các loại Hệ điều hành (16)
Hệ thống thời gian thực (real time system)
 Sử dụng trong các thiết bị chuyên dụng như điều khiển, các thử nghiệm khoa
học, điều khiển trong y khoa, dây chuyền công nghiệp, thiết bị gia dụng, quân sự
 Ràng buộc về thời gian: hard và soft real-time

Phân loại:
 Hard real-time:
 Hạn chế/ko có bộ nhớ phụ, tất cả dl nằm trong BNC (RAM/ROM)
 Y/c về thời gian đáp ứng/xử lý rất nghiêm ngặt, thường sử dụng trong điều khiển công
nghiệp, robotics,…
 Soft real-time: thường dùng trong lĩnh vực multimedia, virtual reality với y/c mềm
dẻo hơn về thời gian đáp ứng
24 Các loại Hệ điều hành (17)
Thiết bị cầm tay (handheld system)
 Personal digital assistant (PDA): Palm, Pocket – PC
 Điện thoại di động (cellular phones)
 Đặc trưng:
 Bộ nhớ nhỏ: 512 KB – 128 MB
 Tốc độ processor thấp (để ít tốn pin)
 Màn hình kích thước nhỏ, độ phân giải thấp
 Có thể dùng các công nghệ kết nối như IrDA, Bluetooth, Wireless
25 Các thành phần Hệ điều hành

 Quản lý quá trình (process management)


 Quản lý bộ nhớ chính
 Quản lý file (file management)
 Quản lý hệ thống I/O (I/O system management)
 Quản lý HT lưu trữ thứ cấp (secondary storage management)
 HT bảo vệ
 HT thông dịch lệnh
 HT mạng
26 Các thành phần Hệ điều hành (2)
 Quản lý quá trình (process management)
 Quá trình (hay tiến trình – process) là gì? Là ct thực thi
 Khác chương trình ở điểm gì? (ct nằm ở đĩa cứng, qt nằm ở BNC)
 Một qt cần các tài nguyên của HT: CPU, bộ nhớ, file, th.bị I/O,…để
hoàn thành công việc
 Các nhiệm vụ của thành phần:
 Tạo và hủy qt
 Tạm dừng/thực thi tiếp (suspend/resume) qt: khi các process xl sk I/O => các
process tạm thời bị đưa ra vùng nhớ =>có cơ chế kích hoạt lại process
 Cung cấp các cơ chế:
 Đồng bộ hoạt động các qt (synchronization)
 Giao tiếp giữa các qt (interprocess communication): qua MEM, messages, system call
 Khống chế tắc nghẽn (deadlock)
27 Các thành phần Hệ điều hành (3)
 Quản lý bộ nhớ chính
 BNC là trung tâm của các thao tác, xử lý
 Để nâng cao hiệu suất sử dụng CPU, HĐH cần quản lý bộ nhớ
thích hợp
 Các nhiệm vụ:
 Theo dõi, quản lý các vùng nhớ trống và vùng đã cấp phát
 Quyết định sẽ nạp ct nào khi có vùng nhớ trống
Cache
 Cấp phát và thu hồi vùng nhớ khi cần thiết
BNC
(RAM, ROM)

BNTC (HD)
28 Các thành phần Hệ điều hành (4)
 Quản lý file
 Hệ thống file (file system): cấu trúc cây
 File
 Thư mục
 Các dịch vụ mà thành phần cung cấp
 Tạo, xóa file/TM
 Các thao tác xử lý file/TM
 “Ánh xạ” file/TM vào th.bị lưu trữ thứ cấp tương ứng
 Sao lưu và phục hồi dữ liệu
29 Các thành phần Hệ điều hành (5)

 Quản lý hệ thống I/O


 Che dấu sự khác biệt của th.bị I/O trước người dùng
 Có chức năng:
 Cơ chế bộ đệm: buffering, caching, spooling
 Cung cấp giao diện chung đến trình điều khiển th.bị (device – drive
interface)
 Bộ điều khiển các th.bị (device driver) phần cứng
30 Các thành phần Hệ điều hành (5)

 Quản lý hệ thống lưu trữ thứ cấp


 BNC: kích thước nhỏ, là môi trường chứa tin ko bền vững
=> cần HT lưu trữ thứ cấp để lưu trữ bền vững dl, ct
 Phương tiện lưu trữ thông dụng: đĩa từ, đĩa quang
 Nhiệm vụ của HĐH trong quản lý đĩa:
 Quản lý ko gian trống trên đĩa (free space management)
 Cấp phát ko gian lưu trữ (storage allocation)
 Định thời hoạt động cho đĩa (disk scheduling)

=> Sử dụng thường xuyên, ảnh hưởng đến tốc độ của cả HT


=> cần hiệu quả
31 Các thành phần Hệ điều hành (6)
Hệ thống bảo vệ: (hai góc độ: user & process)
Trong HT cho phép nhiều user hay nhiều process diễn ra đồng thời
 Kiểm soát qt user đăng nhập/xuất và sử dụng HT
 Kiểm soát việc truy cập tài nguyên HT
 Đảm bảo các user/process chỉ được phép sử dụng tài nguyên
dành cho nó
 Các nhiệm vụ:
 Cung cấp cơ chế kiểm soát đăng nhập/xuất (login, log out)
 Phân định được sự truy cập tài nguyên hợp pháp và bất hợp pháp
 Phương tiện thi hành các chính sách: chính sách cần bảo vệ dl của ai
đối với ai
32 Các thành phần Hệ điều hành (7)

Hệ thống thông dịch lệnh


 Là giao diện chủ yếu giữa user và OS
VD: shell, mouse-based window-and-menu
 Khi user login: command line interpreter (shell) chạy, và chờ nhận lệnh
từ user, thực thi lệnh và trả kết quả về
 Các lệnh ->bộ điều khiển lệnh ->HĐH
 Các lệnh có quan hệ với các việc:
 Tạo, hủy, quản lý qt, HT
 Kiểm soát I/O
 Quản lý bộ nhớ thứ cấp
 Quản lý BNC
 Truy cập HT file và cơ chế bảo mật
33 Cấu trúc của hệ điều hành

 Cấu trúc đơn giản


 Cấu trúc phân tầng
 Vi nhân
 Máy ảo
34 Cấu trúc của hệ điều hành (2)

 Cấu trúc đơn giản Aplication program


(monolithique): phân chia modul
 MS DOS: khi thiết kế, do giới hạn
Resident system program
về dung lượng bộ nhớ nên ko
phân chia thành các modul và
chưa phân chia rõ c/n giữa các
phần của HT MS-DOS device drivers
 Bảo mật kém, dễ hư hỏng th.bị
(VD: điều khiển truyền dl tới các
th.bị ngoại vi-> ngắt bất ngờ ->mất ROM BIOS device drivers
nguồn ->sụt áp ->hư hỏng th.bị
Cấu trúc phân tầng của MS DOS
35 Cấu trúc của hệ điều hành (3)

 Cấu trúc đơn giản:


 UNIX: gồm 2 phần có thể tách rời nhau
 Nhân (cung cấp file system, CPU scheduling, memory management, một
số c/n khác) và system program
36 Cấu trúc của hệ điều hành (4)

 Cấu trúc phân tầng: HĐH được chia thành nhiều lớp
 Lớp dưới cùng: hardware
 Lớp trên cùng: giao tiếp với user
 Lớp trên chỉ phụ thuộc lớp dưới
 Một lớp chỉ có thể gọi hàm của lớp dưới và các hàm của nó được
gọi bởi lớp trên
 Mỗi lớp tương đương 1 đối tượng trừu tượng: CTDL + thao tác
 Phân lớp có lợi gì? Gỡ rối (debugger, kiểm tra HT, thay đổi c/n)
37 Cấu trúc của hệ điều hành (5)

 Cấu trúc phân tầng:


 Lần đầu tiên được áp dụng cho HĐH THE (Technische Hogeschool
Eindhoven)

Lớp 5 User program


Lớp 4 Tạo buffer cho th.bị I/O
Lớp 3 Device driver thao tác màn hình
Lớp 2 Quản lý bộ nhớ
Lớp 1 Lập lịch CPU
Lớp 0 Phần cứng
38 Cấu trúc của hệ điều hành (6)

 Vi nhân: phân chia modul theo microkernel (CMU


Mach OS, 1980)
 Chuyển một số c/n của OS từ kernel space sang user
space
 Thu gọn kernel =>microkernel, microkernel chỉ bao gồm
các c/n tối thiểu như quản lý qt, bộ nhớ và cơ chế giao tiếp
giữa các qt
 Giao tiếp các modul qua cơ chế truyền thông điệp
39 Cấu trúc của hệ điều hành (7)

 Vi nhân:
 Lợi ích: dễ mở rộng HĐH
 Một số HĐH hiện đại vẫn sử dụng vi nhân:
 Tru64 UNIX: nhân Mach
 Apple Mac OS server: nhân Mach
 QNX-vi nhân cung cấp: truyền thông điệp, định thời CPU, giao tiếp
mạng cấp thấp, ngắt phần cứng
 Windows NT: chạy các ứng dụng khác nhau như win32, OS/2,
POSIX (Portable OS for uniX)
40 Cấu trúc của hệ điều hành (8)

 Máy ảo:
 Là những bản sao ảo chính xác các đặc tính phần cứng của máy tính thực
 Cho phép một hệ điều hành khác hoạt động trên đó như trên phần cứng
thực sự
 Phức tạp nhất của máy ảo là hệ thống đĩa: giả sử HT chỉ có 3 bộ điều
khiển đĩa nhưng có 7 máy ảo =>XD HT đĩa ảo
 Khó cài đặt mặc dù rất hữu ích
 =>
 Muốn chạy nhiều HĐH trên 1 th.bị phần cứng
 XD, phát triển HĐH mới (tránh hỏng hóc th.bị phần cứng)

You might also like