Bài giảng Hệ điều hành: Tiến trình - Nguyễn Lê Minh

Tiến trình là gì?

Trạng thái của tiến trình

Khối điều khiển tiến trình (PCB)

Thao tác trên tiến trình

Điều phối (lập lịch) tiến trình

Truyền thông liên tiến trình

 

pptx 33 trang phuongnguyen 10740
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Hệ điều hành: Tiến trình - Nguyễn Lê Minh", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Hệ điều hành: Tiến trình - Nguyễn Lê Minh

Bài giảng Hệ điều hành: Tiến trình - Nguyễn Lê Minh
TIẾN 
TRÌNH 
ThS. Nguyễn Lê Minh 
Khoa CNTT, ĐH Giao thông vận tải 
Email: nlminh@utc2.edu.vn 
NỘI DUNG 
• 
• 
• 
• 
• 
• 
Tiến trình là gì? 
Trạng thái của tiến trình 
Khối điều khiển tiến trình (PCB) 
Thao tác trên tiến trình 
Điều phối (lập lịch) tiến trình 
Truyền thông liên tiến trình 
2 
TIẾN TRÌNH L À G Ì ? 
• 
• 
Tiến trình là chương trình đang được thực hiện 
Được xem là đơn vị làm việc 
hành 
Chương trình vs. Tiến trình 
trong 
các 
Hệ 
điều 
• 
• 
Chương trình 
• Thực thể tĩnh 
• Không sở hữu tài nguyên cụ thể 
Tiến trình 
• Thực thể động 
• Được cấp một số tài nguyên (memory, CPU Registers) để chứa 
dữ liệu và thực hiện lệnh 
• 
3 
TIẾN TRÌNH L À G Ì ? 
• 
Các hoạt động hiện tại của tiến trình được thể hiện 
qua bộ đếm chương trình (program counter) 
và 
nội 
dung 
các 
thanh 
ghi 
(registers) 
của 
bộ 
xử 
lý 
4 
P R OC E SS IN MEMO R Y 
• 
Text section (Đoạn mã lệnh) 
• Chứa mã lệnh của chương trình (compiled 
program code) 
Data section (Đoạn dữ liệu) 
• Chứa các biến toàn cục (global variables) và 
biến static 
• Khởi tạo trước khi thực thi hàm main 
Heap 
	 Dành cho cấp phát bộ nhớ động (dynamic 
memory allocation) 
• Được quản lý thông qua các hàm: new, 
delete, malloc, free, etc. 
Stack 
• Dành cho các biến cục bộ (local variables) 
• 
• 
• 
5 
Figure credit: Abraham Silberschatz, Greg Gagne, and Peter Baer Galvin, "Operating System Concepts, Ninth Edition ", Chapter 3 
6 
Figure credit: https://cg2010studio.wordpress.com/2011/06/26/process-in-memory/ 
TRẠNG THÁI CỦ A TIẾN TRÌNH 
• 
• 
Khi thực hiện, trạng thái của tiến trình thay đổi 
Trạng thái của tiến trình được xác định bằng hoạt 
động hiện thời của nó 
Tiến trình có thể nhận 1 trong 5 trạng thái sau: 
• 
• 
• 
New (Khởi tạo) – tiến trình đang được khởi tạo 
R e a dy ( Sẵn sàn g ) – ti ế n trình đang c h ờ được c ấp CPU để 
thực thi lệnh của mình 
Running (Thực hiện) – các câu lệnh của tiến trình đang 
được thực hiện 
Waiting (Chờ đợi) – tiến trình tạm dừng để chờ một tài 
nguyên hoặc một sự kiện 
Terminated (Kết thúc) – tiến trình được thực hiện xong 
• 
• 
• 
7 
Figure credit: Abraham Silberschatz, Greg Gagne, and Peter Baer Galvin, "Operating System Concepts, Ninth Edition ", Chapter 3 
8 
KHỐI ĐIỀU KHIỂN TIẾN TRÌNH 
• 
• 
Process Control Block (PCB) 
Cấu trúc thông 
tin 
cho 
phép 
xác 
định 
duy 
nhất 
một 
tiến 
trình 
9 
Figure credit: Abraham Silberschatz, Greg Gagne, and Peter Baer Galvin, "Operating System Concepts, Ninth Edition ", Chapter 3 
KHỐI ĐIỀU KHIỂN TIẾN 
TRÌNH 
• 
Các thông tin trong PCB 
• 
• 
• 
• 
Process state (Trạng thái của tiến trình) 
Program counter (Bộ đếm chương trình) 
CPU registers (Các thanh ghi) 
CPU scheduling information (Thông tin điều 
phối tiến trình) 
• Mức độ ưu tiên của tiến trình, vị trí trong hàng đợi,  
Memory management information (Thông tin về bộ nhớ của 
tiến trình) 
Accounting information (thông tin thống kê): 
• 
• 
• 
I/O 
• 
Thời gian sử dụng CPU, giới hạn thời gian 
status information 
Danh sách các thiết bị vào/ra được cấp phát cho tiến trình, các file 
đang mở 
• 
10 
Figure credit :  
11 
TH A O T ÁC 
TRÊN 
TIẾN 
TRÌNH 
• 
• 
Tạo mới tiến trình 
Kết 
thúc 
tiến 
trình 
12 
TẠO MỚI TIẾN TRÌNH 
• 
Khi tiến trình mới được đưa vào hệ thống, Hệ điều 
hành tạo ra 
• 
Gán số định danh cho tiến trình được tạo mới và tạo 
một ô trong bảng tiến trình 
Tạo không gian nhớ cho tiến trình và PCB 
Khởi tạo PCB 
• 
• 
• 
Liên kết PCB của tiến trình vào các 
danh 
sách 
quản 
lý 
• 
Tiến trình được tạo ra khi 
• 
• 
• 
Khởi tạo hệ thống (OS is boosted) 
Tiến trình con 
Tiến trình do người dùng tạo ra 
13 
TIẾN TRÌNH C ON 
• 
Một tiến trình có thể tạo ra nhiều tiến trình 
hoạt động 
• Tiến trình tạo: tiến trình cha (parent process) 
• Tiến trình được tạo: tiến trình con (children) 
Cây tiến trình (Tree of process) 
Phân phối tài nguyên 
• Tiến trình con lấy tài nguyên từ hệ điều hành 
• Tiến trình con lấy tài nguyên từ tiến trình cha 
• Một phần tài nguyên 
• Tất cả tài nguyên 
Thực hiện 
mới 
cùng 
• 
• 
• 
• Tiến trình cha tiếp tục thực hiện đồng thời với tiến trình con 
• Tiến trình cha đợi tiến trình con kết thúc 
14 
KẾT THÚC TIẾN TRÌNH 
• 
Kết thúc bình thường: yêu cầu HDH 
bằng cách gọi lời gọi hệ thống exit() 
Bị kết thúc: 
kết 
thúc 
mình 
• 
• 
• 
• 
Bị tiến trình cha kết thúc 
Do các lỗi 
Yêu cầu nhiều bộ nhớ hơn so với số lượng 
thể cung cấp 
Thực hiện lâu hơn thời gian giới hạn 
hệ thống 
có 
• 
• 
Do quản trị hệ thống hoặc hệ điều hành kết thúc 
15 
ĐIỀU PHỐI TIẾN TRÌNH 
• 
• 
• 
Mục tiêu 
Các hàng đợi điều phối (Scheduling 
queues) 
Bộ 
điều 
phối 
(Scheduler) 
16 
ĐIỀU PHỐI TIẾN 
TRÌNH 
• 
• 
• 
Thuật ngữ: Process scheduling 
Còn gọi là lập lịch tiến trình 
Mục tiêu: 
• 
• 
Sử dụng tối đa thời gian CPU 
Người dùng có thể tương tác với 
tiến trình 
• 
Bộ 
điều phối tiến trình (Process scheduler) 
lựa 
chọn một tiến trình để thực hiện 
Trong hệ thống một processor 
• Chỉ có 1 tiến trình được thực hiện 
• 
• Các tiến trình khác phải chờ tới khi CPU tự do 
17 
CÁC HÀNG ĐỢI ĐIỀU PHỐI 
• 
Các tiến trình chưa được phân phối sử dụng CPU sẽ 
được đưa vào hàng đợi điều phối (Scheduling 
Hệ thống có nhiều hàng đợi dành cho các tiến trình 
• 
• 
Job queue: hàng đợi dành cho tất cả các tiến trình trong 
hệ thống 
Ready queue: bao gồm các tiến trình đang ở trạng thái 
sẵn sàng 
Device queues: hàng đợi dành cho các tiến trình đang 
chờ đợi thiết bị vào/ra 
• Mỗi thiết bị có hàng đợi riêng biệt 
• 
• 
18 
19 
Figure credit: Abraham Silberschatz, Greg Gagne, and Peter Baer Galvin, "Operating System Concepts, Ninth Edition ", Chapter 3 
CÁC HÀNG ĐỢI ĐIỀU 
PHỐI 
• 
Trong suốt thời gian 
tồn 
tại 
tiến 
trình 
di 
chuyển 
giữa 
các 
hàng 
đợi 
20 
BỘ 
ĐIỀU 
PHỐI 
– 
SCH E DULER 
Lựa chọn 
tiến trình trong các hàng đợi 
• 
• 
Điều phối dài hạn ( Job scheduler; Long-term scheduler ) 
Điều phối ngắn hạn ( CPU scheduler; Short-term scheduler ) 
21 
B Ộ ĐIỀU PHỐI D ÀI HẠN 
• 
• 
Thuật ngữ: Job scheduler, long-term scheduler 
Trong hệ thống lô, số lượng tiến trình đưa vào hệ 
thống th ư ờng nh i ều hơn số l ư ợng tiến tr ì nh c ó thể 
thực thi ngay lập tức 
Các tiến trình này được lưu trữ tạm thời ở một thiết bị lưu trữ (mass-storage device), thường là ổ đĩa (disk) 
Bộ điều phối dài hạn lựa chọn tiến trình từ nhóm 
này để tải vào bộ nhớ 
• 
• 
22 
B Ộ ĐIỀU PHỐI D ÀI HẠN 
• 
Bộ điều phối dài hạn k i ểm so á t mức độ đa chương trình 
Nếu mức độ đa chương trình ổn định, bộ điều phối 
hạn chỉ được gọi khi có một tiến trình rời hệ thống 
• Điều phối không thường xuyên 
• Đơn vị giây/phút 
Lựa chọn tiến trình: 
• 
dài 
• 
• 
• 
• 
Tiến trình thiên về vào/ra (I/O bound) 
Tiến trình thiên về CPU (CPU bound) 
 Cần lựa chọn cả 2 loại tiến trình 
• 
Trong nhiều hệ thống, không có bộ điều phối dài hạn 
• Ví dụ: Time-sharing system, như: Unix, Microsoft Windows 
23 
BỘ ĐIỀU PHỐI NGẮN HẠN 
• 
• 
Thuật ngữ: CPU scheduler, short-term scheduler 
Lựa chọn một tiến trình từ ready 
phối CPU cho nó 
Được thực hiện thường xuyên 
Phải thực hiện nhanh 
queue 
và 
phân 
• 
• 
• 
Thuật 
toán 
lựa 
chọn 
tiến 
trình? 
24 
BỘ ĐIỀU PHỐI TRUNG HẠN 
• 
• 
Thuật ngữ: Medium-term scheduler 
Trong một số hệ chia sẻ thời gian (time-sharing 
systems), có thêm bộ điều phối trung hạn 
Nhiệm vụ 
• Đưa một hoặc một số tiến trình ra khỏi bộ nhớ (làm 
giảm mức độ đa chương trình) 
• Sau đó đưa tiến trình trở lại và tiếp tục thực hiện 
Mục đích 
• Giải phóng vùng nhớ, tạo vùng nhớ tự do rộng hơn 
• 
• 
25 
BỘ 
ĐIỀU 
PHỐI 
TRUNG 
HẠN 
26 
CHUYỂN ĐỔI GIỮA CÁC TIẾN TRÌNH 
• 
Thông t i n v ề tiến tr ì nh hiện thời (chứa t r ong PCB) đ ư ợc 
gọi là ngữ cảnh (context) của tiến trình 
• 
Việc chu y ển giữa tiến trình c òn đ ược 
ngữ cảnh (context switch) 
Xảy ra khi: 
• Có ngắt 
• Tiến trình gọi lời gọi hệ thống 
Trước khi chuyển sang thực hiện tiến 
cảnh được lưu vào PCB 
gọi là 
chuyển đổi 
• 
• 
trình khác, ngữ 
• 
Khi được c ấp ph á t CPU thực hiện t r ở lại, ngữ c ảnh 
được khôi phục từ PCB vào các thanh ghi và bảng 
tương ứng 
27 
28 
Figure credit: Abraham Silberschatz, Greg Gagne, and Peter Baer Galvin, "Operating System Concepts, Ninth Edition ", Chapter 3 
TRUYỀN THÔNG LIÊN TIẾN TRÌNH 
• 
• 
• 
• 
• 
Phân loại tiến trình 
Hợp tác tiến trình 
Hai mô hình của truyền thông 
Shared memory systems 
liên 
tiến 
trình 
Message 
passing 
systems 
29 
PHÂN LOẠI TIẾN TRÌNH 
• 
Tiến trình tuần tự 
• Điểm bắt đầu của tiến trình này 
của tiến trình kia 
Tiến trình song song 
nằm 
sau điểm kết thúc 
• 
• 
Điểm bắt đầu của tiến trình này 
nằm 
giữa 
điểm 
bắt 
đầu 
và kết thúc của tiến 
trình 
kia 
• 
• 
Tiến 
Tiến 
trình 
trình 
độc lập 
hợp tác 
30 
HỢP T ÁC 
TIẾN 
TRÌNH 
• 
Mục đích 
• 
• 
• 
• 
Chia sẻ thông tin 
Tăng tốc độ tính toán 
Module hoá 
Tiện dụng 
• 
Yêu cầu cơ chế: 
• 
• 
Truyền thông giữa 
các 
tiến trình 
Đồng bộ hoá hoạt động của các tiến trình 
31 
HAI MÔ HÌNH CƠ BẢN CỦA TRUYỀN 
THÔNG LIÊN TIẾN TRÌNH 
• 
Shared Memory 
• 
• 
Một vùng nhớ chung được thiết lập cho các tiến trình hợp tác 
Các tiến trình trao đổi thông tin bằng việc đọc (reading) và ghi 
(writing) dữ liệu vào vùng nhớ chung 
Nhanh 
Khó set up 
Không dùng được trong hệ đa máy tính (multiple computers) 
• 
• 
• 
• 
Message Passing 
• 
Các tiến trình trao đổi thông tin thông qua hình thức truyền 
thông điệp 
Dùng khi chia sẻ lượng thông tin nhỏ, hoặc trên hệ đa MT 
Dễ lập trình hơn Shared Memory 
Chậm vì cần đến lời gọi hệ thống (System calls) 
• 
• 
• 
32 
33 

File đính kèm:

  • pptxbai_giang_he_dieu_hanh_tien_trinh_nguyen_le_minh.pptx