Bài giảng hệ điều hành chương 4

30 546 0
Bài giảng hệ điều hành  chương 4

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Chương 4: Lập lịch - Scheduling Tìm hiểu về: khái niệm lập lịch, thuật toán lập lịch sử dụng hệ điều hành 4-Jun-14 TT QTM Nội dung       Khái niệm Tiêu chuẩn lập lịch 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 4-Jun-14 TT QTM Khái niệm(1)   Multi-programming (chế độ đa chương trình) giúp tăng hiệu sử dụng CPU Chu kỳ sử dụng CPU–I/O (CPU–I/O Burst Cycle):    Sự thực tiến trình chứa chu CPU chu kỳ chờ I/O CPU burst I/O burst luân phiên Sự phân phối sử dụng CPU giúp lựa chọn giải thuật lập lịch CPU 4-Jun-14 TT QTM Khái niệm(2): CPU-I/O burst Alternating Sequence of CPU And I/O Bursts Histogram of CPU-burst Times Mức độ thường xuyên CPU burst chu tiến trình 4-Jun-14 TT QTM 1.1 Trình lập lịch CPU - CPU Scheduler    Mỗi CPU rỗi, HĐH cần chọn số tiến trình trạng thái sẵn sàng( ready) thực nhớ 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:     4-Jun-14 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 TT QTM 1.2 Preemptive/nonpreemptive Scheduling  Lập lịch CPU (1) (4) không ưu tiên trước (nonpreemptive)-độc quyền: Không có lựa chọn: phải chọn tiến trình để thực  Tiến trình phân phối CPU, sử dụng CPU giải phóng CPU cách kết thúc chuyển sang trạng thái chờ  Các tiến trình sẵn sàng nhường điều khiển CPU  Lập lịch (2) (3) ưu tiên trước (preemptive)không độc quyền  Khi (2): tiến trình giải phóng CPU -> Cần phải chọn tiến trình  Khi (3): tiến trình đẩy tiến trình khác để dành quyền điều khiển CPU.TT QTM 4-Jun-14  1.3 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 trình lựa chọn trình lập lịch CPU Các bước:     Chuyển ngữ cảnh Chuyển sang user mode 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 Trễ điều vận (Dispatch latency) – thời gian cần thiết để trình điều vận dừng tiến trình khởi động tiến trình khác chạy 4-Jun-14 TT QTM Tiêu chuẩn lập lịch      CPU utilization(tận dụng) – giữ cho CPU bận tốt (0-100%) Throughput(thông lượng tối đa) – số tiến trình hoàn thành đơn vị thời gian Turnaround time – tổng lượng thời gian để thực tiến trình: t/g chờ đưa vào nhớ + t/g chờ ready queue + t/g thực CPU + t/g thực vào-ra Waiting time – thời gian mà tiến trình chờ đợi ready queue Response time – lượng thời gian tính từ có yê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 4-Jun-14 TT QTM Các giải thuật lập lịch       Giải thuật First-Come, First-Served Giải thuật Shortest-Job-First Giải thuật Lập lịch có ưu tiên - Priority Scheduling Giải thuật Round-Robin (RR) Giải thuật Lập lịch hàng đợi đa mức Multilevel Queue Giải thuật Hàng đợi phản hồi đa mức - Multilevel Feedback Queue 4-Jun-14 TT QTM 3.1 Giải thuật First-Come, FirstServed (FCFS)(1)       Tiến trình yêu cầu CPU trước phân phối CPU trước→ Giải thuật FCFS không ưu tiên Là giải thuật đơn giản Process Burst Time (thời gian xử lý-thời gian sử dụng CPU, ms) P1 24 P2 P3 Giả định tiến trình đến theo thứ tự: P1, P2, P3 biểu đồ Gantt (Gantt Chart) lịch biểu sau: 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 4-Jun-14 TT QTM 10 3.3 Xác định thời gian sử dụng CPU kế tiếp(2)  Minh họa α = 1/2 τ0 = 10 4-Jun-14 TT QTM 16 3.4 Lập lịch có ưu tiên - Priority Scheduling(1)   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)      Preemptive nonpreemptive SJF trường hợp riêng lập lịch có ưu tiên: mức ưu tiên thời gian sử dụng CPU tiếp sau dự đoán Vấn đề: 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  4-Jun-14 VD: Sau 1-15 phút giảm số ưu tiên lần TT QTM 17 3.4 Lập lịch có ưu tiên - Priority Scheduling(2): Ví dụ  Preemptive:  T/gian chờ đợi trung bình = (0 + + + 16 + 18)/5 = 8.2 4-Jun-14 TT QTM 18 3.5 Giải thuật Round-Robin (RR)(1)      Mỗi tiến trình sử dụng lượng nhỏ thời gian CPU (time quantum – thời gian định lượng, q), thường 10-100 ms Sau thời gian thực q, tiến trình đưa vào cuối ready queue Ready queue tổ chức dạng FIFO (FCFS) Nếu tiến trình có thời gian sử dụng CPU lại < q tiến trình giải phóng CPU kết thúc mặt ready queue Trình lập lịch chọn tiến trình ready queue Nếu tiến trình có thời gian sử dụng CPU lại > q định thời (timer) đếm lùi gây ngắt HĐH = Việc chuyển ngữ cảnh thực để chuyển điều khiển CPU cho tiến trình đầu hàng đợi, tiến trình đưa xuống cuối ready queue 4-Jun-14 TT QTM Có n tiến trình t đợi tối đa (n-1)*q Ex: tiến trình, q=10 t Max=70 (Hình trên) 19 3.5 Giải thuật Round-Robin (RR)(2): q=4  Biểu đồ Gantt:  T/gian chờ đợi trung bình = (4 + + 6)/3 = 5.67 4-Jun-14 TT QTM 20 3.6 Lập lịch hàng đợi đa mức Multilevel Queue(1)   Ý tưởng: chia ready queue thành nhiều queue, tiến trình queue có độ ưu tiên Phổ biến:    Mỗi hàng đợi có giải thuật lập lịch riêng:    foreground (chứa interactive process) background (chứa batch process) foreground – RR background – FCFS Phải có lập lịch queue:   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) Phân chia thời gian: queue nhận lượng thời gian CPU mà lập lịch tiến trình  4-Jun-14 vd: 80% cho foreground 20% cho background queue TT QTM 21 3.6 Lập lịch hàng đợi đa mức Multilevel Queue(1) Preemption or Voluntary Yield Ready List0 New Process Ready List1 Scheduler CPU Done Ready List2 Ready List3 4-Jun-14 TT QTM 22 3.6 Lập lịch hàng đợi đa mức Multilevel Queue(2)    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 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 Tiến trình mức ưu tiên thấp đói CPU 4-Jun-14 TT QTM 23 3.7 Hàng đợi phản hồi đa mức Multilevel Feedback Queue(1)  Hạn chế multilevel queue:    Không linh động(một tiến trình di chuyển hàng đợi) Dễ xảy trường hợp đói CPU Multilevel Feedback Queue:   4-Jun-14 Tiến trình di chuyển queue Tiến trình sử dụng nhiều CPU burst di chuyển từ hàng đợi có mức ưu tiên cao xuống hàng đợi có mức ưu tiên thấp TT QTM 24 3.7 Hàng đợi phản hồi đa mức Multilevel Feedback Queue(2)  Ví dụ: có queue:     Q0 – RR, thời gian định lượng ms Q1 – RR, thời gian định lượng 16 ms Q2 – FCFS Lập lịch:   Một tiến trình vào queue Q0 phục vụ RR Khi giành CPU, tiến trình nhận ms Nếu không hoàn thành ms, tiến trình chuyển tới queue Q1 Tại Q1 tiến trình tiếp tục phục vụ RR với 16 ms Nếu chưa hoàn thành ưu tiên chuyển đến queue Q2 4-Jun-14 TT QTM 25 3.8 Điều phối Lottery(xổ số)  Nguyên tắc :   4-Jun-14 Ý tưởng giải thuật phát hành số vé số phân phối cho tiến trình hệ thống Khi đến thời điểm định điều phối, tiến hành chọn vé "trúng giải", tiến trình sỡ hữu vé nhận CPU(chọn ngẫu nhiên) TT QTM 26 Lập lịch multiprocessor   Lập lịch CPU có nhiều processor phức tạp nhiều Các loại processor multiprocessor     4-Jun-14 Đồng (Homogeneous): tất có kiến trúc Không đồng (Heterogeneous): số tiến trình không tương thích với kiến trúc CPU Cân tải (Load balancing/sharing): ready queue cho tất processor, CPU nhàn rỗi gán cho tiến trình đầu queue(tránh trường hợp CPU tải-ready queue gắn với liên tục đầy ready queue gắn với CPU khác rỗng) Đa xử lý không đối xứng - Asymmetric multiprocessing: processor (master processor) truy nhập cấu trúc liệu hệ thống, làm giảm chia sẻ liệu; gây hiệu ứng thắt cổ chai processor master(CPU master) phải thực nhiều việc TT QTM 27 Lập lịch thời gian thực  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   Resource reservation: tiến trình gửi đến với lệnh cho 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 ưu tiên lớn tiến trình non real-time  Có thể phân phối tài nguyên không hợp lý, thời gian trễ lâu, starvation → phải cẩn thận thiết kế trình lập lịch khía cạnh liên quan HĐH:   4-Jun-14 Lập lịch có ưu tiên, tiến trình thời gian thực có mức ưu tiên cao phải không giảm theo thời gian Trễ điều vận (dispatch latency) phải nhỏ TT QTM 28 Lựa chọn giải thuật   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? Ví dụ:     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      Tối đa CPU utilization với ràng buộc response time lớn 1s Tối đa throughput để turnaround time tỷ lệ tuyến tính với thời gian thực n: độ dài queue trung bình W: thời gian chờ đợi trung bình queue λ: tốc độ đến queue tiến trình (số tiến trình/giây) Mô phỏng: lập trình mô hình hệ thống để đánh giá Thực hiện: đặt giải thuật cụ thể hệ thống thực để đánh giá 4-Jun-14 TT QTM 29 Q&A  … 4-Jun-14 TT QTM 30 [...]... chưa hoàn thành thì nó được ưu tiên và được chuyển đến queue Q2 4- Jun- 14 TT QTM 25 3.8 Điều phối Lottery(xổ số)  Nguyên tắc :   4- Jun- 14 Ý tưởng chính của giải thuật là phát hành một số vé số và phân phối cho các tiến trình trong hệ thống Khi đến thời điểm ra quyết định điều phối, sẽ tiến hành chọn 1 vé "trúng giải", tiến trình nào sỡ hữu vé này sẽ được nhận CPU(chọn ngẫu nhiên) TT QTM 26 4 Lập lịch... nhất 4- Jun- 14 TT QTM 12 3.2 Giải thuật Shortest-Job-First (SJF)(2) Ví dụ SJF không ưu tiên trước  SJF (non-preemptive)  Thời gian chờ đợi của các tiến trình: P1 = 0; P2 = 6; P3 = 3, P4 = 7 Thời gian chờ đợi trung bình = (0 + 6 + 3 + 7) /4 = 4  4- Jun- 14 TT QTM 13 3.2 Giải thuật Shortest-Job-First (SJF)(3)  Ví dụ Preemptive SJF  SJF (preemptive)  Thời gian chờ đợi trung bình = (9 + 1 + 0 +2) /4 = 3 4- Jun- 14. .. cảnh được thực hiện để chuyển điều khiển CPU cho tiến trình ở đầu hàng đợi, và tiến trình hiện tại được đưa xuống cuối ready queue 4- Jun- 14 TT QTM 1 2 8 3 7 4 6 5 Có n tiến trình thì t đợi tối đa là (n-1)*q Ex: 8 tiến trình, q=10 thì t Max=70 (Hình trên) 19 3.5 Giải thuật Round-Robin (RR)(2): q =4  Biểu đồ Gantt:  T/gian chờ đợi trung bình = (4 + 7 + 6)/3 = 5.67 4- Jun- 14 TT QTM 20 3.6 Lập lịch hàng... (SJF)(3)  Ví dụ Preemptive SJF  SJF (preemptive)  Thời gian chờ đợi trung bình = (9 + 1 + 0 +2) /4 = 3 4- Jun- 14 TT QTM 14 3.3 Xác định thời gian sử dụng CPU kế tiếp(1) 4- Jun- 14 TT QTM 15 3.3 Xác định thời gian sử dụng CPU kế tiếp(2)  Minh họa khi α = 1/2 và τ0 = 10 4- Jun- 14 TT QTM 16 3 .4 Lập lịch có ưu tiên - Priority Scheduling(1)   Mỗi tiến trình được gắn một số ưu tiên (số nguyên) VD: 0-127... trung bình W: thời gian chờ đợi trung bình trong queue λ: tốc độ đến queue của tiến trình (số tiến trình/giây) 3 Mô phỏng: lập trình mô hình hệ thống để đánh giá 4 Thực hiện: đặt giải thuật cụ thể trong hệ thống thực để đánh giá 4- Jun- 14 TT QTM 29 Q&A  … 4- Jun- 14 TT QTM 30 ... hiện (starvation) Giải pháp ≡ Aging: kỹ thuật tăng mức ưu tiên của các tiến trình chờ đợi lâu trong hệ thống  4- Jun- 14 VD: Sau 1-15 phút giảm số ưu tiên một lần TT QTM 17 3 .4 Lập lịch có ưu tiên - Priority Scheduling(2): Ví dụ  Preemptive:  T/gian chờ đợi trung bình = (0 + 1 + 6 + 16 + 18)/5 = 8.2 4- Jun- 14 TT QTM 18 3.5 Giải thuật Round-Robin (RR)(1)      Mỗi tiến trình sử dụng một lượng nhỏ thời... nhận được một lượng thời gian CPU nào đó mà nó có thể lập lịch các tiến trình của nó  4- Jun- 14 vd: 80% cho foreground và 20% cho background queue TT QTM 21 3.6 Lập lịch hàng đợi đa mức Multilevel Queue(1) Preemption or Voluntary Yield Ready List0 New Process Ready List1 Scheduler CPU Done Ready List2 Ready List3 4- Jun- 14 TT QTM 22 3.6 Lập lịch hàng đợi đa mức Multilevel Queue(2)    Tiến trình trong... phải cẩn thận trong thiết kế trình lập lịch và các khía cạnh liên quan của HĐH:   4- Jun- 14 Lập lịch có ưu tiên, các tiến trình thời gian thực có mức ưu tiên cao nhất và phải không giảm theo thời gian Trễ điều vận (dispatch latency) phải nhỏ TT QTM 28 6 Lựa chọn giải thuật   Chọn giải thuật lập lịch CPU nào cho hệ thống cụ thể? Trước tiên, xác định sử dụng tiêu chuẩn nào? Ví dụ:     1 Phân tích... đang chạy có mức ưu tiên thấp hơn Tiến trình mức ưu tiên thấp có thể đói CPU 4- Jun- 14 TT QTM 23 3.7 Hàng đợi phản hồi đa mức Multilevel Feedback Queue(1)  Hạn chế của multilevel queue:    Không linh động(một tiến trình không thể di chuyển giữa các hàng đợi) Dễ xảy ra trường hợp đói CPU Multilevel Feedback Queue:   4- Jun- 14 Tiến trình có thể di chuyển giữa các queue Tiến trình sử dụng nhiều CPU burst... trình nào sỡ hữu vé này sẽ được nhận CPU(chọn ngẫu nhiên) TT QTM 26 4 Lập lịch multiprocessor   Lập lịch CPU khi có nhiều processor phức tạp hơn nhiều Các loại processor trong multiprocessor     4- Jun- 14 Đồng nhất (Homogeneous): tất cả có cùng kiến trúc Không đồng nhất (Heterogeneous): một số tiến trình có thể không tương thích với kiến trúc của các CPU Cân bằng tải (Load balancing/sharing): một ... + + + 7) /4 =  4- Jun- 14 TT QTM 13 3.2 Giải thuật Shortest-Job-First (SJF)(3)  Ví dụ Preemptive SJF  SJF (preemptive)  Thời gian chờ đợi trung bình = (9 + + +2) /4 = 4- Jun- 14 TT QTM 14 3.3 Xác... hợp chương trình người sử dụng để khởi động lại chương trình Trễ điều vận (Dispatch latency) – thời gian cần thiết để trình điều vận dừng tiến trình khởi động tiến trình khác chạy 4- Jun- 14 TT... (3): tiến trình đẩy tiến trình khác để dành quyền điều khiển CPU.TT QTM 4- Jun- 14  1.3 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 trình lựa chọn trình lập

Ngày đăng: 03/12/2015, 14:31

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan