Bài giảng Hệ điều hành: Chương 4.1 với mục tiêu giúp bạn đọc biết được các khái niệm cơ bản về định thời, biết được các tiêu chuẩn định thời CPU, hiểu được các giải thuật định thời, vận dụng các giải thuật định thời để làm bài tập và mô phỏng
HỆ ĐIỀU HÀNH Chương (1) Định thời CPU 1/17/2018 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved Câu hỏi ôn tập chương Nêu cụ thể trạng thái tiến trình? /* test.c */ int main(int argc, char** argv) { printf(“Hello world\n"); scanf(“ Nhập c = %d”,&c); exit(0); } 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved Câu hỏi ôn tập chương (tt) 1/17/2018 #include #include int main (int argc, char *argv[]) { int pid; pid = fork(); printf(“ so 1”); printf(“ so 2”); fork(); if (pid < 0){ printf(“hello”); fork(); }else fork(); printf(“bye”); } Copyrights 2017 CE-UIT All Rights Reserved Câu hỏi ôn tập chương (tt) Process control block chứa thơng tin gì? Các tác vụ tiến trình? Tại phải định thời, có loại định thời? 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved Mục tiêu chương Biết khái niệm định thời Biết tiêu chuẩn định thời CPU Hiểu giải thuật định thời Vận dụng giải thuật định thời để làm tập mô 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved Nội dung chương Các khái niệm định thời Các định thời 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) Round-Robin (RR) Priority Scheduling 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved 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 = > 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 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved Các định thời 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved Các định thời (tt) 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 CPUbound 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ớ 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved 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: Ngắt thời gian (clock interrupt) Ngắt ngoại vi (I/O interrupt) Lời gọi hệ thống (operating system call) Signal 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved 10 Shortest-Job-First (SJF) (tt) Scheme 1: Non-preemptive Khi CPU trao cho q trình khơng nhường kết thúc chu kỳ xử lý Scheme 2: Preemptive Nếu tiến trình đưa vào danh sách với chiều dài sử dụng CPU cho lần nhỏ thời gian lại tiến trình xử lý, dừng hoạt động tiến trình hành → Shortest-Remaining-Time-First (SRTF) SJF tối ưu – cho thời gian chờ đợi trung bình tối thiểu với tập tiến trình cho trước 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved 23 Non-Preemptive SJT Process Arrival TimeBurst Time P1 P2 P3 P4 Gantt Chart for Schedule P3 P1 P2 P4 12 16 Average waiting time = (0+6+3+7)/4 = 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved 24 Preemptive SJF (SRTF) Process Arrival TimeBurst Time P1 P2 P3 P4 Gantt Chart for Schedule P1 P2 P3 P2 P4 P1 11 16 Average waiting time = (9+1+0+2)/4 = 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved 25 Preemptive SJF (SRTF) Process Arrival TimeBurst Time P1 P2 P3 P4 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved 26 Nhận xét giải thuật SJF Có thể xảy tình trạng “đói” (starvation) process có CPU-burst lớn có nhiều process với CPUburst nhỏ đến hệ thống Cơ chế non-preemptive không phù hợp cho hệ thống time sharing (interactive) Giải thuật SJF ngầm định độ ưu tiên theo burst time Các CPU-bound process có độ ưu tiên thấp so với I/Obound process, process không thực I/O thực thi độc chiếm CPU kết thúc 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved 27 Nhận xét giải thuật SJF (tt) Tương ứng với process cần có độ dài CPU burst Hàm lựa chọn: chọn process có độ dài CPU burst nhỏ Chứng minh được: SJF tối ưu việc giảm thời gian đợi trung bình Nhược điểm: Cần phải ước lượng thời gian cần CPU process Giải pháp cho vấn đề này? 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved 28 Nhận xét giải thuật SJF (tt) (Thời gian sử dụng CPU độ dài CPU burst) Trung bình tất CPU burst đo khứ Nhưng thông thường CPU burst phản ánh đúng hành vi process tương lai Một kỹ thuật thường dùng sử dụng trung bình hàm mũ (exponential averaging) τn+1 = a tn + (1 - a) τn , ≤ a ≤ τn+1 = a tn + (1- a) a tn-1 +…+ (1- a)jaτn-j +…+ (1- a)n+1aτ0 Nếu chọn a = ½ có nghĩa trị đo tn trị dự đoán τn xem quan trọng 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved 29 Dự đoán thời gian sử dụng CPU Độ dài CPU burst đo Độ dài CPU burst dự đốn, với a = ½ 0 = 10 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved 30 Priotity Scheduling Mỗi process gán độ ưu tiên CPU cấp cho process có độ ưu tiên cao Định thời sử dụng độ ưu tiên có thể: Preemptive Nonpreemptive 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved 31 Priotity Scheduling (tt) SJF giải thuật định thời sử dụng độ ưu tiên với độ ưu tiên thời-gian-sử-dụng-CPU-dự-đoán Gán độ ưu tiên dựa vào: Yêu cầu nhớ Số lượng file mở Tỉ lệ thời gian dùng cho I/O thời gian sử dụng CPU Các u cầu bên ngồi ví dụ như: số tiền người dùng trả thực thi công việc 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved 32 Priotity Scheduling (tt) Vấn đề: trì hỗn vơ hạn định – process có độ ưu tiên thấp khơng thực thi Giải pháp: làm (aging) – độ ưu tiên process tăng theo thời gian 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved 33 Tóm tắt lại nội dung buổi học Các khái niệm định thời Các định thời 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) Round-Robin (RR) Priority Scheduling 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved 34 Bài tập Sử dụng giải thuật FCFS, SJF, SRTF, Priority để tính giá trị thời gian đợi, thời gian đáp ứng thời gian hồn thành trung bình 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved 35 Bài tập Sử dụng giải thuật FCFS, SJF, SRTF, Priority để tính giá trị thời gian đợi, thời gian đáp ứng thời gian hồn thành trung bình 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved 36 THẢO LUẬN 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved 37 ... a tn + (1 - a) τn , ≤ a ≤ τn+1 = a tn + ( 1- a) a tn-1 +…+ ( 1- a)jaτn-j +…+ ( 1- a)n+1aτ0 Nếu chọn a = ½ có nghĩa trị đo tn trị dự đoán τn xem quan trọng 1/17/2018 Copyrights 2017 CE-UIT All... Copyrights 2017 CE-UIT All Rights Reserved Các định thời (tt) 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... 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í