Bài giảng Hệ điều hành - Chương 9: Lập lịch tiến trình

Trong các hệthống multitasking

ƒ Tại một thời điểm trong bộnhớcó nhiều process

ƒ Tại mỗi thời điểm chỉcó một process được thực thi

ƒ Do đó, cần phải giải quyết vấn đềphân chia, lựa chọn

process thực thi sao cho được hiệu quảnhất. Cần có chiến

lược định thời CPU

pdf59 trang | Chuyên mục: Hệ Điều Hành | Chia sẻ: dkS00TYs | Lượt xem: 7531 | Lượt tải: 1download
Tóm tắt nội dung Bài giảng Hệ điều hành - Chương 9: Lập lịch tiến trình, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
ải ước lượng thời gian cần CPU 
tiếp theo của process
28
Dự đoán thời gian sử dụng CPU*
ƒ Trung bình tất cả các kết quả đo được trong quá khứ
ƒ Nhưng thông thường những kết quả càng mới càng phản 
ánh đúng hành vi của process trong tương lai
ƒ Một kỹ thuật thường dùng là sử dụng trung bình hàm mũ
(exponential averaging) 
ƒ τn+1 = α tn + (1-α) τn , 0 < α < 1
ƒ τn+1 = α tn + (1-α) α tn-1 + …+ (1-α)jατn-j +…+ (1-α)n+1ατ0
ƒ Khi chọn α > 1/n có nghĩa là đã gán trọng số của các giá trị
càng mới càng tăng
29
Dự đoán thời gian sử dụng CPU
Thời gian sử dụng CPU thực
Thời gian dự đoán với
α = ½ và τ0 = 10
30
Shortest Job First (SJF)*
ƒ SJF sử dụng ưu tiên ngầm định: công việc ngắn nhất 
được ưu tiên trước
ƒ Thường là những công việc thuộc loại I/O bound
ƒ Process có thời gian thực thi dài có thể bị trì hoãn vô 
hạn định nếu các process có thời gian thực thi ngắn 
liên tục vào
ƒ Không thích hợp cho môi trường time-sharing khi 
không dùng preemption
ƒ Dù các CPU bound process có “độ ưu tiên” thấp
ƒ Nhưng một process không thực hiện I/O có thể độc 
chiếm hệ thống nếu nó là process đầu tiên vào hệ thống
Shortest Job First (SJF)*
Process Thời điểm đếnBurst Time
P1 0.0 7
P2 2.0 4
P3 4.0 1
P4 5.0 4
ƒ SJF tương ứng
ƒ Thời gian đợi trung bình = (0 + 6 + 3 + 7)/4 = 4
P1 P3 P2
73 160
P4
8 12
32
Shortest Job First (SJF)*
ƒ Chế độ quyết định: non-preemptive
ƒ Phiên bản preemptive của SJF:
ƒ Nếu một process mới đến mà có thời gian sử dụng CPU 
(CPU burst length) nhỏ hơn thời gian cần CPU còn lại của 
process đang thực thi, thì thực hiện preempt process đang 
thực thi
ƒ Cách làm này còn được gọi là
Shortest-Remaining-Time-First (SRTF)
33
Shortest Remaining Time First 
(SRTF)*
Process Thời điểm đến Burst Time
P1 0.0 7
P2 2.0 4
P3 4.0 1
P4 5.0 4
ƒ Shortest-Remaining-Time-First (SRTF)
ƒ Thời gian đợi trung bình = (9 + 1 + 0 +2)/4 = 3
ƒ Tốt hơn giải thuật nonpreemptive SJF
P1 P3P2
42 110
P4
5 7
P2 P1
16
34
Shortest Remaining Time First 
(SRTF)*
ƒ Tránh trường hợp các process có thời gian thực thi dài 
độc chiếm CPU
ƒ Cần phải quản lý thời gian thực thi còn lại của các 
process
ƒ Có thời gian quay vòng tốt hơn SJF 
ƒ Process có thời gian thực thi ngắn có độ ưu tiên ngay 
lập tức
35
Priority Scheduling*
ƒ Mỗi process sẽ được gán một độ ưu tiên
ƒ CPU sẽ được cấp cho process có độ ưu tiên cao nhất
ƒ Định thời sử dụng độ ưu tiên có thể:
ƒ Preemptive hoặc
ƒ Nonpreemptive
36
Gán độ ưu tiên*
ƒ SJF là một giải thuật định thời sử dụng độ ưu tiên với 
độ ưu tiên là thời-gian-sử-dụng-CPU-dự-đoán
ƒ Gán độ ưu tiên còn dựa vào:
ƒ Yêu cầu về bộ nhớ
ƒ Số lượng file được mở
ƒ Tỉ lệ thời gian dùng cho I/O trên thời gian sử dụng 
CPU
ƒ Các yêu cầu bên ngoài ví dụ như: số tiền người 
dùng trả khi thực thi công việc
37
Priority Scheduling*
ƒ Vấn đề ≡ Trì hoãn vô hạn định – process có độ ưu tiên 
thấp có thể không bao giờ được thực thi
ƒ Giải pháp ≡ Aging – độ ưu tiên của process sẽ tăng 
theo thời gian
38
Round Robin (RR)*
ƒ Hàm lựa chọn: giống FCFS
21
3
4
56
7
8
39
Round Robin (RR)*
ƒ Chế độ quyết định: preemptive
ƒ Khoảng thời gian tối đa cho phép (thường 10 - 100 ms) được 
đảm bảo bằng việc sử dụng interrupt
ƒ Process đang chạy hết thời gian sẽ được chuyển về cuối của 
hàng đợi ready
40
Round Robin (RR)*
Process Burst Time
P1 53
P2 17
P3 68
P4 24
ƒ Quantum time = 20
ƒ Giản đồ Gantt: 
ƒ Thường có thời gian quay vòng cao hơn SJF, nhưng lại có đáp 
ứng tốt hơn
P1 P2 P3 P4 P1 P3 P4 P1 P3 P3
0 20 37 57 77 97 117 121 134 154 162
41
Quantum time và chuyển ngữ
cảnh
ƒ Quantum time càng nhỏ thì càng có nhiều lần chuyển 
ngữ cảnh (context switch)
42
Thời gian quay vòng và quantum 
time
ƒ Thời gian quay vòng trung bình (average turnaround 
time) không chắc sẽ được cải thiện khi quantum lớn
43
Quantum time cho Round Robin*
ƒ Khi thực hiện process switch thì OS sẽ sử dụng CPU chứ không 
phải process của người dùng
ƒ Dừng thực thi, lưu tất cả thông tin, nạp thông tin của process sắp thực thi
ƒ Performance tùy thuộc vào kích thước của quantum time (hay 
time slice), và hàm phụ thuộc này không đơn giản
ƒ Time slice ngắn thì đáp ứng nhanh
ƒ Vấn đề: có nhiều chuyển ngữ cảnh. Phí tổn sẽ cao.
ƒ Time slice dài hơn thì throughput tốt hơn (do giảm phí tổn) 
nhưng thời gian đáp ứng lớn
ƒ Nếu time slice quá lớn trở thành FCFS.
44
Quantum time cho Round Robin
ƒ Quantum time và thời gian cho process switch:
ƒ Nếu quantum time (hay time slice) = 20 ms và thời gian cho 
process switch = 5 ms, như vậy phí tổn là 5/25 = 20%
ƒ Nếu time slice = 500 ms, thì phí tổn chỉ còn 1%
• Nhưng nếu có nhiều người sử dụng trên hệ thống và thuộc loại 
interactive thì sẽ thấy đáp ứng rất chậm
ƒ Tùy thuộc vào tập công việc mà lựa chọn quantum time
ƒ Time slice nên lớn trong tương quan so sánh với thời gian 
cho process switch
ƒ Ví dụ với 4.3 BSD UNIX time slice là 1 giây
45
Round Robin
ƒ Nếu có n process trong hàng đợi ready, và quantum 
time là q, nhu vậy mỗi process sẽ lấy 1/n thời gian 
CPU theo từng khối có kích thước lớn nhất là q
ƒ Sẽ không có process nào chờ lâu hơn (n-1)q đơn vị thời gian
ƒ RR sử dụng một giả thuyết ngầm là tất cả các process 
đều có tầm quan trọng ngang nhau
ƒ Không thể sử dụng RR nếu muốn các process khác nhau có 
độ ưu tiên khác nhau
46
Round Robin: nhược điểm
ƒ Các process dạng CPU-bound vẫn còn được “ưu tiên”
ƒ Ví dụ: 
• Một I/O-bound process sử dụng CPU trong thời gian ngắn hơn 
quantum time và bị block để đợi I/O. Và
• Một CPU-bound process chạy hết time slice và lại quay trở về
hàn đợi ready queue (ở phía trước các process đã bị blocked)
47
Highest Response Ratio Next
(HRRN)
ƒ Max RR (Response Ratio)
ƒ Ưu tiên short job Process Arrival Time Service Time
1 0 3
2 2 6
3 4 4
4 6 5
5 8 2
 timeservice expected
 timeservice expected ingspent wait time +=RR
