1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Hệ điều hành: Chương 4

30 1 0

Đ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

Nội dung

Chương 4 Lập lịch - Scheduling thuộc bài giảng hệ điều hành, cùng tìm hiểu chương học này thông qua các nội dung trình bày về: 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.

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 ln 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 hồ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ó 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 cịn lại < q tiến trình giải phóng CPU kết thúc khơng 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 cịn 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 khơng thể 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 hồ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 hồ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 ln 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 ngun 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 ... + + + 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... đế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,... (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: 08/05/2021, 12:46

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN