Khái niệm cơ bản Các bộ định thời Preemptivenonpreemptive Dispatcher Mục tiêu điều phối Các giải thuật định thời Multilevel Queue Scheduling Multilevel Feedbach Queue Mục tiêu của đa chương là có nhiều quá trình chạy cùng thời điểm để tối ưu hóa việc sử dụng CPU. Trong hệ thống đơn xử lý, chỉ một quá trình có thể chạy tại một thời điểm; bất cứ quá trình nào khác đều phải chờ cho đến khi CPU rảnh và có thể được định thời lại. Ý tưởng của đa chương là tương đối đơn giản. Một quá trình được thực thi cho đến khi nó phải chờ yêu cầu nhậpxuất hoàn thành. Trong một hệ thống máy tính đơn giản thì CPU sẽ rảnh rỗi; tất cả thời gian chờ này là lãng phí. Với đa chương, chúng ta cố gắng dùng thời gian này để CPU có thể phục vụ cho các quá trình khác. Nhiều quá trình được giữ trong bộ nhớ tại cùng thời điểm. Khi một quá trình phải chờ, hệ điều hành lấy CPU từ quá trình này và cấp CPU tới quá trình khác.
Trang 1TIỂU LUẬN
NHÓM 2
Trang 2ĐỊNH THỜI CPU
Giáo viên hướng dẫn:Nguyễn Xuân Lô
ĐỀ TÀI
Trang 3STT HỌ VÀ TÊN MSSV GHI CHÚ
1 ĐẶNG CÔNG ĐẠI 11009973 Preemptive/nonpreemptive,Dispatcher,Mục
tiêu điều phối
2 TRƯƠNG THI DIỆU 11017203 Khái niệm và các bộ định thời
3 LÊ HUY DỰ Các giải thuật định thời
4 LÊ XUÂN ĐỊNH 11027453 Multilevel Queue Scheduling
5 LƯU ĐỨC CƯỜNG Multilevel Feedbach Queue
6 LÊ MẠNH CƯỜNG
DANH SÁCH NHÓM 2
Trang 4 Khái niệm cơ bản
Các bộ định thời
Preemptive/nonpreemptive
Dispatcher
Mục tiêu điều phối
Các giải thuật định thời
Multilevel Queue Scheduling
Multilevel Feedbach Queue
NỘI DUNG ĐỀ TÀI
Trang 5 Mục tiêu của đa chương là có nhiều quá trình chạy cùng thời điểm để tối ưu hóa việc sử dụng CPU Trong hệ thống đơn xử lý, chỉ một quá trình có thể chạy tại một thời điểm; bất cứ quá trình nào khác đều phải chờ cho đến khi CPU rảnh và có thể được định thời lại.
Ý tưởng của đa chương là tương đối đơn giản Một quá trình được
thực thi cho đến khi nó phải chờ yêu cầu nhập/xuất hoàn thành Trong một hệ thống máy tính đơn giản thì CPU sẽ rảnh rỗi; tất cả thời gian chờ này là lãng phí Với đa chương, chúng ta cố gắng dùng thời gian này để CPU có thể phục vụ cho các quá trình khác Nhiều quá trình được giữ trong bộ nhớ tại cùng thời điểm Khi một quá trình phải chờ,
hệ điều hành lấy CPU từ quá trình này và cấp CPU tới quá trình khác.
I.Khái niệm cơ bản
Trang 6 Định thời biểu là chức năng cơ bản của hệ điều hành Hầu hết tài nguyên máy tính được định thời biểu trước khi dùng Dĩ nhiên, CPU là một trong những tài nguyên máy tính ưu tiên Do đó, định thời biểu là trọng tâm trong việc thiết kế hệ điều hành.
I.Khái niệm cơ bản
Trang 7 Trong hệ thống multi-tasking
-Thực thi nhiều chương trình đồng thời lám tăng hiệu suất hệ thống
-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-> chiến lược định thời CPU
Định thời CPU
-Chọn một process(từ ready queue) thực thi.
-Với một multithreaded kernel,việc định thời CPU là do OS chọn kernel thread được chiếm CPU
I.Khái niệm cơ bản
Trang 8II.Các bộ định thời
Trang 9 Định thời dài hạn(long-term scheduling)
Định thời ngắn hạn(short-term scheduling)
Định thời trung hạn(medium-term scheduling)
Trang 10 Định thời dài hạn(Long-term scheduling)
-Xác định chương trình nào nhận được chấp nhận nạp vào hệ thống để thực thi
-Điều khiển mức độ multiprogramming của hệ thống
-Long- term scheduling thường cố gắng duy trì xen lẫn CPU-bound và I/O-bound process
Định thời trung hạn(Medium-term scheduling)
-Sự chuyển đổi dựa trên sự cần thiết quản lí multiprogramming
-Được thực hiện bởi phần quản lí bộ nhớ và thảo luận ở phần quản lí bộ nhớ
II.Các bộ định thời
Trang 11 Định thời ngắn hạn(Short-term scheduling)
-Mỗi khi CPU rảnh, Os cần xác định process trong ready queue để thực thi kế tiếp (do vậy còn được gọi là định thời CPU
-Short-term scheduling còn có tên gọi khác là dispatcher
Định thời CPU xẩy ra khi 1 process:
1 Chuyển từ trạng thái chạy sang trạng thái chờ (vd: I/O request)
2 Chuyển từ trạng thái chạy sang trạng thái sẵn sàng (vd khi một ngắt xuất hiện clock interrup)
3 Chuyển từ trạng thái đợi sang trạng thái sẵn sàng (Vd: I/O hoàn thành).
4 Kết thúc
II.Các bộ định thời
Trang 12 Thuật toán điều phối cần xem xét và quyết định thời điểm chuyển đổi CPU giữa các tiến trình Hệ điều hành có thể thực hiện cơ
chế điều phối theo nguyên lý độc quyền hoặc không độc quyền.
1 Điều phối độc quyền (Preemptive)
2 Điều phối không độc quyền (Nonpreemptive)
III.Preemptive/nonpreemptive
Trang 13Nguyên lý điều phối độc quyền cho phép một tiến trình
khi nhận được CPU sẽ có quyền độc chiếm CPU đến khi hoàn tất xử lý hoặc tự nguyện giải phóng CPU Khi đó quyết định điều phối CPU sẽ xảy ra trong các tình huống sau:
• Khi tiến trình chuyển từ trạng thái đang xử lý(running) sang trạng thái bị khóa blocked ( ví dụ chờ một thao tác nhập xuất hay chờ một tiến trình con kết thúc…).
• Khi tiến trình kết thúc.
1.Điều phối độc quyền
Trang 14 Các giải thuật độc quyền thường đơn giản và dễ cài đặt Tuy nhiên chúng thường không thích hợp với các hệ
thống tổng quát nhiều người dùng, vì nếu cho phép một tiến trình có quyền xử lý bao lâu tùy ý, có nghĩa là tiến trình này có thể giữ CPU một thời gian không xác định,
có thể ngăn cản những tiến trình còn lại trong hệ thống
có một cơ hội để xử lý.
1.Điều phối độc quyền
Trang 15 Ngược với nguyên lý độc quyền, điều phối theo nguyên
lý không độc quyền cho phép tạm dừng hoạt động của một tiến
trình đang sẵn sàng xử lý Khi một tiến trình nhận được CPU, nó vẫn được sử dụng CPU đến khi hoàn tất hoặc tự nguyện giải
phóng CPU, nhưng một tiến trình khác có độ ưu tiên có thể dành quyền sử dụng CPU của tiến trình ban đầu Như vậy là tiến trình
có thể bị tạm dừng hoạt động bất cứ lúc nào mà không được báo trước, để tiến trình khác xử lý Các quyết định điều phối xảy ra khi :
• Khi tiến trình chuyển từ trạng thái đang xử lý (running) sang trạng thái bị khóa blocked ( ví dụ chờ một thao tác nhập xuất hay chờ một tiến trình con kết thúc…)
2.Điều phối không độc quyền
Trang 16• Khi tiến trình chuyển từ trạng thái đang xử lý
(running) sang trạng thái ready ( ví dụ xảy ra một
ngắt).
• Khi tiến trình chuyển từ trạng thái chờ (blocked) sang trạng thái ready ( ví dụ một thao tác nhập/xuất hoàn tất).
• Khi tiến trình kết thúc.
2.Điều phối không độc quyền
Trang 17 Các thuật toán điều phối theo nguyên tắc không độc
quyền ngăn cản được tình trạng một tiến trình độc chiếm CPU, nhưng việc tạm dừng một tiến trình có thể dẫn đến các mâu thuẫn trong truy xuất, đòi hỏi phải sử dụng một phương pháp đồng bộ hóa thích hợp để giải quyết.
Trong các hệ thống sử dụng nguyên lý điều phối độc
quyền có thể xảy ra tình trạng các tác vụ cần thời gian xử
lý ngắn phải chờ tác vụ xử lý với thời gian rất dài hoàn tất! Nguyên lý điều phối độc quyền thường chỉ thích hợp với các hệ xử lý theo lô.
2.Điều phối không độc quyền
Trang 18 Đối với các hệ thống tương tác(time sharing), các hệ thời gian thực (real time),cần phải sử dụng nguyên lý điều
phối không độc quyền để các tiến trình quan trọng có cơ hội hồi đáp kịp thời Tuy nhiên thực hiện điều phối theo nguyên lý không độc quyền đòi hỏi những cơ chế phức tạp trong việc phân định độ ưu tiên, và phát sinh thêm
chi phí khi chuyển đổi CPU qua lại giữa các tiến trình.
2.Điều phối không độc quyền
Trang 19 Dispatcher sẽ chuyển quyền điều khiển CPU về cho process được chọn bởi bộ định thời ngắn hạn
Bao gồm:
Chuyển ngữ cảnh (sử dụng thông tin ngữ cảnh trong PCB)
Chuyển về user mode
Nhảy đến vị trí thích hợp trong chương trình ứng dụng để khởi động lại chương trình (chính là program counter trong PCB)
Công việc này gây ra phí tổn
Dispatch latency: thời gian mà dispatcher dừng một process và khởi động một process khác
Dispatcher
Trang 21Bộ điều phối không cung cấp cơ chế, mà đưa ra các quyết định Các hệ điều hành xây dựng nhiều chiến lược khác nhau để thực hiện việc điều phối, nhưng tựu chung cần đạt được các mục tiêu sau :
a) Sự công bằng ( Fairness) :
Các tiến trình chia sẻ CPU một cách công bằng, không có tiến trình nào phải chờ đợi vô hạn để được cấp phát CPU
b) Tính hiệu qủa (Efficiency) :
Hệ thống phải tận dụng được CPU 100% thời gian.
Mục tiêu điều phối
Trang 22c) Thời gian đáp ứng hợp lý (Response time) :
Cực tiểu hoá thời gian hồi đáp cho các tương tác của người sử dụng
d) Thời gian lưu lại trong hệ thống ( Turnaround Time) :
Cực tiểu hóa thời gian hoàn tất các tác vụ xử lý theo lô.
e) Thông lượng tối đa (Throughput ) :
Cực đại hóa số công việc được xử lý trong một đơn vị thời gian.
Tuy nhiên thường không thể thỏa mãn tất cả các mục tiêu kể trên vì bản thân chúng có sự mâu thuẫn với nhau mà chỉ có thể dung hòa chúng ở mức độ nào đó.
Mục tiêu điều phối
Trang 23 Để tổ chức điều phối tiến trình hệ điều hành sử dụng hai danh
sách: Danh sách sẵn sàng (Ready list) dùng để chứa các tiến trình
ở trạng thái sẵn sàng Danh sách đợi (Waiting list) dùng để chứa các tiến trình đang đợi để được bổ sung vào danh sách sẵn sàng
Chỉ có những tiến trình trong ready list mới được chọn để cấp
processor Các tiến trình bị chuyển về trạng thái blocked sẽ được
bổ sung vào waiting list Hệ thống chỉ có duy nhất một ready list, nhưng có thể tồn tại nhiều waiting list Thông thường hệ điều hành thiết kế nhiều waitting list, mỗi waitting list dùng để chứa các tiến trình đang đợi được cấp phát một tài nguyên hay một sự kiện riêng biệt nào đó
III.Các giải thuật định thời
Trang 25∗ Trong đó:
1 Tiến trình trong hệ thống được cấp đầy đủ tài nguyên chỉ thiếu processor.
2 Tiến trình được bộ điều phối chọn ra để cấp processor để bắt đầu xử lý.
3 Tiến trình kết thúc xử lý và trả lại processor cho hệ điều hành.
4 Tiến trình hết thời gian được quyền sử dụng processor (time-out), bị bộ điều phối tiến trình thu hồi lại processor
5 Tiến trình bị khóa (blocked) do yêu cầu tài nguyên nhưng chưa được hệ điều hành cấp phát Khi đó tiến trình được đưa vào danh sách các tiến trình đợi tài nguyên (waiting list 1)
III.Các giải thuật định thời
Trang 266 Tiến trình bị khóa (blocked) do đang đợi một sự kiện nào đó xảy
ra Khi đó tiến trình được bộ điều phối đưa vào danh sách các tiến trình đợi tài nguyên (waiting list 2)
phát Khi đó tiến trình được bộ điều phối chuyển sang danh sách các tiến trình ở trạng thái sẵn sang (ready list) để chờ được cấp processor để được hoạt động.
8 Sự kiện mà tiến trình chờ đã xảy ra Khi đó tiến trình được bộ
điều phối chuyển sang danh sách các tiến trình ở trạng thái sẵn sang (ready list) để chờ được cấp processor.
III.Các giải thuật định thời
Trang 27 Nguyên tắc :
• Processor được cấp phát cho tiến trình đầu tiên trong danh sách
sẵn sàng có yêu cầu, là tiến trình được đưa vào hệ thống sớm nhất
• FIFO được sử dụng trong điều phối độc quyền nên khi tiến trình
được cấp processor nó sẽ sở hữu processor cho đến khi kết thúc xử
lý hay phải đợi một thao tác vào/ra hoàn thành, khi đó tiến trình chủ động trả lại processor cho hệ thống
1 First-Come First-Serve (FCFS)
Trang 28 Hàng đợi Ready là hàng đợi kiểu FIFO (tức là process nào yêu cầu CPU trước
sẽ được phục vụ trước)
Giải thuật FCFS là ko được ưu tiên trước (non-preemptive) nghĩa là process sẽ
thưc thi cho đến khi kết thúc or bị blocked do I/O
Thời gian chờ đợi của các process:
P1=0, P2=3, P3=9, P4=13, P5=18.
Thời gian chờ đợi trung bình: ( 0 + 3 + 9 +13 +18)/5 = 8.6
Biểu đồ Gantt (Gantt chart) như sau:
1 First-Come First-Serve (FCFS)
Trang 29Nguyên tắc : Đây là một trường hợp đặc biệt của giải thuật điều phối với
độ ưu tiên Trong giải thuật này, độ ưu tiên p được gán cho mỗi tiến trình
là nghịchđảo của thời gian xử lý t mà tiến trình yêu cầu : p = 1/t Khi
CPU được tự do, nó sẽ được cấp phát cho tiến trình yêu cầu ít thời gian nhất để kết thúc- tiến trình ngắn nhất Giải thuật này cũng có thể độc
quyền hay không độc quyền Sự chọn lựa xảy ra khi có một tiến trình
mới được đưa vào danh sách sẵn sàng trong khi một tiến trình khác đang
xử lý Tiến trình mới có thể sỡ hữu một yêu cầu thời gian sử dụng CPU cho lần tiếp theo (CPU-burst) ngắn hơn thời gian còn lại mà tiến trình hiện hành cần xử lý Giải thuật SJF không độc quyền sẽ dừng hoạt động của tiến trình hiện hành, trong khi giải thuật độc quyền sẽ cho phép tiến trình hiện hành tiếp tục xử lý.
2 Sortest Job First (SJF)
Trang 30 Process nào có độ dài CPU burst kế tiếp nhỏ nhất sẽ
SJF là tối ưu :- cho thời gian chờ đợi trung bình của các process là nhỏ nhất.
2 Sortest Job First (SJF)
Trang 31 I/O-bound process sẽ được ưu tiên hơn so với CPU-bound process
Yêu cầu phải tính được CPU-burst của process
Thời gian chờ đợi của các process : P1=0, P2=3, P3=11, P4=15, P5=9;
Thời gian chờ đợi trung bình =(0 +3 + 11 +15 +9)/5= 7.6
Tốt hơn nhiều so với FCFS
Trang 32 Tương tự như SJF nhưng decision mode là preemptive
Thời gian chờ đợi của các process: P1=0, P2=3, P3=4, P4= 15, P5=8;
Thời gian chờ đợi trung bình = (0 + 3 + 4 + 15 + 8)/5=6.
Tốt hơn so với 2 trường hợp trước.
2 Sortest Job First (SJF)
Trang 33Dự đoán thời gian sử dụng CPU*
(Thời gian sử dụng CPU chính là độ dài của CPU burst)
Trung bình tất cả các CPU burst đo được trong quá khứ
Nhưng thông thường những CPU burst 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 = a tn + (1 - a) τn , 0 ≤ a ≤ 1
• τn+1 = a tn + (1- a) a tn-1 +…+ (1- a)jaτn-j +…+ (1- a)n+1aτ0
• Nếu chọn a = ½ thì có nghĩa là trị đo được tn và trị dự đoán τn được xem
quan trọng như nhau.
Trang 34ĐỊNH THỜI CPU
34
Dự đoán thời gian sử dụng CPU
dài CPU burst
Trang 35 Tương tự như SJF nhưng decision mode là preemptive
Thời gian chờ đợi của các process: P1=0, P2=3, P3=4, P4= 15, P5=8;
Thời gian chờ đợi trung bình = (0 + 3 + 4 + 15 + 8)/5=6.
Tốt hơn so với 2 trường hợp trước.
3.Sortest Remaining Time First(SRTF)
Trang 36Ready list được thiết kết theo dạng danh sách nối vòng Tiến
trình được bộ điều phối chọn để cấp processor cũng là tiến trình ở đầu ready list, nhưng sau một khoảng thời gian nhất định nào đó thì
bộ điều phối lại thu hồi lại processor của tiến trình vừa được cấp
processor và chuyển processor cho tiến trình kế tiếp (bây giờ đã trở thành tiến trình đầu tiên) trong ready list, tiến trình vừa bị thu hồi
processor được đưa vào lại cuối ready list Rõ ràng đây là chiến lược điều phối không độc quyền
IV Round-Robin (RR)
Trang 37Khoảng khoản thời gian mà mỗi tiến trình được sở hữu processor
để hoạt động là bằng nhau, và thường được gọi là Quantum
IV Round-Robin (RR)
Trang 38 Mỗi process sử dụng 1 lượng nhỏ thời gian của CPU( time
quantum- thời gian định lượng q)thường là 10- 100ms Sau đó nó được ưu tiên đưa vào cuối của ready queue
Ready queue được tổ chức dạng FIFO (FCFS)
Nếu process có thời gian sử dụng CPU<q => process sẽ tự nguyện
nhường CPU khi kết thúc Trình lập lịch sẽ chọn process kế tiếp trong ready queue
Nếu process có thời gian sử dụng CPU >q => bộ định thời (timer)
sẽ đếm lùi và gây ngắt Os khi nó = 0 việc chuyển ngữ cảnh được thực hiện và process hiện tại được đưa xuống cuối ready queue để nhường CPU cho process kế tiếp
IV Round-Robin (RR)
Trang 39RR với Time Quantum =1
Thời gian turn-around trung bình cao hơn so với SJF nhưng có thời gian đáp ứng trung
bình tốt hơn.
Ưu tiên CPU-bound process
I/O-bound process thướng sử dụng nhất rất ít thời gian của CPU,sau đó phải,bloked đợi I/O
CPU-bound process tận dụng hết quantum time, sau đó quay về ready queue được xếp
trước process bị bloked
∗
Trang 40Time Quantum và Context Switch
Trang 41Khoa Công Nghệ Thông Tin – Đại Học Công Nghiệp TP Hồ Chí Minh
Quantum và Response Time
Trang 42 Ready queue được chia thành nhiều queue riêng biệt theo 1 số tiêu chuẩn sau:
• Đặc điểm và yêu cầu định thời của process
• Foreground (chứa các interactive process)
• Background (chứa các batch process)
Process được gán cố định vào 1 queue và mỗi queue sử dụng giải thuật riêng
• Forground – RR
• Background – FCFS
Os cần phải định thời giữa các queue
• Lập lịch với mức ưu tiên cố định (fixed priority scheduling): phục vụ từ queue có độ ưu tiên cao đến thấp Vần đề : có thể xẩy ra stavation
• Phân chia thời gian (Time slice): mỗi queue nhận được 1 lượng thời gian CPU nào đó và phân phối cho các process trong khoảng thời gian đó
Vd 80% cho foreground queue và 20% cho background queue.
V.Multilevel Queue Scheduling
lập lịch đa mức hàng đợi