Bài giảng Hệ điều hành - Chương 4: Định thời CPU cung cấp cho người đọc các kiến thức: Khái niệm cơ bản, bộ định thời, các tiêu chuẩn định thời CPU, các giải thuật định thời. Mời các bạn cùng tham khảo nội dung chi tiết.
Chương IV: Định thời CPU Khái niệm Các định thời ‟ long-term, mid-term, short-term Các tiêu chuẩn định thời CPU Các giải thuật định thời ‟ First-Come, First-Served (FCFS) ‟ Shortest Job First (SJF) vaø Shortest Remaining Time First (SRTF) ‟ Priority Scheduling ‟ Round-Robin (RR) ‟ Highest Response Ratio Next (HRRN) ‟ Multilevel Queue ‟ Multilevel Feedback Queue Khoa KTMT Mục tiêu Hiểu được: – Tại phải định thời – Các tiêu chí định thời – Một số giải thuật định thời Khoa KTMT Khái niệm Trong hệ thống multitasking ‟ Thực thi nhiều chương trình đồng thời làm tăng hiệu suất hệ thống ‟ Tại thời điểm, có process thực thi Do đó, cần phải giải vấn đề phân chia, lựa chọn process thực thi cho hiệu chiến lược định thời CPU Định thời CPU ‟ Chọn process (từ ready queue) thực thi ‟ Với multithreaded kernel, việc định thời CPU OS chọn kernel thread chiếm CPU Khoa KTMT Các định thời new Long-term scheduling suspended ready Long-term scheduling Medium-term scheduling ready Short-term scheduling running suspended blocked Khoa KTMT Medium-term scheduling blocked terminated Các định thời Long-term scheduling ‟ Xác định chương trình chấp nhận nạp vào hệ thống để thực thi ‟ Điều khiển mức độ multiprogramming hệ thống ‟ Long term scheduler thường cố gắng trì xen lẫn CPU-bound I/O-bound process Medium-term scheduling ‟ Process đưa vào (swap in), đưa khỏi (swap out) nhớ ‟ Được thực phần quản lý nhớ thảo luận phần quản lý nhớ Khoa KTMT Các định thời (tt) „ Short term scheduling Xác định process ready queue chiếm CPU để thực thi (còn gọi định thời CPU, CPU scheduling) Short term scheduler gọi với tên khác dispatcher Bộ định thời short-term gọi có kiện/interrupt sau xảy ra: ‟ t thời gian (clock interrupt) ‟ Ngắt ngoại vi (I/O interrupt) ‟ Lời gọi hệ thống (operating system call) ‟Chương Signal tập trung vào định thời Khoa KTMT ngắn hạn Dispatcher Dispatcher chuyển quyền điều khiển CPU cho process chọn định thời ngắn hạn Bao gồm: ‟ Chuyển ngữ cảnh (sử dụng thông tin ngữ cảnh PCB) ‟ Chuyển chế độ người dùng ‟ Nhảy đến vị trí thích hợp chương trình ứng dụng để khởi động lại chương trình (chính program counter PCB) Công việc gây phí tổn ‟ Dispatch latency: thời gian mà dispatcher dừng process khởi động process khác Khoa KTMT Các tiêu chuẩn định thời CPU User-oriented ‟ Thời gian đáp ứng (Response time): khoảng thời gian process nhận yêu cầu đến yêu cầu đáp ứng (timesharing, interactive system) cực tiểu ‟ Thời gian quay vòng (hoàn thành) (Turnaround time): khoảng thời gian từ lúc process nạp vào hệ thống đến process kết thúc cực tiểu ‟ Thời gian chờ (Waiting time): tổng thời gian process đợi ready queue cực tiểu System-oriented ‟ Sử dụng CPU (processor utilization): định thời cho CPU bận tốt cực đại ‟ Công (fairness): tất process phải đối xử ‟ Thông lượng (throughput): số process hoàn tất công việc đơn vị thời gian cực đại Khoa KTMT Hai yếu tố giải thuật định thời Hàm chọn lựa (selection function): dùng để chọn process ready queue thực thi (thường dựa độ ưu tiên, yêu cầu tài nguyên, đặc điểm thực thi process,…), ví dụ „ w = tổng thời gian đợi hệ thống „ e = thời gian phục vụ „ s = tổng thời gian thực thi process (bao gồm “e”) Khoa KTMT Hai yếu tố giải thuật định thời (tt) Chế độ định (decision mode): chọn thời điểm thực hàm chọn lựa để định thời Có hai chế độ ‟ Không trưng dụng (Non-preemptive) Khi trạng thái running, process thực thi kết thúc bị blocked yêu cầu I/O ‟ Trưng dụng (Preemptive) Process thực thi (trạng thái running) bị ngắt nửa chừng chuyển trạng thái ready hệ điều hành Chi phí cao non-preemptive đánh đổi lại thời gian đáp ứng tốt trường hợp process độc chiếm CPU lâu Khoa KTMT 10 Round Robin Nếu có n process hàng đợi ready, quantum time q, process lấy 1/n thời gian CPU theo khối có kích thước lớn q – Sẽ khơng có process chờ lâu (n - 1)q đơn vị thời gian RR sử dụng giả thiết ngầm tất process có tầm quan trọng ngang – Không thể sử dụng RR muốn process khác có độ ưu tiên khác Khoa KTMT 35 Round Robin: nhược điểm Các process dạng CPU-bound cịn “ưu tiên” – Ví dụ: Một I/O-bound process sử dụng CPU thời gian ngắn quantum time bị blocked để đợi I/O Và Một CPU-bound process chạy hết time slice lại quay trở hàng đợi ready queue (ở phía trước process bị blocked) Khoa KTMT 36 Highest Response Ratio Next RR time spent waiting expected service time expected service time Chọn process có giá trị RR (Response ratio) lớn Các process ngắn ưu tiên (vì service time nhỏ) Khoa KTMT 37 Highest Response Ratio Next Quantumn time = Process Khoa KTMT Arrival Time Service Time 38 Multilevel Queue Scheduling Haøng đợi ready chia thành nhiều hàng đợi riêng biệt theo số tiêu chuẩn ‟ Đặc điểm yêu cầu định thời process ‟ Foreground (interactive) background process,… Process gán cố định vào hàng đợi, hàng đợi sử dụng giải thuật định thời riêng Hệ điều hành cần phải định thời cho hàng đợi ‟ Fixed priority scheduling: phục vụ từ hàng đợi có độ ưu tiên cao đến thâp Vấn đề: có starvation ‟ Time slice: hàng đợi nhận khoảng thời gian chiếm CPU phân phối cho process hàng đợi khoảng thời gian Ví dụ: 80% cho hàng đợi foreground định thời RR 20% cho hàng đợi background định thời giải thuật FCFS Khoa KTMT 39 Multilevel Queue Scheduling* Ví dụ phân nhóm q trình Độ ưu tiên cao System Processes Interactive Processes Batch Processes Student Processes Độ ưu tiên thấp Khoa KTMT 40 Hàng đợi phản hồi đa cấp Multilevel Feedback Queue Vấn đề multilevel queue ‟ process chuyển từ hàng đợi sang hàng đợi khác khắc phục chế feedback: cho phép process di chuyển cách thích hợp hàng đợi khác Multilevel Feedback Queue ‟ Phân loại processes dựa đặc tính CPU-burst ‟ Sử dụng decision mode preemptive ‟ Sau khoảng thời gian đó, I/O-bound process interactive process hàng đợi có độ ưu tiên cao CPU-bound process queue có độ ưu tiên thấp ‟ Một process chờ lâu hàng đợi có độ ưu tiên thấp chuyển đến hàng đợi có độ ưu tiên cao (cơ chế niên hạn, aging) Khoa KTMT 41 Multilevel Feedback Queue Ví dụ: Có hàng đợi ‟ Q0 , dùng RR với quantum ms ‟ Q1 , dùng RR với quantum 16 ms ‟ Q2 , duøng FCFS Khoa KTMT 42 Multilevel Feedback Queue (tt) Định thời dùng multilevel feedback queue đòi hỏi phải giải vấn đề sau ‟ Số lượng hàng đợi thích hợp? ‟ Dùng giải thuật định thời hàng đợi? ‟ Làm để xác định thời điểm cần chuyển process đến hàng đợi cao thấp hơn? ‟ Khi process yêu cầu xử lý đưa vào hàng đợi hợp lý nhất? Khoa KTMT 43 So sánh giải thuật Giải thuật định thời tốt nhất? Câu trả lời phụ thuộc yếu tố sau: ‟ Tần xuất tải việc (System workload) ‟ Sự hỗ trợ phần cứng dispatcher ‟ Sự tương quan trọng số tiêu chuẩn định thời response time, hiệu suất CPU, throughput,… ‟ Phương pháp định lượng so sánh Khoa KTMT 44 Đọc thêm Policy Mechanism Định thời hệ thống multiprocessor Đánh giá giải thuật định thời CPU Định thời số hệ điều hành thông dụng Nguồn: Operating System Concepts Sixth Edition John Wiley & Sons, Inc 2002 Silberschatz, Galvin, Gagne Khoa KTMT 45 Bài tập Xét tập process sau có thời gian thực thi CPU tính mili giây: Process Burst - time Priority P1 10 P2 1 P3 P4 p5 Giả sử thứ tự đến để thực thi process P1, P2, P3, P4, P5 (tất process đến thời điểm 0) Vẽ sơ đồ Gautt thực thi process theo giải thuật định thời: FCFS, SJF, RR (quantumn = 1) Ở chế độ preemptive nonpreemptive Thời gian đợi process giải thuật định thời? Khoa KTMT 46 Bài tập Tính thời gian hồn thành(turnaround time) process cho giải thuật? Trong giải thuật sau, giải thuật gây trường hợp process khơng thực thi: First come, first serve Shortest job first Round robin Priority Giải thích lý xảy trường hợp trên? Khoa KTMT 47 Bài tập RR với q = Preemptive Priority với số lớn ưu tiên Điều phối ưu tiên nhiều cấp xoay vòng, sử dụng cấp: Cấp sử dụng giải thuật robin round với quantumn = 3ms Cấp sử dụng giải thuật SRTF Một process cấp I 5ms chuyển xuống cấp II trạng thái waiting trạng thái running sau khỏi chuyển Ngược lại process cấp II sau khoãng thời gian 10ms chuyển lên I Khi process vào nhớ điều vào hàng đợi cấp I Khoa KTMT 48 Bài tập Cho tiến trình A, B, C, D với thời gian vào ready list thời gian cần CPU cho lần thứ 1, thứ 2, thứ thời gian thực I/O tương ứng sau: Vẽ giản Gantt, Tính thời gian đợi trung bình, Thời gian đáp ứng trung bình, Thời gian lưu lại hệ thống trung bình cho giải thuật (câu 1, dùng thời gian thực thi 1st execution time burst time) FCFS RR với q = SRFT cho lần exec Khoa KTMT 49 ... Long-term scheduling ‟ Xác định chương trình chấp nhận nạp vào hệ thống để thực thi ‟ Điều khiển mức độ multiprogramming hệ thống ‟ Long term scheduler thường cố gắng trì xen lẫn CPU-bound I/O-bound... 20 Process Burst Time P1 53 P2 17 P3 68 P4 24 Gantt Chart for Schedule P1 20 P2 37 P3 57 P4 P1 77 P3 P4 P1 P3 97 117 121 1 34 P3 1 54 162 turnaround time trung bình lớn SJF, đáp ứng tốt Khoa KTMT... có thể: ‟ Preemptive ‟ Nonpreemptive Khoa KTMT 24 Gán độ ưu tiên SJF giải thuật định thời sử dụng độ ưu tiên với độ ưu tiên thời-gian-sử-dụngCPU-d? ?-? ?oán Gán độ ưu tiên dựa vào: ‟ Yêu cầu nhớ