Bài giảng Hệ điều hành - Chương 5: Định thời CPU

§Mục tiêu*

§Hiểu được

§Tại sao cần phải định thời

§Các tiêu chí định thời

§Một số giải thuật định thời

  Ghi chú: những slide có dấu * ở tiêu đề là những slide quan trọng, những slide khác dùng để diễn giải thêm

§Một số khái niệm cơ bản*

§Chu kỳ CPU-I/O

§CPU-bound process có thời gian sử dụng CPU nhiều hơn thời gian sử dụng I/O

§I/O-bound process dùng phần lớn thời gian để đợi I/O

ppt 74 trang thiennv 07/11/2022 2720
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 5: Định thời CPU", để 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:

  • pptbai_giang_he_dieu_hanh_chuong_5_dinh_thoi_cpu.ppt

Nội dung text: Bài giảng Hệ điều hành - Chương 5: Định thời CPU

  1. Tiêu chí định thời (1)* ▪ Độ lợi CPU (CPU utilization) ▪ Khoảng thời gian CPU bận, từ 0% đến 100% ▪ Cần giữ cho CPU càng bận càng tốt ▪ Thời gian chờ (waiting time) ▪ Thời gian chờ trong hàng đợi ready ▪ Các process nên được chia sẻ việc sử dụng CPU một cách công bằng (fair share) KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH ĐỊNH THỜI CPU 11 TRƯỜNG ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH
  2. Tiêu chí định thời (2)* ▪ Thông năng (throughput) ▪ Số lượng process hoàn tất trong một đơn vị thời gian ▪ Thời gian đáp ứng (response time) ▪ Thời gian từ lúc có yêu cầu của người dùng (user request) đến khi có đáp ứng đầu tiên (lưu ý: đáp ứng đầu tiên, chứ không phải output) ▪ Thường là vấn đề với các I/O-bound process KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH ĐỊNH THỜI CPU 12 TRƯỜNG ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH
  3. Tiêu chí định thời (3)* ▪ Thời gian quay vòng (turnaround time) ▪ Thời gian để một process hoàn tất, kể từ lúc vào hệ thống (submission) đến lúc kết thúc (termination) ▪ Là một trị đặc trưng cần quan tâm với các process thuộc dạng CPU-bound ▪ Thời gian quay vòng trung bình (average turnaround time) KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH ĐỊNH THỜI CPU 13 TRƯỜNG ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH
  4. Tiêu chí định thời (4)* ▪ Độ lợi CPU – giữ CPU càng bận càng tốt ▪ Tối đa hóa ▪ Thông năng – số lượng process kết thúc việc thực thi trong một đơn vị thời gian ▪ Tối đa hóa ▪ Turnaround time – thời gian kể từ lúc bắt đầu đưa vào (submission) đến lúc kết thúc ▪ Tối thiểu hóa ▪ Thời gian chờ – thời gian một process chờ trong hàng đợi ready ▪ Tối thiểu hóa ▪ Thời gian đáp ứng – thời gian từ khi đưa yêu cầu đến khi có đáp ứng đầu tiên ▪ Tối thiểu hóa KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH ĐỊNH THỜI CPU 14 TRƯỜNG ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH
  5. Có thể làm được?* ▪ Tất cả các tiêu chí không thể được tối ưu đồng thời vì có một số tiêu chí liên quan nhau KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH ĐỊNH THỜI CPU 15 TRƯỜNG ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH
  6. Tiêu chí định thời từ các góc nhìn* (1) ▪ Hướng đến người sử dụng (user-oriented) ▪ Thời gian quay vòng (turnaround time) • Thời gian từ lúc nạp process đến lúc process kết thúc • Cần quan tâm với các hệ thống xử lý bó (batch system) ▪ Thời gian đáp ứng (response time) • Cần quan tâm với các hệ thống giao tiếp (interactive system) KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH ĐỊNH THỜI CPU 16 TRƯỜNG ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH
  7. Tiêu chí định thời từ các góc nhìn* (2) ▪ Hướng đến hệ thống (system-oriented) ▪ Độ lợi CPU (CPU utilization) ▪ Công bằng (fairness) ▪ Thông năng (throughput): số process hoàn tất trong một đơn vị thời gian KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH ĐỊNH THỜI CPU 17 TRƯỜNG ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH
  8. Hai thành phần của chiến lược định thời* (1) ▪ Hàm lựa chọn (selection function) ▪ Xác định process nào trong ready queue sẽ được thực thi tiếp theo. Thường theo các tiêu chí như • w = tổng thời gian đợi trong hệ thống • e = thời gian đã được phục vụ • s = tổng thời gian thực thi của process (bao gồm cả trị e) KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH ĐỊNH THỜI CPU 18 TRƯỜNG ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH
  9. Hai thành phần của chiến lược định thời* (2) ▪ Chế độ quyết định (decision mode) ▪ Chọn thời điểm hàm lựa chọn định thời thực thi ▪ Nonpreemptive • Một process sẽ ở trạng thái running cho đến khi nó bị block hoặc nó kết thúc ▪ Preemptive • Process đang thực thi có thể bị ngắt và chuyển về trạng thái ready • Tránh trường hợp một process độc chiếm (monopolizing) CPU KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH ĐỊNH THỜI CPU 19 TRƯỜNG ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH
  10. Nonpreemptive và preemptive (1) ▪ Hàm định thời có thể được thực thi khi có quá trình (1) chuyển từ trạng thái running sang waiting (2) chuyển từ trạng thái running sang ready (3) chuyển từ trạng thái waiting, new sang ready (4) kết thúc thực thi ▪ Định thời nonpreemptive: chỉ thực thi hàm định thời trong trường hợp 1 và 4 ▪ Định thời preemptive: ngoài trường hợp 1 và 4 còn thực thi thêm hàm định thời trong trường hợp 2 hoặc 3 (hoặc cả hai) KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH ĐỊNH THỜI CPU 20 TRƯỜNG ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH
  11. Nonpreemptive và preemptive (2) ▪ Hiện thực cơ chế nào khó hơn? Tại sao? ▪ Preemptive scheduling hiện thực khó hơn: cần phải duy trì sự nhất quán của: ▪ Dữ liệu được chia sẻ giữa các process, và quan trọng hơn là ▪ Các dữ liệu trong kernel (ví dụ các hàng đợi I/O) ▪ Ví dụ: trường hợp xảy ra preemption khi kernel đang thực thi một lời gọi hệ thống (do ứng dụng yêu cầu) ▪ Rất nhiều hệ điều hành chờ cho các lời gọi hàm hệ thống kết thúc rồi mới preemption KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH ĐỊNH THỜI CPU 21 TRƯỜNG ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH
  12. Dispatcher* ▪ 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 KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH ĐỊNH THỜI CPU 22 TRƯỜNG ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH
  13. Dispatch latency Conflict phase: xem p. 171 KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH ĐỊNH THỜI CPU 23 TRƯỜNG ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH
  14. First Come First Served (FCFS)* ▪ Hàm lựa chọn: chọn process đợi trong hàng đợi ready lâu nhất ▪ Chế độ quyết định: nonpreemptive ▪ Một process sẽ được thực thi cho đến khi nó bị block hoặc kết thúc ▪ FCFS thường được quản lý bằng một FIFO queue KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH ĐỊNH THỜI CPU 24 TRƯỜNG ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH
  15. First Come First Served (FCFS)* Process Burst time (ms) P1 24 P2 3 P3 3 ▪ Giả sử các process đến theo thứ tự P1 , P2 , P3 ▪ Giản đồ Gantt cho việc định thời là: P1 P2 P3 0 24 27 30 ▪ Thời gian đợi cho P1 = 0, P2 = 24, P3 = 27 ▪ Thời gian đợi trung bình: (0 + 24 + 27)/3 = 17 KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH ĐỊNH THỜI CPU 25 TRƯỜNG ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH
  16. First Come First Served (FCFS)* ▪ Thời gian phục vụ trung bình = ▪ Thông năng = ▪ Thời gian quay vòng = ▪ Kiểm tra lại: Thời gian đợi = (thời gian quay vòng − thời gian phục vụ − dispatch latency) P1 P2 P3 0 24 27 30 KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH ĐỊNH THỜI CPU 26 TRƯỜNG ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH
  17. First Come First Served (FCFS)* ▪ Giả sử các process đến theo thứ tự: P2 , P3 , P1 ▪ Giản đồ Gantt cho việc định thời là: P2 P3 P1 0 3 6 30 ▪ Thời gian đợi cho P1 = 6, P2 = 0, P3 = 3 ▪ Thời gian đợi trung bình là: (6 + 0 + 3)/3 = 3 ▪ Tốt hơn rất nhiều so với trường hợp trước KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH ĐỊNH THỜI CPU 27 TRƯỜNG ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH
  18. First Come First Served (FCFS)* ▪ FCFS không công bằng với các process có CPU burst ngắn. Các process này phải chờ trong thời gian dài (so với thời gian mà nó cần phục vụ) thì mới được sử dụng CPU. Điều này đồng nghĩa với việc FCFS “ưu tiên” các process thuộc dạng CPU bound. ▪ Câu hỏi: Liệu có xảy ra trường hợp trì hoãn vô hạn định (starvation hay indefinite blocking) với giải thuật FCFS? ▪ FCFS thường được sử dụng trong các hệ thống bó (batch system) KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH ĐỊNH THỜI CPU 28 TRƯỜNG ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH
  19. Ví dụ thực tế ▪ Việc phục vụ khách trong nhà hàng ▪ Thực khách sẽ đến và gọi món ăn cho mình ▪ Mỗi món ăn cần thời gian chuẩn bị khác nhau ▪ Mục tiêu: ▪ Giảm thời gian đợi trung bình của các thực khách ▪ Cách làm nào sẽ phù hợp? ▪ Thông thường các nhà hàng sẽ phục vụ theo kiểu FCFS (!) KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH ĐỊNH THỜI CPU 29 TRƯỜNG ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH
  20. Shortest Job First (SJF)* Process Thời điểm đến Burst time (ms) P1 0.0 7 P2 2.0 4 P3 4.0 1 P4 5.0 4 ▪ Giản đồ Gantt khi định thời theo SJF P1 P3 P2 P4 0 3 7 8 12 16 ▪ Thời gian đợi trung bình = (0 + 6 + 3 + 7)/4 = 4 KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH ĐỊNH THỜI CPU 30 TRƯỜNG ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH
  21. Shortest Job First (SJF)* ▪ Thời gian phục vụ trung bình = ▪ Thông năng = ▪ Thời gian quay vòng = ▪ Kiểm tra lại: Thời gian đợi = (thời gian quay vòng − thời gian phục vụ − dispatch latency) P1 P3 P2 P4 0 3 7 8 12 16 KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH ĐỊNH THỜI CPU 31 TRƯỜNG ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH
  22. Shortest Job First (SJF)* ▪ Tương ứng với mỗi process cần có độ dài của CPU burst tiếp theo ▪ Hàm lựa chọn: chọn process có độ dài CPU burst nhỏ nhất ▪ Chứng minh được: SJF tối ưu trong việc giảm thời gian đợi trung bình ▪ Nhược điểm: Cần phải ước lượng thời gian cần CPU tiếp theo của process ▪ Giải pháp cho vấn đề này? KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH ĐỊNH THỜI CPU 32 TRƯỜNG ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH
  23. Dự đ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 j n+1 ▪ τn+1 = a tn + (1- a) a tn-1 + + (1- a) aτn-j + + (1- a) aτ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. KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH ĐỊNH THỜI CPU 33 TRƯỜNG ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH
  24. Dự đoán thời gian sử dụng CPU Độ dài CPU burst đo được Độ dài CPU burst dự đoán, với a = ½ và 0 = 10 KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH ĐỊNH THỜI CPU 34 TRƯỜNG ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH
  25. 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 ▪ Những công việc thuộc loại I/O bound thường có CPU burst ngắn ▪ 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 KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH ĐỊNH THỜI CPU 35 TRƯỜNG ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH
  26. Shortest Job First (SJF)* ▪ Chế độ quyết định: nonpreemptive ▪ Phiên bản preemptive của SJF: ▪ Nếu một process mới đến mà có độ dài CPU burst 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) KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH ĐỊNH THỜI CPU 36 TRƯỜNG ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH
  27. Shortest Remaining Time First (SRTF)* Process Thời điểm đến Burst time (ms) P1 0.0 7 P2 2.0 4 P3 4.0 1 P4 5.0 4 ▪ Giản đồ Gantt khi định thời theo SRTF P1 P2 P3 P2 P4 P1 0 2 4 5 7 11 16 ▪ Thời gian đợi trung bình = (9 + 1 + 0 + 2)/4 = 3 ▪ Tốt hơn giải thuật nonpreemptive SJF KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH ĐỊNH THỜI CPU 37 TRƯỜNG ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH
  28. Shortest Remaining Time First (SRTF)* ▪ Thời gian phục vụ trung bình = ▪ Thông năng = ▪ Thời gian quay vòng = ▪ Kiểm tra lại: Thời gian đợi = (thời gian quay vòng − thời gian phục vụ − dispatch latency) P1 P2 P3 P2 P4 P1 0 2 4 5 7 11 16 KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH ĐỊNH THỜI CPU 38 TRƯỜNG ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH
  29. 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 cao KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH ĐỊNH THỜI CPU 39 TRƯỜNG ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH
  30. 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 KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH ĐỊNH THỜI CPU 40 TRƯỜNG ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH
  31. 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 KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH ĐỊNH THỜI CPU 41 TRƯỜNG ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH
  32. 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 KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH ĐỊNH THỜI CPU 42 TRƯỜNG ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH
  33. Round Robin (RR)* ▪ Hàm lựa chọn: giống FCFS 1 2 8 3 7 4 6 5 KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH ĐỊNH THỜI CPU 43 TRƯỜNG ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH
  34. 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 timer interrupt ▪ Process đang chạy hết thời gian sẽ được chuyển về cuối của hàng đợi ready KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH ĐỊNH THỜI CPU 44 TRƯỜNG ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH
  35. Round Robin (RR)* Process Burst time (ms) P1 53 P2 17 P3 68 P4 24 ▪ Quantum time = 20 ms ▪ Giản đồ Gantt: P1 P2 P3 P4 P1 P3 P4 P1 P3 P3 0 20 37 57 77 97 117 121 134 154 162 ▪ Thường có thời gian quay vòng cao hơn SJF, nhưng lại có thời gian đáp ứng tốt hơn KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH ĐỊNH THỜI CPU 45 TRƯỜNG ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH
  36. Round Robin (RR)* ▪ Thời gian phục vụ trung bình = ▪ Thông năng = ▪ Thời gian quay vòng = ▪ Kiểm tra lại: Thời gian đợi = (thời gian quay vòng − thời gian phục vụ − dispatch latency) P1 P2 P3 P4 P1 P3 P4 P1 P3 P3 0 20 37 57 77 97 117 121 134 154 162 KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH ĐỊNH THỜI CPU 46 TRƯỜNG ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH
  37. Quantum time cho Round Robin KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH ĐỊNH THỜI CPU 47 TRƯỜNG ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH
  38. 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) Số lần ngưng/tiếp tục quá trình KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH ĐỊNH THỜI CPU 48 TRƯỜNG ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH
  39. 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 KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH ĐỊNH THỜI CPU 49 TRƯỜNG ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH
  40. 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 (OS overhead) ▪ 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 (còn gọi là 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 OS overhead) nhưng thời gian đáp ứng lớn ▪ Nếu time slice quá lớn, RR trở thành FCFS. KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH ĐỊNH THỜI CPU 50 TRƯỜNG ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH
  41. Quantum time cho Round Robin ▪ Quantum time và thời gian cho process switch: ▪ Nếu quantum time = 20 ms và thời gian cho process switch = 5 ms, như vậy phí tổn OS overhead chiếm 5/25 = 20% ▪ Nếu quantum = 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 KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH ĐỊNH THỜI CPU 51 TRƯỜNG ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH
  42. Round Robin ▪ Nếu có n process trong hàng đợi ready, và quantum time là q, như 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ả thiế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 KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH ĐỊNH THỜI CPU 52 TRƯỜNG ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH
  43. 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ị blocked để đợi I/O. Và • Một CPU-bound process chạy hết time slice và lại quay trở về hàng đợi ready queue (ở phía trước các process đã bị blocked) KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH ĐỊNH THỜI CPU 53 TRƯỜNG ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH
  44. Multilevel Queue Scheduling* Trường hợp các quá trình có thể được phân thành nhóm (ví dụ: interactive và batch) ▪ 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: dùng RR ▪ background: dùng FCFS KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH ĐỊNH THỜI CPU 54 TRƯỜNG ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH
  45. 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) – ví dụ: phục vụ tất cả các process của 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) KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH ĐỊNH THỜI CPU 55 TRƯỜNG ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH
  46. Multilevel Queue Scheduling* ▪ Ví dụ phân nhóm các quá trình Độ ưu tiên cao nhất System Processes Interactive Processes Batch Processes Student Processes Độ ưu tiên thấp nhất KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH ĐỊNH THỜI CPU 56 TRƯỜNG ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH
  47. Multilevel Feedback Queue* ▪ Process có thể di chuyển giữa các queue tùy theo đặc tính của nó. Ví dụ: ▪ Nếu một process sử dụng CPU quá lâ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 (aging, giúp tránh starvation) KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH ĐỊNH THỜI CPU 57 TRƯỜNG ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH
  48. Multilevel Feedback Queue* ▪ Ví dụ: Có 3 hàng đợi ▪ Q0 , dùng RR với quantum 8 ms ▪ Q1 , dùng RR với quantum 16 ms ▪ Q2 , dùng 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àng đợ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 KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH ĐỊNH THỜI CPU 58 TRƯỜNG ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH