Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 47 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
47
Dung lượng
664,26 KB
Nội dung
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) 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 Quantum time cho Round Robin* Khi thực process switch OS sử dụng CPU khơng phải process người dùng (OS overhead) – Dừng thực thi, lưu tất thơng tin, nạp thơng tin process thực thi Performance tùy thuộc vào kích thước quantum time (còn gọi time slice), hàm phụ thuộc khơng đơn giản Time slice ngắn đáp ứng nhanh – Vấn đề: có nhiều chuyển ngữ cảnh Phí tổn cao Time slice dài throughput tốt (do giảm phí tổn OS overhead) thời gian đáp ứng lớn – Nếu time slice q lớn, RR trở thành FCFS Khoa KTMT 33 Quantum time cho Round Robin Quantum time thời gian cho process switch: – Nếu quantum time = 20 ms thời gian cho process switch = ms, phí tổn OS overhead chiếm 5/25 = 20% – Nếu quantum = 500 ms, phí tổn 1% Nhưng có nhiều người sử dụng hệ thống thuộc loại interactive thấy đáp ứng 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 tương quan so sánh với thời gian cho process switch – Ví dụ với 4.3 BSD UNIX, quantum time giây Khoa KTMT 34 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 “ư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 Process Khoa KTMT Arrival Time Service Time 38 Multilevel Queue Scheduling Hà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 , dù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 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 [...]... Time P1 0 7 P2 2 4 P3 4 1 P4 5 4 Thực hiện ở chế độ nào? VD2: Gantt Chart for Schedule P1 0 P2 2 P3 P2 4 5 P4 7 P1 11 16 Average waiting time = (9+1+0+2) /4 = 3 Khoa KTMT Process Arrival TimeBurst Time P1 0 8 P2 1 4 P3 2 9 P4 3 5 19 Nhận xét về giải thuật SJF Có thể xảy ra tình trạng “đói” (starvation) đối với các process có CPU-burst lớn khi có nhiều process với CPUburst nhỏ đến hệ thống Cơ chế... động tiến trình hiện hành (hình thức này còn gọi là ShortestRemaining-Time-First (SRTF).) ‟ SJF là tối ưu ‟ cho thời gian chờ đợi trung bình tối thiểu với một tập tiến trình cho trước Khoa KTMT 17 Non-Preemptive SJF Scheduling Ví dụ : Process Arrival TimeBurst Time P1 0 7 P2 2 4 P3 4 1 P4 5 4 Gantt Chart for Schedule P1 0 P3 7 P2 8 P4 12 16 Average waiting time = (0+6+3+7) /4 = 4 Khoa KTMT 18 Preemptive... dụng hàng đợi FIFO (FIFO queues) ‟ Tiến trình đi vào được thêm vào cuối hàng đợi ‟ Tiến trình được lựa chọn để xử lý được lấy từ đầu của queues 5 0 10 15 20 P1 P2 P3 P4 P5 run Khoa KTMT add 13 FCFS Scheduling Ví dụ : Process P1 P2 P3 Burst Time 24 3 3 Gantt Chart for Schedule P1 P2 P3 0 Khoa KTMT 24 27 30 Giả sử thứ tự vào của các tiến trình là P1, P2, P3 Thời gian chờ P1 = 0; P2 = 24; ... bình của giải thuật RR thường khá lớn nhưng thời gian đáp ứng nhỏ Khoa KTMT 27 Ví dụ Round Robin Time Quantum = 20 Process Burst Time P1 53 P2 17 P3 68 P4 24 Gantt Chart for Schedule P1 0 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 hơn SJF, nhưng đáp ứng tốt hơn Khoa KTMT 28 RR với time quantum = 1 Thời gian turn-around trung bình cao hơn so với SJF... được xếp trước các process bò blocked Khoa KTMT 29 Time quantum và context switch Process time = 10 0 12 0 6 1 1 9 10 6 0 0 quantum context switch 1 2 Khoa KTMT 3 4 5 6 10 7 8 9 10 30 Thời gian hồn thành và quantum time Thời gian hồn thành trung bình (average turnaround time) khơng chắc sẽ được cải thiện khi quantum lớn Khoa KTMT 31 Quantum và response time Khoa KTMT Quantum time phải lớn hơn... I/O burst CPU burst một chu kỳ CPU-I/O Process Arrival Time Service Time 1 0 3 2 2 6 3 4 4 4 6 5 5 8 2 I/O burst … wait for I/O CPU burst Service time = thời gian process cần CPU trong một chu kỳ CPU-I/O Process có service time lớn là các CPU-bound process Khoa KTMT 12 1 First-Come First-Served (FCFS) Hàm lựa chọn: Tiến trình nào yêu cầu CPU trước sẽ được cấp phát CPU trước; Process sẽ thực... chỉ còn 1% Nhưng nếu có nhiều người sử dụng trên hệ thống và thuộc loại 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 Khoa KTMT 34 Round Robin Nếu có n process trong hàng đợi ready, và quantum time là q, như vậy mỗi process... Schedule P1 P2 P3 0 Khoa KTMT 24 27 30 Giả sử thứ tự vào của các tiến trình là P1, P2, P3 Thời gian chờ P1 = 0; P2 = 24; P3 = 27; Thời gian chờ trung bình (0+ 24+ 27)/3 = 17 14 FCFS Scheduling Ví dụ: Process P1 P2 P3 Burst Time 24 3 3 Gantt Chart for Schedule P2 0 P3 3 P1 6 Giả sử thời gian vào của các tiến trình là P2, P3, P1 Thời gian chờ : P1 = 6; P2 = 0; P3 = 3; Thời gian chờ trung... gian sử dụng CPU chính là độ dài của CPU burst) Trung bình tất cả các CPU burst đo được trong q khứ Nhưng thơng thường những CPU burst càng mới càng phản ánh đúng hành vi của process trong tương lai Một kỹ thuật thường dùng là sử dụng trung bình hàm mũ (exponential averaging) – τn+1 = a tn + (1 - a) τn , 0 a 1 – τn+1 = a tn + (1- a) a tn-1 +…+ (1- a)jaτn-j +…+ (1- a)n+1aτ0 – Nếu chọn a = ½ thì có nghĩa... 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 phí tổn OS overhead) nhưng thời gian đáp ứng lớn – Nếu time slice q lớn, RR trở thành FCFS Khoa KTMT 33 Quantum time cho Round Robin Quantum time và thời gian ... 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... 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... Quantum = 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