Bài giảng Kỹ thuật Máy tính - Chương 6: Định thời CPU (Scheduling) - Nguyễn Thanh Sơn

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 
Trong các hệ thống multitasking (Đa
nhiệm)
 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 loại và
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 
pdf 70 trang xuanthi 30/12/2022 800
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Kỹ thuật Máy tính - Chương 6: Định thời CPU (Scheduling) - Nguyễn Thanh Sơn", để 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_ky_thuat_may_tinh_chuong_6_dinh_thoi_cpu_schedulin.pdf

Nội dung text: Bài giảng Kỹ thuật Máy tính - Chương 6: Định thời CPU (Scheduling) - Nguyễn Thanh Sơn

  1. 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 dùng để diễn giải thêm BK TP.HCM 18-Jan-16 Khoa Khoa học & Kỹ thuật Máy tính 2
  2. Vấn đề cần giải quyết  Trong các hệ thống multitasking (Đa nhiệm)  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 loại và 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 BK TP.HCM 18-Jan-16 Khoa Khoa học & Kỹ thuật Máy tính 4
  3. Phân loại định thời (tt.)  Định thời dài hạn (long-term scheduling): xác định process nào được chấp nhận vào hệ thống.  Định thời trung hạn (medium-term scheduling): xác định process nào được đưa vào (swap in), đưa ra khỏi (swap out) bộ nhớ chính.  Swap in/out có thể tốn đến vài giây thời gian chu kỳ định thời trung hạn có thể là vài phút.  Định thời ngắn hạn (short-term scheduling): xác định process nào được thực thi tiếp theo. BK TP.HCM 18-Jan-16 Khoa Khoa học & Kỹ thuật Máy tính 6
  4. Định thời trung hạn  Quyết định việc đưa process vào bộ nhớ chính, hay ra khỏi bộ nhớ chính  Phụ thuộc vào yêu cầu quản lý việc đa-lập-trình (multiprogramming)  Cho phép bộ định thời dài hạn chấp nhận nhiều process hơn số lượng process mà có tổng kích thước được chứa vừa trong bộ nhớ chính  Nhưng nếu có quá nhiều process thì sẽ làm tăng việc truy xuất đĩa, do đó cần phải lựa chọn độ-đa-lập- trình cho phù hợp  Được thực hiện bởi phần mềm quản lý bộ nhớ BK TP.HCM 18-Jan-16 Khoa Khoa học & Kỹ thuật Máy tính 8
  5. Nội dung cần quan tâm  Định thời trên hệ thống có một processor (uniprocessor scheduling): quyết định việc sử dụng (một) CPU cho một tập các process trong hệ thống  Tiêu chí nào? BK TP.HCM 18-Jan-16 Khoa Khoa học & Kỹ thuật Máy tính 10
  6. Tiêu chí định thời (tt.)  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 BK TP.HCM 18-Jan-16 Khoa Khoa học & Kỹ thuật Máy tính 12
  7. Tiêu chí định thời (tt.)  Độ lợi CPU – giữ CPU càng bận càng tốt (Cao nhất)  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 (Nhiều nhất)  Turnaround time – thời gian kể từ lúc đưa vào (submission) đến lúc kết thúc (Ngắn nhất)  Thời gian chờ – thời gian một process chờ trong hàng đợi ready (Ngắn nhất)  Thời gian đáp ứng – thời gian từ khi đưa yêu cầu đến khi có đáp ứng đầu tiên (Nhanh nhất) BK TP.HCM 18-Jan-16 Khoa Khoa học & Kỹ thuật Máy tính 14
  8. Tiêu chí định thời từ các góc nhìn  Hướng đến người sử dụng (user-oriented)  Thời gian quay vòng  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  Cần quan tâm với các hệ thống giao tiếp (interactive system) BK TP.HCM 18-Jan-16 Khoa Khoa học & Kỹ thuật Máy tính 16
  9. Hai thành phần của chiến lược định thời  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) BK TP.HCM 18-Jan-16 Khoa Khoa học & Kỹ thuật Máy tính 18
  10. Nonpreemption và preemption  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) BK TP.HCM 18-Jan-16 Khoa Khoa học & Kỹ thuật Máy tính 20
  11. Dispatcher (Bộ điều phối)  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 (chính là program counter trong PCB) trong chương trình ứng dụng để quá trình tiếp tục thực thi  Công việc này gây ra phí tổn  Dispatch latency: thời gian dispatcher cần từ lúc dừng một process đến lúc một process khác tiếp tục chạy BK TP.HCM 18-Jan-16 Khoa Khoa học & Kỹ thuật Máy tính 22
  12. First Come First Served (FCFS) (tt.)  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ó block hoặc kết thúc  FCFS thường được quản lý bằng một FIFO queue BK TP.HCM 18-Jan-16 Khoa Khoa học & Kỹ thuật Máy tính 24
  13. First Come First Served (FCFS) (tt.) phục vụ (khong duoc dinh nghia)  Thời gian 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 khong biet) P1 P2 P3 0 24 27 30 BK TP.HCM 18-Jan-16 Khoa Khoa học & Kỹ thuật Máy tính 26
  14. First Come First Served (FCFS) (tt.)  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) BK TP.HCM 18-Jan-16 Khoa Khoa học & Kỹ thuật Máy tính 28
  15. Shortest Job First (SJF) (tt.) 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 BK TP.HCM 18-Jan-16 Khoa Khoa học & Kỹ thuật Máy tính 30
  16. Shortest Job First (SJF) (tt.)  Đối với mỗi process, cần biết độ 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  Vấn đề: 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? BK TP.HCM 18-Jan-16 Khoa Khoa học & Kỹ thuật Máy tính 32
  17. Dự đoán thời gian sử dụng CPU (tt.) Độ dài CPU burst đo được Độ dài CPU burst dự đoán, với a = ½ và 0 = 10 BK TP.HCM 18-Jan-16 Khoa Khoa học & Kỹ thuật Máy tính 34
  18. Shortest Remaining Time First (SRTF)  Chế độ quyết định của SJF: 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) BK TP.HCM 18-Jan-16 Khoa Khoa học & Kỹ thuật Máy tính 36
  19. Shortest Remaining Time First (tt.)  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 BK TP.HCM 18-Jan-16 Khoa Khoa học & Kỹ thuật Máy tính 38
  20. 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ể là  Preemptive hoặc  Nonpreemptive BK TP.HCM 18-Jan-16 Khoa Khoa học & Kỹ thuật Máy tính 40
  21. 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 BK TP.HCM 18-Jan-16 Khoa Khoa học & Kỹ thuật Máy tính 42
  22. Round Robin (tt.)  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 khi hết thời gian sẽ được chuyển về cuối của hàng đợi ready BK TP.HCM 18-Jan-16 Khoa Khoa học & Kỹ thuật Máy tính 44
  23. Round Robin (tt.)  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 BK TP.HCM 18-Jan-16 Khoa Khoa học & Kỹ thuật Máy tính 46
  24. Quantum time và thời gian quay vòng  Thời gian quay vòng trung bình không chắc sẽ được cải thiện khi quantum lớn BK TP.HCM 18-Jan-16 Khoa Khoa học & Kỹ thuật Máy tính 48
  25. 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 BK TP.HCM 18-Jan-16 Khoa Khoa học & Kỹ thuật Máy tính 50
  26. 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à liên tục quay trở về hàng đợi ready queue, thường ở trước các I/O bound process đã bị blocked. BK TP.HCM 18-Jan-16 Khoa Khoa học & Kỹ thuật Máy tính 52
  27. Multilevel Queue Scheduling (tt.)  Đị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) BK TP.HCM 18-Jan-16 Khoa Khoa học & Kỹ thuật Máy tính 54
  28. Multilevel Feedback Queue  Trong hệ thống Multilevel Feedback Queue, bộ định thời có thể di chuyển process 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 BK lên hàng đợi có độ ưu tiên cao hơn (aging, TP.HCM 18giúp-Jan-16 tránh starvation)Khoa Khoa học & Kỹ thuật Máy tính 56
  29. Multilevel Feedback Queue (tt.)  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? BK TP.HCM 18-Jan-16 Khoa Khoa học & Kỹ thuật Máy tính 58
  30. Đị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)  Hoặc mỗi processor có một hàng đợi ready riêng và bộ định thời riêng  Hoặc có một hàng đợi ready chung cho tất cả processors  Một processor được chọn làm scheduler cho các processor khác  Hoặc mỗi processor có bộ định thời riêng và tự chọn process từ hàng đợi chung để thực thi BK TP.HCM 18-Jan-16 Khoa Khoa học & Kỹ thuật Máy tính 60
  31. Cân bằng tải *  Một processor có quá nhiều tải, trong khi những bộ xử lý khác thì lại rảnh  Cân bằng tải sử dụng:  Push migration: một task đặc biệt sẽ định kỳ kiểm tra tải trên tất cả các processors và công việc sẽ được đẩy đến processor rảnh  Pull migration: processor rảnh sẽ lấy công việc từ processor đang bận  Một số hệ thống (ví dụ Linux) hiện thực cả hai  Cần phải có sự cân bằng giữa load balancing và processor affinity BK TP.HCM 18-Jan-16 Khoa Khoa học & Kỹ thuật Máy tính 62
  32. Tổng kết  Sự thực thi của một process  Bộ định thời chọn một process từ hàng đợi ready  Dispatcher thực hiện switching  Các tiêu chí định thời (thường xung đột nhau)  Độ lợi CPU, thời gian chờ, thời gian đáp ứng, thông năng,  Các giải thuật định thời  FCFS, SJF, Priority, RR, Multilevel Feedback Queue,  Định thời trên hệ thống multiprocessor (đọc thêm)  Processor affinity và cân bằng tải  Phương pháp đánh giá giải thuật định thời CPU (đọc thêm)  Mô hình, mô phỏng, hiện thực BK TP.HCM 18-Jan-16 Khoa Khoa học & Kỹ thuật Máy tính 64
  33. Bài tập 1 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  Giải thuật nào cho  thời gian đợi trung bình nhỏ nhất?  thông năng cao nhất?  thời gian quay vòng trung bình của process nhỏ nhất? BK TP.HCM 18-Jan-16 Khoa Khoa học & Kỹ thuật Máy tính 66
  34. Bài tập 3  SJF (nonpreemptive): thời gian đợi trung bình là 13 milli giây, hãy tính các thông số khác BK TP.HCM 18-Jan-16 Khoa Khoa học & Kỹ thuật Máy tính 68
  35. BK TP.HCM 18-Jan-16 Khoa Khoa học & Kỹ thuật Máy tính 70