-48-
HRRN (Highest Response Ration Next)
ƒ Caûi tieán giaûi thuaät SJF
ƒ Ñònh thôøi theo kieåu non-preemptive
ƒ Ñoä öu tieân cuûa quaù trình ñöôïc tính theo coâng 
thöùc:
p = (tw + ts)/ts
tw waiting time 
ts service time
ƒ Quaù trình coù ñoä öu tieân lôùn nhaát ñöôïc phuïc vuï
ƒ Ñoä öu tieân ñoäng, tính laïi khi coù quaâ trình keát thuùc
-49-
ƒ Khi P1 keát thuùc, heä
thoáng ñònh thôøi laïi.
ƒ Ñoä öu tieân
P2: (6+4)/4=2.5
P3: (2+2)/2=2
P2 ñöôïc öu tieân
ƒ Thöù töï ñònh thôøi: 
P1ÆP2ÆP3
ƒ Nhaän xeùt
Quaù
trình
Thôøi gian 
ñeán
Thôøi gian thöïc thi 
(CPU burst time) (giaây)
P1 0 7
P2 1 4
P3 5 2
P1 P2 P3
0 7 1
1
1
3
P1 P2 P3
Ñònh thôøi laïi
50
Highest Response Ratio Next
(HRRN)
 timeservice expected
 timeservice expected ingspent wait time +=RR
