Chương này trang bị cho người học những hiểu biết về lập lịch CPU. Các nội dung chính được trình bày trong chương 5 gồm: Các khái niệm cơ bản, các tiêu chuẩn lập lịch, các giải thuật lập lịch, lập lịch multiprocessor, lập lịch thời gian thực, lựa chọn giải thuật. Mời các bạn cùng tham khảo để nắm bắt các nội dung chi tiết.
Nội dung chương BÀI GIẢNG NGUYÊN LÝ HỆ ĐIỀU HÀNH Các khái niệm Các tiêu chuẩn lập lịch Chương 5: Lập lịch CPU Các giải thuật lập lịch Phạm Quang Dũng Bộ môn Khoa học máy tính Khoa Cơng nghệ thơng tin Trường Đại học Nông nghiệp Hà Nội Website: fita.hua.edu.vn/pqdung Lập lịch multiprocessor Lập lịch thời gian thực Lựa chọn giải thuật Bài giảng Nguyên lý Hệ điều hành 5.1 Các khái niệm 5.2 Phạm Quang Dũng ©2008 Trình lập lịch CPU - CPU Scheduler multi-programming giúp đạt sử dụng CPU tối đa Chu kỳ sử dụng CPU–I/O (CPU–I/O Burst Cycle): Sự thực tiến trình gồm chu CPU chờ vào-ra Sự phân phối sử dụng CPU giúp lựa chọn giải thuật lập lịch CPU Mỗi CPU rỗi, HĐH cần chọn số tiến trình sẵn sàng thực nhớ (ready queue), phân phối CPU cho số Tiến trình thực trình lập lịch ngắn kỳ (short-term scheduler, CPU scheduler) Các định lập lịch CPU xảy tiến trình: Chuyển từ trạng thái chạy sang trạng thái chờ (vd: I/O request) Chuyển từ trạng thái chạy sang trạng thái sẵn sàng (vd: ngắt xuất hiện) Chuyển từ trạng thái đợi sang trạng thái sẵn sàng (vd: I/O hoàn thành) Kết thúc Bài giảng Nguyên lý Hệ điều hành 5.3 Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành 5.4 Phạm Quang Dũng ©2008 Preemptive/nonpreemptive Scheduling Lập lịch CPU không ưu tiên trước Trình điều vận - Dispatcher Mơđun trình điều vận trao quyền điều khiển CPU cho tiến (nonpreemptive): trình lựa chọn trình lập lịch CPU; bước: z Khơng có lựa chọn: phải chọn tiến trình để thực z chuyển ngữ cảnh z Khi tiến trình phân phối CPU, sử dụng CPU z chuyển sang user mode giải phóng CPU cách kết thúc chuyển sang trạng thái chờ z nhảy tới vị trí thích hợp chương trình người sử dụng để khởi động lại chương trình z Các tiến trình sẵn sàng nhường điều khiển CPU Trễ điều vận (Dispatch latency) – thời gian cần thiết để trình điều Lập lịch ưu tiên trước (preemptive) vận dừng tiến trình khởi động tiến trình khác chạy z Khi 2: tiến trình đá bật CPU Cần phải chọn tiến trình z Khi 3: tiến trình đá bật tiến trình khác khỏi CPU Bài giảng Nguyên lý Hệ điều hành 5.5 Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành 5.2 Các tiêu chuẩn lập lịch Max CPU utilization – giữ cho CPU bận tốt (0-100%) gian Turnaround time – tổng lượng thời gian để thực tiến trình: Min t/g chờ đưa vào nhớ + t/g chờ ready queue + t/g thực CPU + t/g thực vào-ra Min Phạm Quang Dũng ©2008 5.3 Các giải thuật lập lịch Throughput – số tiến trình hồn thành đơn vị thời Max 5.6 First Come, First Served (FCFS) Shortest Job First (SJF) Priority Round Robin (RR) Multilevel Queue Multilevel Feedback-Queue Waiting time – lượng thời gian mà tiến trình chờ đợi ready queue Min Response time – lượng thời gian tính từ có u cầu gửi đến có trả lời phát ra, thời gian đưa kết trả lời → tiêu chuẩn tốt Bài giảng Nguyên lý Hệ điều hành 5.7 Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành 5.8 Phạm Quang Dũng ©2008 Giải thuật FCFS (tiếp) 1) Giả Giải thuậ thuật FirstFirst-Come, Come, FirstFirst-Served (FCFS) (FCFS) Tiến trình yêu cầu CPU trước phân phối CPU trước Giả định tiến trình đến theo thứ tự P2 , P3 , P1 Biểu đồ Gantt lịch biểu sau: → Giải thuật FCFS không ưu tiên trước Là giải thuật đơn giản Process P1 P2 P3 Burst Time (thời gian sử dụng CPU, ms) 24 3 Giả định tiến trình đến theo thứ tự: P1, P2, P3 P2 24 P3 P1 30 Thời gian chờ đợi tiến trình: P1 = 6; P2 = 0;; P3 = biểu đồ Gantt (Gantt Chart) lịch biểu sau: P1 P2 Thời gian chờ đợi trung bình: (6 + + 3)/3 = P3 27 Tốt nhiều so với trường hợp trước Convoy effect (hiệu ứng hộ tống): tiến trình ngắn đứng sau tiến 30 trình dài, xe máy sau xe buýt Thời gian chờ đợi tiến trình: P1 = 0; P2 = 24; P3 = 27 Thời gian chờ đợi trung bình: (0 + 24 + 27)/3 = 17 Bài giảng Nguyên lý Hệ điều hành 5.9 Phạm Quang Dũng ©2008 2) Giải thuật Shortest-Job-First (SJF) 5.10 Bài giảng Nguyên lý Hệ điều hành Phạm Quang Dũng ©2008 Ví dụ SJF khơng ưu tiên trước Gắn với tiến trình thời gian sử dụng CPU tiếp sau Process Arrival Time Burst Time Thời gian sử dụng để lập lịch tiến trình với thời P1 0.0 gian ngắn P2 2.0 Hai phương pháp: P3 4.0 P4 5.0 z không ưu tiên trước (non-preemptive)– tiến trình sử dụng CPU khơng nhường cho tiến trình khác kết thúc SJF (non-preemptive) z có ưu tiên trước (preemptive)– tiến trình đến có thời gian P1 P3 P4 P2 sử dụng CPU ngắn thời gian lại tiến trình thực ưu tiên tiến trình đến trước Phương pháp gọi Shortest-Remaining-Time-First (SRTF) 12 16 Thời gian chờ đợi tiến trình: P1 = 0; P2 = 6;; P3 = 3, P4 = SJF tối ưu – cho thời gian chờ đợi trung bình tiến Thời gian chờ đợi trung bình = (0 + + + 7)/4 = trình nhỏ Bài giảng Nguyên lý Hệ điều hành 5.11 Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành 5.12 Phạm Quang Dũng ©2008 Xác đị định thờ thời gian sử sử dụng CPU tiế tiếp sau Ví dụ SJF có ưu tiên trước Process Arrival Time Burst Time P1 0.0 đốn giá trị xấp xỉ dựa vào thời gian sử dụng CPU P2 2.0 trước sử dụng cơng thức đệ quy: P3 4.0 P4 5.0 Không thể biết xác thời gian sử dụng CPU tiếp sau tiến trình τ n +1 = α t n + (1 − α )τ n z τn+1 = giá trị dự đoán cho thời gian sử dụng CPU tiếp sau SJF (preemptive) P1 P2 z tn = thời gian thực tế sử dụng CPU thứ n P3 P2 11 z α, ≤ α ≤ P1 P4 z τ0 số α = 0: τn+1 = τn = τ0 16 z Thời gian thực tế sử dụng CPU gần khơng có tác dụng Thời gian chờ đợi trung bình = (9 + + +2)/4 = α = 1: τn+1 = tn z Chỉ tính đến thời gian sử dụng CPU thực tế trước Bài giảng Nguyên lý Hệ điều hành 5.13 Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành 5.14 Phạm Quang Dũng ©2008 3) Lập lịch theo mức ưu tiên Minh họ họa α = 1/2 và τ0 = 10 Mỗi tiến trình gắn số ưu tiên (số nguyên) VD: 0-127 CPU phân phối cho tiến trình có mức ưu tiên cao (có số ưu tiên nhỏ nhất) z Preemptive z nonpreemptive SJF trường hợp riêng lập lịch theo mức ưu tiên: mức ưu tiên thời gian sử dụng CPU tiếp sau dự đoán Vấn đề gặp phải là: tiến trình có mức ưu tiên thấp không thực (starvation) Giải pháp ≡ Aging: kỹ thuật tăng mức ưu tiên tiến trình chờ đợi lâu hệ thống z VD: Sau 1-15 phút giảm số ưu tiên lần Bài giảng Nguyên lý Hệ điều hành 5.15 Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành 5.16 Phạm Quang Dũng ©2008 4) Giải thuật Round-Robin (RR) Ví dụ lập lịch theo mức ưu tiên Process Burst Time Priority P1 10 quantum – định lượng thời gian, q), thường 10-100 ms Sau P2 1 ưu tiên đưa vào cuối ready queue P3 P4 P5 Mỗi tiến trình sử dụng lượng nhỏ thời gian CPU (time Ready queue tổ chức dạng FIFO (FCFS) Nếu tiến trình có thời gian sử dụng CPU < q ⇒ Tiến trình tự nguyện nhường CPU kết thúc Trình lập lịch chọn tiến Nonpreemptive: P2 trình ready queue P5 P1 P3 16 Nếu tiến trình có thời gian sử dụng CPU > q ⇒ định thời P4 18 19 T/gian chờ đợi trung bình = (0 + + + 16 + 18)/5 = 8.2 5.17 Bài giảng Nguyên lý Hệ điều hành Phạm Quang Dũng ©2008 (timer) đếm lùi gây ngắt HĐH = Việc chuyển ngữ cảnh thực tiến trình đưa xuống cuối ready queue để nhường CPU cho tiến trình Bài giảng Nguyên lý Hệ điều hành Ví dụ lập lịch RR với q = 20 Process Burst Time P1 53 P2 17 P3 68 P4 24 5.18 Phạm Quang Dũng ©2008 Quan hệ hệ giữ q và hiệ hiệu Nếu q lớn ⇒ tương tự FCFS Nếu q nhỏ ⇒ số lần chuyển ngữ cảnh nhiều, làm giảm hiệu Biểu đồ Gantt: P1 P2 20 37 P3 P4 57 P1 77 P3 P4 97 117 P1 P3 P3 121 134 154 162 T/g chờ đợi TB = ((57+24)+20+(37+40+17)+(57+40))/4 = 73 Thường RR có turnaround trung bình cao SJF, có response tốt (thấp hơn) Bài giảng Nguyên lý Hệ điều hành 5.19 Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành 5.20 Phạm Quang Dũng ©2008 Phụ Phụ thuộ thuộc củ Turnaround Time vào q Turnaround Time trung bình tập tiến trình cải thiện q tăng lên 5) Lậ Lập lị lịch đa mứ mức hà hàng đợ đợi Ready queue chia thành nhiều queue riêng biệt: foreground (chứa interactive process) background (chứa batch process) Luật: 80% CPU burst nên nhỏ q Mỗi hàng đợi có giải thuật lập lịch riêng: z foreground – RR z background – FCFS Phải có lập lịch queue: z Lập lịch với mức ưu tiên cố định; vd: phục vụ tất tiến trình từ foreground, từ background (có thể xảy starvation) z Phân chia thời gian: queue nhận lượng thời gian CPU mà lập lịch tiến trình vd: 80% cho foreground 20% cho background queue Bài giảng Nguyên lý Hệ điều hành 5.21 Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành 5.22 Phạm Quang Dũng ©2008 6) Lậ Lập lị lịch đa mứ mức hà hàng đợ đợi thông tin phả phản hồ hồi Multilevel Queue Scheduling Một tiến trình di chuyển queue khác nhau; thực aging Trình lập lịch đa mức hàng đợi thông tin phản hồi xác định tham số sau: z số lượng queue z giải thuật lập lịch cho queue z phương pháp sử dụng để xác định tăng/giảm mức ưu tiên tiến trình ¾ Tiến trình queue có mức ưu tiên thấp chạy queue có mức ưu tiên cao rỗng z phương pháp sử dụng để xác định queue mà tiến trình đến cần phục vụ ¾ Tiến trình có mức ưu tiên cao vào ready queue không ảnh hưởng đến tiến trình chạy có mức ưu tiên thấp Bài giảng Nguyên lý Hệ điều hành 5.23 Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành 5.24 Phạm Quang Dũng ©2008 Ví dụ Multilevel Feedback Queue Multilevel Feedback Queues Ba queue: z Q0 – thời gian định lượng ms z Q1 – thời gian định lượng 16 ms z Q2 – FCFS Lập lịch: z Một tiến trình vào queue Q0 phục vụ FCFS Khi giành CPU, tiến trình nhận ms Nếu khơng hồn thành ms, tiến trình chuyển tới queue Q1 z Tại Q1 tiến trình tiếp tục phục vụ FCFS với 16 ms Nếu chưa hồn thành ưu tiên chuyển đến queue Q2 Bài giảng Nguyên lý Hệ điều hành 5.25 Phạm Quang Dũng ©2008 5.4 Lập lịch multiprocessor Bài giảng Nguyên lý Hệ điều hành 5.26 Phạm Quang Dũng ©2008 5.5 Lập lịch thời gian thực Lập lịch CPU có nhiều processor phức tạp nhiều Hard real-time systems – yêu cầu hoàn thành tác vụ găng (critical task) thời gian đảm bảo Các loại processor multiprocessor z resource reservation: tiến trình gửi đến với lệnh cho z Đồng (Homogeneous): tất có kiến trúc z Khơng đồng (Heterogeneous): số tiến trình khơng tương thích với kiến trúc CPU biết thời gian cần thiết nó, trình lập lịch chấp nhận đảm bảo kết thúc hạn, từ chối tiến trình Soft real-time computing – yêu cầu tiến trình găng nhận mức Cân tải (Load balancing/sharing): ready queue cho tất ưu tiên tiến trình may mắn processor, CPU nhàn rỗi gán cho tiến trình đầu z phân phối tài nguyên không hợp lý, thời gian trễ lâu, starvation queue → phải cẩn thận thiết kế trình lập lịch khía cạnh liên quan HĐH: Đa xử lý không đối xứng - Asymmetric multiprocessing: z processor (master processor) truy nhập cấu trúc liệu hệ thống, làm giảm cần thiết bảo vệ liệu chia sẻ Bài giảng Nguyên lý Hệ điều hành 5.27 lập lịch có ưu tiên, tiến trình thời gian thực có mức ưu tiên cao trễ điều vận (dispatch latency) phải nhỏ Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành 5.28 Phạm Quang Dũng ©2008 5.6 Lập lịch luồng 5.7 Các ví dụ lập lịch HĐH Lập lịch cục (Local Scheduling): z Bằng cách Thư viện luồng định chọn luồng để đặt Solaris scheduling Windows XP scheduling vào CPU ảo khả dụng: Thường chọn luồng có mức ưu tiên cao Linux scheduling z Sự cạnh tranh CPU diễn luồng tiến trình z Trong HĐH sử dụng mơ hình Many-to-one, Many-to-many Lập lịch toàn cục (Global Scheduling) z Bằng cách kernel định kernel thread để lập lịch CPU chạy tiếp z Sự cạnh tranh CPU diễn tất luồng hệ thống z Trong HĐH sử dụng mơ hình One-to-one (Windows XP, Linux, Solaris 9) 5.29 Bài giảng Nguyên lý Hệ điều hành Phạm Quang Dũng ©2008 1) Solaris Scheduling Bài giảng Nguyên lý Hệ điều hành 5.30 Phạm Quang Dũng ©2008 Solaris Scheduling (tiếp) Lập lịch dựa mức ưu tiên Xác định lớp lập lịch có thứ tự ưu tiên sau Real time System Time sharing Interactive Trong lớp có mức ưu tiên khác giải thuật lập lịch khác Bài giảng Nguyên lý Hệ điều hành 5.31 Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành 5.32 Phạm Quang Dũng ©2008 Lớp cho cá luồ luồng tương tá tác và chia sẻ sẻ thờ thời gian Bảng điề điều vậ vận củ Solaris cho cá luồ luồng tương tá tác và chia sẻ sẻ thờ thời gian Lớp lập lịch mặc định cho tiến trình Time sharing Chính sách lập lịch tự động thay đổi mức ưu tiên gán q khác nhờ dùng multilevel feedback queue Mặc định: Quan hệ tỷ lệ nghịch: mức ưu tiên cao, q nhỏ ngược lại Các tiến trình tương tác có mức ưu tiên cao tiến trình CPU-bound z Thời gian đáp ứng tốt cho tiến trình tương tác z Thơng lượng tốt cho tiến trình CPU-bound 5.33 Bài giảng Nguyên lý Hệ điều hành Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành 5.34 Phạm Quang Dũng ©2008 Lớp cho cá luồ luồng thờ thời gian thự thực luồ luồng hệ hệ thố thống Giải thích Priority: mức ưu tiên phụ thuộc lớp lớp tương tác Lớp hệ thống chia sẻ thời gian z Số lớn mức ưu tiên cao z Để chạy tiến trình kernel, ví dụ trình lập lịch, trình quản lý Time quantum: lượng thời gian cho mức ưu tiên tương ứng z Tỷ lệ nghịch với mức ưu tiên Time quantum expired: mức ưu tiên luồng mà lớp hệ thống z Mức ưu tiên tiến trình hệ thống khơng thay đổi sử dụng hết lượng thời gian mà chưa kết thúc z Thấp mức ưu tiên gốc Lớp thời gian thực Return from sleep: mức ưu tiên luồng trở từ trạng thái ngủ (vd đợi vào/ra) trình tương tác 5.35 z Chứa luồng có mức ưu tiên cao ⇒ tiến trình thời gian thực chạy trước tiến trình thuộc lớp khác z Cao mức ưu tiên gốc, giúp giảm thời gian đáp ứng cho tiến Bài giảng Nguyên lý Hệ điều hành phân trang nhớ z Các tiến trình người sử dụng chạy kernel mode không Phạm Quang Dũng ©2008 z Ít tiến trình thuộc lớp Bài giảng Nguyên lý Hệ điều hành 5.36 Phạm Quang Dũng ©2008 Solaris scheduling Chọn luồng tổng thể? Có thêm lớp lập lịch cho luồng: Mỗi lớp có tập mức ưu tiên riêng (cục bộ) Fixed priority: Trình lập lịch z Dải mức ưu tiên giống lớp chia sẻ thời gian z chuyển đổi mức ưu tiên cục thành mức ưu tiên toàn cục z Khác chỗ mức ưu tiên khơng điều chỉnh tự động z chọn luồng có mức ưu tiên toàn cục lớn để chạy Fair share: Luồng chọn dùng CPU khi: z Sử dụng chia sẻ CPU thay dùng mức ưu tiên z Nó chuyển trạng thái khóa (vd để vào/ra) z Nó sử dụng hết lượng thời gian q z Bị luồng có mức ưu tiên cao giành quyền Khi có nhiều luồng có mức ưu tiên, trình lập lịch sử dụng hàng đợi round-robin Bài giảng Nguyên lý Hệ điều hành 5.37 Phạm Quang Dũng ©2008 2) Windows XP Scheduling Sử dụng giải thuật lập lịch có ưu tiên trước dựa mức ưu tiên Chịu trách nhiệm lập lịch luồng: trình điều vận (dispatcher) Một luồng chọn chạy đến khi: Nó gọi system call khóa (vd để vào/ra) z Nó sử dụng hết lượng thời gian q z Bị luồng có mức ưu tiên cao giành quyền 5.38 Phạm Quang Dũng ©2008 Quan hệ hệ mức ưu tiên củ kernel và Win32 API z Bài giảng Nguyên lý Hệ điều hành Win32 API định nghĩa lớp ưu tiên: z REALTIME_PRIORITY_CLASS z HIGH_PRIORITY_CLASS z ABOVE_NORMAL_PRIORITY_CLASS z NORMAL_PRIORITY_CLASS z BELOW_NORMAL_PRIORITY_CLASS z IDLE_PRIORITY_CLASS Trình điều vận sử dụng dải ưu tiên 32 mức, chia làm lớp: Mức ưu tiên luồng thuộc lớp thay đổi Trong lớp ưu tiên gồm giá trị ưu tiên: z Variable class: chứa luồng có mức từ đến 15 z TIME_CRITICAL z Real-time class: chứa luồng có mức từ 16 đến 31 z HIGHEST Mỗi mức ưu tiên có queue Trình điều vận duyệt qua queue từ cao đến thấp tìm thấy luồng sẵn sàng Nếu khơng có luồng vậy, trình điều vận thực luồng đặc z ABOVE_NORMAL biệt – idle thread z LOWEST z NORMAL z BELOW_NORMAL z IDLE Bài giảng Nguyên lý Hệ điều hành 5.39 Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành 5.40 Phạm Quang Dũng ©2008 10 Quan hệ hệ mức ưu tiên củ kernel và Win32 API Chiến lược tăng, giảm mức ưu tiên Khi lượng thời gian q luồng hết, luồng bị ngắt Nếu luồng thuộc lớp thay đổi mức ưu tiên mức bị giảm Tuy nhiên khơng giảm đến mức ưu tiên sở ⇒ có xu hướng giới hạn sử dụng CPU luồng CPU-bound Khi luồng thuộc lớp thay đổi mức ưu tiên giải phóng khỏi hoạt động đợi, trình điều vận tăng mức ưu tiên cho Lượng tăng phụ thuộc luồng đợi gì, ví dụ: Base Priority z Đợi vào/ra bàn phím ⇒ tăng mạnh z Đợi hoạt động đĩa ⇒ tăng vừa Chiến lược có xu hướng cho thời gian đáp ứng tốt với luồng tương tác sử dụng chuột cửa sổ, cho phép luồng I/O-bound giữ thiết bị vào/ra “bận rộn”, luồng CPU-bound sử dụng chu kỳ CPU dư thừa “lặng lẽ” Chiến lược số HĐH chia sẻ thời gian sử dụng, vd UNIX Ngoài ra, cửa sổ mà user tương tác nâng mức ưu tiên 5.41 Bài giảng Nguyên lý Hệ điều hành Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành 5.42 Phạm Quang Dũng ©2008 Quan hệ hệ giữ Priorities TimeTime-slice length 3) Linux Scheduling Linux kernel từ phiên 2.5, z Cung cấp giải thuật lập lịch chạy thời gian - O(1) – số lượng luồng hệ thống z Hỗ trợ tốt cho hệ thống đa xử lý đối xứng (SMP) z Cung cấp công hỗ trợ cho tác vụ (task) tương tác Trình lập lịch Linux dùng giải thuật có ưu tiên trước dựa mức ưu tiên với dải riêng: z Dải real-time: có mức từ đến 99 z Dải nice: có mức từ 100 đến 140 Số nhỏ, mức ưu tiên cao Không giống với nhiều HĐH khác, Linux gán task có mức ưu tiên cao nhiều lượng thời gian q Bài giảng Nguyên lý Hệ điều hành 5.43 Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành 5.44 Phạm Quang Dũng ©2008 11 Linux Scheduling (tiếp) 5.8 Lựa chọn giải thuật Kernel trì danh sách task sẵn sàng runqueue z Nếu có nhiều xử lý, BXL có runqueue lập lịch độc lập Mỗi runqueue có mảng ưu tiên: z active: chứa tất task lượng thời gian chúng z expired: chứa tất task hết lượng thời gian Trình lập lịch chọn task có mức ưu tiên cao mảng active Khi mảng active rỗng, mảng tráo đổi cho Chọn giải thuật lập lịch CPU cho hệ thống cụ thể? Trước tiên, xác định sử dụng tiêu chuẩn nào? Vd: z Tối đa CPU utilization với ràng buộc response time lớn 1s z Tối đa throughput để turnaround time tỷ lệ tuyến tính với thời gian thực Phân tích hiệu giải thuật tiến trình Sử dụng chuẩn hàng đợi: công thức Little: n = λ x W Các real-time task gán mức ưu tiên tĩnh n: độ dài queue trung bình Các task khác có mức ưu tiên động: = nice value ± W: thời gian chờ đợi trung bình queue z Task có thời gian ngủ đợi vào/ra dài thường tương tác ⇒ tăng mức ưu tiên cách -5 Mơ phỏng: lập trình mơ hình hệ thống để đánh giá z Task có thời gian ngủ ngắn thường CPU-bound Thực hiện: đặt giải thuật cụ thể hệ thống thực để đánh giá ⇒ giảm mức ưu tiên cách +5 Bài giảng Nguyên lý Hệ điều hành 5.45 λ: tốc độ đến queue tiến trình (số tiến trình/giây) Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành 5.46 Phạm Quang Dũng ©2008 End of Chapter 12 ... lâu hệ thống z VD: Sau 1- 15 phút giảm số ưu tiên lần Bài giảng Nguyên lý Hệ điều hành 5. 15 Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành 5. 16 Phạm Quang Dũng ©2008 4) Giải thuật Round-Robin... chuyển đến queue Q2 Bài giảng Nguyên lý Hệ điều hành 5. 25 Phạm Quang Dũng ©2008 5. 4 Lập lịch multiprocessor Bài giảng Nguyên lý Hệ điều hành 5. 26 Phạm Quang Dũng ©2008 5. 5 Lập lịch thời gian... CPU-bound 5. 33 Bài giảng Nguyên lý Hệ điều hành Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành 5. 34 Phạm Quang Dũng ©2008 Lớp cho cá luồ luồng thờ thời gian thự thực luồ luồng hệ hệ thố