Bài giảng Hệ điều hành - Chương: Quản lý tiến trình

Môn học: Hệ điều hành  
1
• Phân biệt tiến trình và tiểu trình  
• So sánh các thuật toán điều phối tiến trình  
2
3
• Tiến trình là một chương trình đang được thực thi  
• Một tiến trình cần sử dụng các tài nguyên: CPU, bộ nhớ,  
tập tin, thiết bị nhập xuất để hoàn tất công việc của nó  
4
• Tạo tiến trình  
– Khởi động hệ thống  
– Người dùng kích hoạt một chương trình  
– Một tiến trình ạo một tiến trình khác  
• Unix/ Linux: exec(), fork()  
• Windows: CreateProcess()  
– Cây tiến trình  
• Unix/ Linux: các tiến trình cha
con có mối quan hệ chặt chẽ  
• Windows: các tiến trình cha,  
con độc lập với nhau  
5
• Dừng tiến trình  
– Xử lý xong lệnh cuối cùng hay gọi lệnh kết thúc  
• Unix/ Linux: exit()  
• Windows: ExitProcess()  
– Một tiến trình yêu cầu dừng một tiến trình khác  
• Unix/ Linux: kill()  
• Windows: TerminateProcess()  
Điều gì xảy ra nếu tiến trình “nạn nhân” vẫn chưa  
muốn “chết”?  
– Do lỗi chương trình  
6
Nhận CPU  
running  
ready  
Rs  
CPU  
Rs  
CPU  
Trả CPU  
Chờ resource  
blocked  
Nhận  
resource  
Rs  
CPU  
CPU-bound  
process  
IO-bound  
process  
7
Vào  
Thoát  
ready queue  
CPU  
Disk 1  
disk queue  
Disk 2  
Network  
I/O  
network queue  
other I/O queue  
8
pid  
• Định danh (Process ID)  
• Trạng thái tiến trình  
• Ngữ cảnh tiến trình  
– Trạng thái CPU  
State  
(State, details)  
Context  
– Bộ xử lý (cho máy nhiều CPU)  
– Bộ nhớ chính  
– Tài nguyên sử dụng /tạo lập  
(IP, Mem, Files…)  
Relatives  
• Thông tin giao tiếp  
– Tiến trình ch
– Độ ưu tiên  
( Dad, children)  
Scheduling statistic  
• Thông tin thống kê  
Process control Block – PCB  
9
Excel  
Visual C++  
CDplayer  
Winword  
10  
Tiến trình 1  
Tiến trình 2  
Tiến trình 3  
Điều phối  
như thế nào  
???  
PU  
Hệ  
điều  
hành  
11  
• Mục tiêu điều phối  
• Lựa chọn tiến trình  
– Tiêu chuẩn lựa chọn  
– Thời điểm lựa chọn  
• Chuyển đổi giữa các tiến trình  
• Các chiến lược điều phối  
Multiple Queues  
– FCFS  
g  
Lottery Scheduling  
Fair-Share Scheduling  
– Round Rob
– Priority  
– SJF  
12  
• Mục tiêu chung  
– Công bằng sử dụng CPU  
– Cân bằng sử dụng các thành phần của hệ thống  
• Hệ thống theo lô  
– Tối ưu throu
– Giảm thiểu turnaround time: Tquit – T  
arrive  
– Tận dụng CPU  
• Hệ thống tương tác  
– Giảm thiểu thời gian chờ (Tối ưu thời gian hồi đáp): Tin ReadyQueue  
– Cân đối mong muốn của người dùng  
• Hệ thống thời gian thực  
– Thời hạn hoàn thành công việc  
13  
• Tiêu chí lựa chọn  
– Chọn tiến trình vào RQ trước  
– Chọn tiến trình có độ ưu tiên cao hơn  
• Thời điểm lựa chọn  
– Điều phối độing): một khi tiến  
trình đang ở trạng thái Running, nó sẽ tiếp tục sử dụng CPU cho  
đến khi kết thúc hoặc bị block vì I/O hay các dịch vụ của hệ thống  
(độc chiếm CPU)  
• P cur kết thúc  
• P cur : running ->blocked  
– Điều phối không độc quyền (preemptive scheduling): ngoài thời  
điểm lựa chọn như điều phối độc quyền, tiến trình đang sử dụng  
CPU có thể bị ngắt (chuyển sang trạng thái Ready) khi hết thời  
gian qui định hoặc có tiến trình có độ ưu tiên hơn vào  
ReadyQueue  
Q : block•ed / new  
14  
-> ready  
Context switching – Nhiệm vụ của Dispatcher  
15  
• Bản thân HĐH cũng là 1 phần mềm, nghĩa là cũng sử  
dụng CPU để có thể chạy được.  
• Câu hỏi: Khi tiến trình A đang chiếm CPU, làm thế nào  
HĐH có thể thu hồi CPU lại được ? (vì lúc này HĐH không  
giữ CPU)  
– Ép buộc tiến trình thỉnh thoảng trả CPU lại cho HĐH ? Có khả thi ?  
– Máy tính phải có 2 CPU, 1 dành riêng cho HĐH ?  
– HĐH sử dụng ngắt đồng hồ (ngắt điều phối) để kiểm soát hệ  
thống  
• Mỗi khi có ngắt đồng hồ, HĐH kiểm tra xem có cần thu hồi CPU từ 1  
tiến trình nào đó lại hay không ?  
• HĐH chỉ thu hồi CPU khi có ngắt đồng hồ phát sinh.  
• Khoảng thời gian giữa 2 lần ngắt điều phối gọi là chu kỳ đồng hồ (tối  
thiểu là 18.2 lần / giây)  
16  
• FCFS  
• Round Robin  
• Priority  
• SJF  
• Multiple Queues  
• Guaranteed Scheduling  
• Lottery Scheduling  
• Fair-Share Scheduling  
17  
• Tiêu chí lựa chọn tiến trình  
– Thứ tự vào hàng đợi Ready Queue  
• Thời điểm lựa chọn tiến trình  
– Độc quyền  
Ready Queue  
C B A  
CPU  
CPU  
CPU  
Ready Queue  
C B  
Ready Queue  
C
18  
P TarriveRQ  
CPU burst  
P
TT  
WT  
P1  
P2  
24  
0
P1  
0
1
2
24  
3
27-1  
0-2  
24-1  
27-2  
P2  
P3  
3
AvgWT = (23+25)/3 = 16  
P1  
P2 P3  
0
24  
27  
0:24 P1 kết thúc  
0:00 P1 vào RQ  
P1 dùng CPU  
P2 dùng CPU  
0:01 P2 vào RQ  
0:02 P3 vào RQ  
0:27 P2 kết thúc  
P3 dùng CPU  
19  
• Đơn giản, dễ cài đặt  
• Chịu đựng hiện tượng tích lũy thời gian chờ  
– Tiến trình có thời gian xử lý ngắn đợi tiến trình có  
thời gian xử lý dài  
– Ưu tiên tiến trình cpu-bounded  
• Có thể xảy ra tình trạng độc chiếm CPU  
• Không phù hợp với hệ thống tương tác người  
dùng  
20  
Tải về để xem bản đầy đủ
pdf 48 trang yennguyen 18160 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Hệ điều hành - Chương: Quản lý tiến trình", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_he_dieu_hanh_chuong_quan_ly_tien_trinh.pdf