0 5 10 15 20
P1
P2
P3
P4
P5
51
Multilevel Queue Scheduling*
ƒ Hàng đợi ready sẽ được chia thành nhiều hàng đợi 
riêng rẽ. Ví dụ:
ƒ foreground (cho công việc cần giao tiếp - interactive)
ƒ background (cho công việc dạng bó - batch)
ƒ Mỗi hàng đợi sẽ có giải thuật định thời riêng. Ví dụ:
ƒ foreground – RR
ƒ background – FCFS
52
Multilevel Queue Scheduling*
ƒ Định thời cần phải thực hiện giữa các hàng đợi với 
nhau
ƒ Theo cách cố định (fixed priority scheduling) – phục vụ tất 
cả các process từ foreground rồi mới đến background
• Có khả năng xảy ra trì hoãn vô hạn định (starvation)
ƒ Chia thời gian (time slice) – mỗi hàng đợi sẽ được lấy một 
khoảng sử dụng CPU nhất định để định thời cho các process 
của mình. Ví dụ:
• 80% cho foreground dùng RR
• 20% cho background dùng FCFS 
53
Multilevel Queue Scheduling*
ƒ Ví dụ
System Processes
Interactive Processes
Batch Processes
Student Processes
Độ ưu tiên thấp nhất
Độ ưu tiên cao nhất
54
Multilevel Feedback Queue*
ƒ Một process có thể di chuyển giữa các queue dựa trên 
đặc tính của process (kỹ thuật aging có thể được hiện 
thực theo cách này)
ƒ Nếu một process sử dụng CPU trong thời gian quá nhiều, nó
sẽ bị di chuyển sang một hàng đợi có độ ưu tiên thấp hơn
ƒ Nếu một process chờ qua lâu trong một hàng đợi có độ ưu 
tiên thấp, nó sẽ được di chuyển lên hàng đợi có độ ưu tiên 
cao hơn
55
Multilevel Feedback Queue*
ƒ Ví dụ: Có 3 hàng đợi:
ƒ Q0 – RR với time quantum 8
ƒ Q1 – RR vơis time quantum 16
ƒ Q2 – FCFS
ƒ Giải thuật
ƒ Công việc mới sẽ vào hàng đợi 
Q0. Khi đến lượt mình, công việc 
sẽ được một khoảng thời gian là 8 
milli giây. Nếu không kết thúc 
được trong 8 milli giây, công việc 
sẽ được đưa xuống hàn đợi Q1
ƒ Tại Q1, tương tự công việc sau khi 
chờ sẽ được cho một khoảng thời 
gian thực thi là 16 milli giây. Nếu 
hết thời gian này vẫn chưa kết 
thúc sẽ bị chuyển sang Q2
56
Multilevel Feedback Queue
ƒ Multilevel Feedback Queue được xác định bởi các 
thông số
ƒ Có bao nhiêu hàng đợi?
ƒ Với mỗi queue sử dụng giải thuật định thời nào?
ƒ Xác định thời điểm thăng cấp cho một process?
ƒ Làm sao để xác định thời điểm giáng cấp một process?
ƒ Xác định được hàng đợi nào process sẽ vào khi process đó
cần thực thi?
57
Policy và Mechanism
ƒ Rất quan trọng trong định thời và phân phối tài nguyên
ƒ Policy
ƒ Điều gì nên (cần) làm
ƒ Mechanism
ƒ Làm sao để làm điều đó
ƒ Ví dụ
ƒ Policy: tất cả người dùng cần được công bằng
ƒ Mechanism: sử dụng round robin
ƒ Policy: công việc được trả tiền cao có độ ưu tiên cao
ƒ Mechanism: sử dụng các giải thuật có preemptive
58
Định thời trên hệ thống 
multiprocessor
ƒ Nếu có nhiều CPU thì có thể thực hiện việc chia tải
ƒ Phức tạp hơn so với định thời trên một processor
ƒ Làm sao để chia tải?
ƒ Asymmetric multiprocessor
• Một master processor sẽ thực hiện định thời cho tất cả các 
processor còn lại
ƒ Symmetric multiprocessor (SMP) 
• Một processor sẽ có bộ định thời riêng
• Sẽ có một hàng đợi ready chung cho tất cả processors, và có
một hoặc nhiều hành đợi ready riêng cho mỗi procesor
• Được hỗ trợ trên Win XP, Linux, Solaris, Mac OS X
Bài tập
Process Burst Time
P1 10
P2 29
P3 3
P4 7
P5 12
ƒ Tất cả đều đến ở thời điểm 0
ƒ Xét các giải thuật FCFS, SFJ, và RR với quantum time = 10

File đính kèm:

  • pdfBài giảng Hệ điều hành - Chương 9 Lập lịch tiến trình.pdf