Bài giảng Hệ điều hành - Chương 2: CPU Sheduling - Lương Minh Huấn

pdf 59 trang Gia Huy 16/05/2022 5390
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 2: CPU Sheduling - Lương Minh Huấn", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_he_dieu_hanh_chuong_2_cpu_sheduling_luong_minh_hua.pdf

Nội dung text: Bài giảng Hệ điều hành - Chương 2: CPU Sheduling - Lương Minh Huấn

  1. TRƯỜNG ĐẠI HỌC SÀI GÒN CHƯƠNG 2: CPU SHEDULING GV: LƯƠNG MINH HUẤN
  2. NỘI DUNG I. Các khái niệm cơ bản II. Tiêu chuẩn điều phối III. Các thuật toán điều phối CPU IV.Điều phối đa xử lý
  3. I. CÁC KHÁI NIỆM CƠ BẢN ➢Hệ thống có một processor => Chỉ có một tiến trình được thực hiện tại một thời điểm. ➢Tiến trình được thực hiện (chiếm dụng VXL) cho tới khi phải chờ đợi một thao tác vào ra. ▪ Hệ đơn chương: CPU không được sử dụng => lãng phí. ▪ Hệ đa chương: cố gắng sử dụng CPU (đang rảnh rỗi ) cho các tiến trình khác (đang chờ đợi). • Cần nhiều tiến trình sẵn sàng trong bộ nhớ tại một thời điểm. • Khi một tiến trình phải chờ, hệ điều hành lấy lại processor để phân cho tiến trình khác.
  4. I. CÁC KHÁI NIỆM CƠ BẢN ➢Điều phối processor quan trọng với hệ điều hành đa nhiệm. ▪ Luân chuyển CPU giữa các tiến trình => khai thác hệ thống hiệu quả hơn. ➢Điều phối processor là nền tảng trong thiết kế hệ điều hành.
  5. I. CÁC KHÁI NIỆM CƠ BẢN ➢Chu kỳ CPU-I/O ▪ CPU burst ▪ I/O burst ➢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
  6. BỘ ĐIỀU PHỐI CPU ➢Lựa chọn một trong số các tiến trình đang sẵn sàng trong bộ nhớ và cung cấp CPU cho nó. ➢Quyết định điều phối CPU xảy ra khi tiến trình: ▪ Chuyển từ trạng thái thực hiện sang trạng thái chờ đợi (yêu cầu vào/ra). (Điều phối không trưng dụng - non-preemptive) ▪ Chuyển từ trạng thái thực hiện sang trạng thái sẵn sàng (hết thời gian sử dụng CPU => ngắt thời gian). (Điều phối trưng dụng – preemptive) ▪ Chuyển từ trạng thái chờ đợi sang trạng thái sẵn sàng (hoàn thành vào/ra). (Điều phối trưng dụng – preemptive) ▪ Tiến trình kết thúc. (Điều phối không trưng dụng - non-preemptive)
  7. BỘ ĐIỀU PHỐI CPU ➢Điều phối không trưng dụng ▪ Tiến trình chiếm CPU cho tới khi giải phóng bởi: • Kết thúc nhiệm vụ • Chuyển sang trạng thái chờ đợi ▪ Không đòi hỏi phần cứng đặc biệt (đồng hồ ) ▪ Ví dụ: DOS, Win 3.1, Macintosh
  8. BỘ ĐIỀU PHỐI CPU ➢Điều phối trưng dụng ▪ Tiến trình chỉ được phép thực hiện trong khoảng thời gian ▪ Kết thúc khoảng thời gian được định nghĩa trước, ngắt thời gian xuất hiện, bộ điều vận (dispatcher ) được kích hoạt để quyết định hồi phục lại tiến trình hay lựa chọn tiến trình khác ▪ Bảo vệ CPU khỏi các tiến trình “đói-CPU" ▪ Vấn đề dữ liệu dùng chung: • Tiến trình 1 đang cập nhật DL thì bị mất CPU • Tiến trình 2, được giao CPU và đọc DL đang cập nhật ▪ Ví dụ: Hệ điều hành đa nhiệm WinNT, UNIX
  9. PHÂN LOẠI CÁC HOẠT ĐỘNG ĐIỀU PHỐI
  10. PHÂN LOẠI CÁC HOẠT ĐỘNG ĐIỀU PHỐI ➢Điều phối dài hạn(long-term scheduling): xác định process mới (new) nào được tiếp tục vào “sâu hơn” trong hệ thống. ▪ Thường chỉ có trong batch system ➢Điều phố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ỳ ĐIỀU PHỐI trung hạn có thể là vài phút. ➢Điều phối ngắn hạn(short-term scheduling): xác định process nào được thực thi tiếp theo.
  11. ĐIỀU PHỐI DÀI HẠN ➢Ảnh hưởng đến độ đa lập trình (degree of multiprogramming: số quá trình đang ở trong bộ nhớ) ➢Nếu càng nhiều process đang ở trong bộ nhớ thì khả năng mọi process bị block có xu hướng giảm ▪ Sử dụng CPU hiệu quả hơn ▪ Nhưng mỗi process được phân chia khoảng thời gian sử dụng CPU nhỏ hơn ➢Thường có xu hướng đưa vào một tập lẫn lộn các CPU-bound process và I/O-bound process
  12. ĐIỀU PHỐI TRUNG HẠN ➢Quyết định việc đưa process (không phải process ở trạng thái new) 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ộ điều phối dài hạn chấp nhận (admit) 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 (kỹ thuật bộ nhớ ảo) ▪ 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ớ
  13. ĐIỀU PHỐI NGẮN HẠN ➢Xác định process nào được thực thi tiếp theo, còn gọi là điều phối CPU ➢Tùy hệ thống (điều phối nonpreemptive, preemptive) mà được kích hoạt khi có một sự kiện dẫn đến khả năng chọn một process để thực thi ▪ Ngắt thời gian (clock interrupt) ▪ Ngắt ngoại vi (I/O interrupt) ▪ Lời gọi hệ thống (operating system call) ▪ Signa
  14. II. TIÊU CHUẨN ĐIỀU PHỐI ➢Sử dụng CPU (Lớn nhất) ▪ Mục đích là làm CPU hoạt động nhiều nhất có thể ▪ Sử dụng CPU thay đổi từ 40% (hệ thống tải nhẹ) đến 90% (hệ thống tải nặng). ➢Thông lượng (throughput) (Lớn nhất) ▪ Số lượng tiến trình hoàn thành trong một đơn vị thời gian • Các tiến trình dài: 1 tiến trình/giờ • Các tiến trình ngắn: 10 tiến trình/giây
  15. II. TIÊU CHUẨN ĐIỀU PHỐI ➢Thời gian hoàn thành (Nhỏ nhất) ▪ Khoảng thời gian từ thời điểm gửi đến hệ thống tới khi quá trình hoàn thành • Thời gian chờ đợi để đưa tiến trình vào bộ nhớ • Thời gian chờ đợi trong hàng đợi sẵn sàng • Thời gian chờ đợi trong hàng đợi thiết bị • Thời gian thực hiện thực tế
  16. II. TIÊU CHUẨN ĐIỀU PHỐI ➢Thời gian chờ đợi (Nhỏ nhất) ▪ Tổng thời gian chờ trong hàng đợi sẵn sàng (Giải thuật điều phối CPU không ảnh hưởng tới các tiến trình đang thực hiện hay đang đợi thiết bị vào ra) ➢Thời gian đáp ứng (Nhỏ nhất) ▪ Từ lúc gửi câu hỏi cho tới khi câu trả lời đầu tiên được tạo ra • Tiến trình có thể tạo kết quả ra từng phần • Tiến trình vẫn tiếp tục tính toán kết qủa mới trong khi kết quả cũ được gửi tới người dung.
  17. II. TIÊU CHUẨN ĐIỀU PHỐI ➢Các giải thuật lập lịch sẽ được đánh giá qua 5 tiêu chuẩn này. ➢Các giải thuật gồm: ▪ First Come, First Served (FCFS) scheduling ▪ Shortest-Job-First scheduling ▪ Priority Scheduling ▪ Round-robin scheduling ▪ Etc.,
  18. TIÊU CHUẨN điều phối TỪ CÁC GÓC NHÌN ➢Hướng đến người sử dụng (user-oriented) ▪ Thời gian hoàn thành • Thời gian từ lúc submission đế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)
  19. TIÊU CHUẨN điều phối TỪ CÁC GÓC NHÌN ➢Hướng đến hệ thống (system-oriented) ▪ Sử dụng CPU ▪ Công bằng (fairness) ▪ Thông lượng: số process hoàn tất trong một đơn vị thời gian
  20. HAI THÀNH PHẦN CỦA CHIẾN LƯỢC ĐIỀU PHỐ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 chuẩn 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)
  21. HAI THÀNH PHẦN CỦA CHIẾN LƯỢC ĐIỀU PHỐI ➢Chế độ quyết định(decision mode) ▪ Định nghĩa thời điểm hàm lựa chọn được 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 CPU
  22. III. CÁC THUẬT TOÁN ĐIỀU PHỐI CPU ➢Đến trước phục vụ trước (FCFS: First Come, First Served). ▪ Nguyên tắc: • Tiến trình được quyền sử dụng CPU theo trình tự xuất hiện • Tiến trình sở hữu CPU tới khi kết thúc hoặc chờ đợi vào ra ▪ Đặc điểm: • Đơn giản, dễ thực hiện. • Tiến trình ngắn phải chờ đợi như tiến trình dài
  23. FCFS ➢Hàm lựa chọn: chọn process ở 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 hiện thực bằng một FIFO queue
  24. FCFS ➢Ví dụ: ➢Giả sử các process đến theo thứ tự P1, P2, P3 ➢Giản đồ Gantt cho việc điều phối là: ➢Thời gian đợi cho P1= 0, P2= 24, P3= 27 ➢Thời gian đợi trung bình: (0 + 24 + 27) / 3 = 17
  25. FCFS ➢Giả sử các process đến theo thứ tự: P2, P3, P1 ➢Giản đồ Gantt cho việc điều phối là: ➢Thời gian đợi của P1=6,P2= 0,P3= 3 ➢Thời gian đợi trung bình: (6 + 0 + 3) / 3 = 3 ▪ Tốt hơn rất nhiều so với trường hợp trước
  26. FCFS ➢FCFS “không công bằng” với process có CPU burst ngắn vì nó 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. ➢FCFS thường được sử dụng trong các hệ thống bó (batch system)
  27. III. CÁC THUẬT TOÁN ĐIỀU PHỐI CPU ➢Công việc ngắn trước (SJF – Shortest Job First) ▪ Nguyên tắc: • Mỗi tiến trình lưu trữ thời gian của chu kỳ sủ dụng CPU tiếp theo • Tiến trình có thời gian sử dụng CPU ngắn nhất sẽ sở hữu CPU • Hai phương pháp: – Không trưng dụng CPU – Có trưng dụng CPU (SRTF: Shortest Remaining Time First)
  28. SJF – SHORTEST JOB FIRST ▪ Đặc điểm • SJF (SRTF) là tối ưu: Thời gian chờ đợi trung bình nhỏ nhất • Không thể biết chính xác thời gian của chu kỳ sử dụng CPU – Dự báo dựa trên những giá trị trước đó
  29. SJF – SHORTEST JOB FIRST ➢Ví dụ: ➢Giản đồ Gantt khi điều phối theo SJF ➢Thời gian đợi trung bình = (0 + 6 + 3 + 7)/4 = 4
  30. SJF – SHORTEST JOB FIRST ➢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 ▪ 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 CPU nếu nó là process đầu tiên vào hệ thống
  31. 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 có trọng số các CPU burst đo được trong quá khứ ➢Giả thiết: những CPU burst càng mới càng phản ánh gần hành vi của process trong tương lai ➢Phương pháp trung bình hàm mũ (exponential averaging) ▪ n+1= tn+ (1 - ) n, 0 ≤ ≤ 1 ▪ t chỉ trị đo được,  chỉ trị dự đoán j n+1 ▪ Suy ra: n+1 = tn+ (1 - ) tn-1+ +(1 - ) tn-j+ +(1- ) 0 ▪ Nếu chọn a= ½ thì có nghĩa là trị đo được tnvà trị đã dự đoán  n được xem quan trọng như nhau.
  32. DỰ ĐOÁN THỜI GIAN SỬ DỤNG CPU
  33. SHORTEST REMAINING TIME FIRST (SRTF) ➢Chế độ quyết định của SJF: nonpreemptive ➢Phiên bản preemptivecủ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)
  34. SHORTEST REMAINING TIME FIRST (SRTF) ➢Ví dụ ➢Giản đồ Gantt khi điều phối theo SRTF ➢Thời gian đợi trung bình = (9 + 1 + 0 + 2) / 4 = 3 ▪ Tốt hơn giải thuật SJF
  35. SHORTEST REMAINING TIME FIRST (SRTF) ➢Tránh trường hợp 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 ➢Có thể dẫn đến starvation (đói CPU).
  36. ĐIỀU PHỐI CÓ ĐỘ ƯU TIÊN ➢Nguyên tắc: ▪ Mỗi tiến trình gắn với một số hiệu ưu tiên (số nguyên) ▪ CPU sẽ được phân phối cho tiến trình có độ ưu tiên cao nhất ▪ SJF: độ ưu tiên gắn liền với thời gian thực hiện ▪ Hai phương pháp • Không trưng dụng CPU • Có trưng dụng CPU
  37. ĐIỀU PHỐI CÓ ĐỘ ƯU TIÊN ➢Gán độ ưu tiên còn có thể 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 ➢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 được tăng theo thời gian
  38. ROUND ROBIN ➢Nguyên tắc: ▪ Mỗi tiến trình được cấp một lượng tử thời gian q thực hiện ▪ Khi hết thời gian, tiến trình bị trưng dụng processor và được đưa vào cuối hàng đợi sẵn sàng ▪ Nếu có n tiến trình, thời gian chờ đợi nhiều nhất (n - 1)q ➢Vấn đề: lựa chọn lượng tử thời gian q ▪ q lớn: FCFS ▪ q nhỏ: luân chuyển CPU nhiều ▪ Thông thường = 10-100ms
  39. ➢Ví dụ
  40. ROUND ROBIN ➢Giản đồ Gantt ➢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
  41. ROUND ROBIN
  42. 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, phí tổn): ▪ 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 OS overhead) nhưng thời gian đáp ứng lớn ▪ Nếu time slice quá lớn, RR trở thành FCFS.
  43. 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, thì phí tổn (OS overhead) chiếm 5 / (20 + 5) = 20% ▪ Nếu quantum = 500 ms, thì phí tổn chỉ còn khoảng1% ➢Nhưng nếu có nhiều người sử dụng 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 ➢Quantum time 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, quantum time là 1 giây
  44. 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
  45. 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.
  46. MULTILEVEL QUEUE SCHEDULING ➢Điều phối hàng đợi đa mức (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) ▪ background(cho công việc dạng bó) ➢Mỗi hàng đợi sẽ có giải thuật điều phối riêng. Ví dụ: ▪ foreground: dùng RR ▪ background: dùng FCFS
  47. MULTILEVEL QUEUE SCHEDULING ➢Điều phố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 để điều phối cho các process của mình. Ví dụ: • 80% cho foreground (dùng RR) • 20% cho background (dùng FCFS)
  48. MULTILEVEL QUEUE SCHEDULING ➢Độ ưu tiên cao nhất ➢Độ ưu tiên thấp nhất
  49. MULTILEVEL FEEDBACK QUEUE ➢Trong hệ thống Multilevel Feedback Queue, bộ điều phối có thể di chuyển process giữa các queue tùy theo đặc tính của nó được quan sát.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ờ quá 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)
  50. MULTILEVEL FEEDBACK QUEUE ➢ Ví dụ: Có 3 hàng đợi ▪ Q0, dùng RR với quantum 8ms ▪ Q1, dùng RR với quantum 16ms ▪ 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, công việc sẽ được một quantumlà 8 milli giây. Nếu không trả CPUtrong 8 milli giây, công việc sẽ được đưa xuống đuôi hàng đợi Q1 ▪ Tại Q1, công việc sẽ được cho một quantumlà 16 milli giây. Nếu công việc khôngtrả CPU trước khi hết quantum thìsẽ bị chuyển xuống Q2 ▪ Công việc ở hàng đợi “cao” preempt công việc ở hàng đợi “thấp”
  51. 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 điều phối nào? ▪ Khi nào thăng cấp một process? ▪ Khi nào giáng cấp một process?
  52. IV. ĐIỀU PHỐI ĐA XỬ LÝ ➢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 điều phối trên một processor ➢Làm sao để chia tải? ▪ Asymmetric multiprocessor • Một master processor sẽ thực hiện điều phối cho tất cả các processor còn lại
  53. IV. ĐIỀU PHỐI ĐA XỬ LÝ ▪ Symmetric multiprocessor (SMP) • Hoặc mỗi processor có một hàng đợi ready riêng và bộ điều phố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ộ điều phối riêng và tự chọn process từ hàng đợi chung để thực thi ➢Đa xử lý không đối xứng ▪ Chỉ có một processor truy nhập, hàng đợi hủy bỏ vấn đề dung chung cơ sở dữ liệu ▪ Có thể tắc nghẽn tại một processor
  54. PROCESSOR AFFINITY ➢Khi một process chạy trên một processor, có một số dữ liệu được cache trên bộ nhớ cache của processor ➢Khi một process được di dời sang một processor khác ▪ Cache của processor mới phải được repopulated ▪ Cache của processor cũ phải được invalidated ▪ =>vấn đề phí tổn
  55. 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
  56. PHƯƠNG PHÁP ĐÁNH GIÁ GIẢI THUẬT ĐIỀU PHỐI CPU ➢Deterministic modeling ▪ Định nghĩa trước một tập tải (workload) và khảo sát performance của các giải thuật trên cùng tập tải đó ▪ Không tổng quát ➢Queuing model ▪ Sử dụng queuing theory để phân tích giải thuật ▪ Sử dụng nhiều giả thiết để phục vụ việc phân tích ▪ Không sát thực tế
  57. PHƯƠNG PHÁP ĐÁNH GIÁ GIẢI THUẬT ĐIỀU PHỐI CPU ➢Mô phỏng(simulation) ▪ Xây dựng bộ mô phỏng và chạy thử ▪ Với tập tải giả (thường được sinh tự động) ▪ Hoặc tập tải được ghi nhận từ thực tế ➢Hiện thực ▪ Viết mã của giải thuật và test nó trong hệ thống thực