Bài giảng Hệ điều hành - Chương 3: Quản lý tiến trình giới thiệu tới các bạn về mô hình tiến trình, trạng thái tiến trình, thông tin quản lý tiến trình, quá trình điều phối tiến trình, các thuật toán điều phối.
QUẢN LÝ TIẾN TRÌNH MỤC TIÊU 1/13/2017 Mơ hình Tiến trình Trạng thái tiến trình Thơng tin quản lý tiến trình Quá trình điều phối tiến trình Các thuật tốn điều phối Trần Hạnh Nhi ĐA NHIỆM VÀ ĐA CHƯƠNG ??? 1/13/2017 Vì muốn xử lý đồng thời nhiều cơng việc máy tính ? CPU IO CPU IO CPU IO CPU IO CPU IO CPU Trần Hạnh Nhi Job CPU Job Job CPU Xử lý đồng thời để tăng hiệu suất sử dụng CPU ĐA NHIỆM VÀ ĐA CHƯƠNG ??? 1/13/2017 Vì muốn xử lý đồng thời nhiều cơng việc máy tính ? Trần Hạnh Nhi Job : kq = a*b + c*d; Xửù lý đồng hành Xứ lý CPU #1 x=a*b CPU #1 x=a*b y = c *d kq = x+y kq = x+y CPU #2 y=c*d Xử lý đồng thời để tăng tốc độ xử lý ĐA NHIỆM VÀ ĐA CHƯƠNG Multitasking (đa nhiệm): cho phép nhiều tác vụ/ công việc xử lý đồng thời Trần Hạnh Nhi 1/13/2017 Người dùng mong muốn HĐH đa nhiệm Nhưng: Máy tính thường có CPU? Multiprogramming (đa chương): kỹ thuật cho phép nhiều chương trình thực đồng thời (trên CPU) Giả lập nhiều CPU ảo từ CPU thật phép thi hành nhiều chương trình đồng thời Ảo hố cách nào? Xây dựng thuật toán để luân chuyển CPU chương trình ứng dụng XỬ LÝ ĐỒNG HÀNH, NHỮNG KHÓ KHĂN ? CDplayer Winword - Tài nguyên giới hạn, ứng dụng “vô hạn” Trần Hạnh Nhi Visual C++ 1/13/2017 Excel - Nhiều hoạt động đan xen ??? Phân chia tài nguyên ? ??? Chia sẻ tài nguyên ? ??? Bảo vệ? HĐH : “Giải nhiều cơng việc đồng thời, đâu !” GIẢI PHÁP 1/13/2017 Winword - Mỗi thời điểm giải yêu cầu CDPlayer Excel Trần Hạnh Nhi -“Chia để trị”, lập hoạt động - o hố tài nguyên: biến thành nhiều Visual C ++ HĐH: “Ai có phần đến lượt mà!” GIẢI PHÁP 1/13/2017 Trần Hạnh Nhi CPU KHÁI NIỆM TIẾN TRÌNH (PROCESS) 1/13/2017 Tiến trình chương trình trình thực Mỗi tiến trình sở hữu Trần Hạnh Nhi Một CPU (ảo) riêng Một không gian nhớ riêng Chiếm giữ số tài nguyên hệ thống Vd: Một chương trình Word chạy lần tạo tiến trình khác nhau: Microsoft Word – [Bai tap1.doc] Microsoft Word – [Bai tap2.doc] HAI PHẦN CỦA TIẾN TRÌNH 1/13/2017 Dòng xử lý Trần Hạnh Nhi int a; int a; Không gian địa 10 ĐIỀU PHỐI VỚI ĐỘ ƯU TIÊN Cách tính độ ưu tiên? Tính chất độ ưu tiên : Trần Hạnh Nhi Hệ thống gán: CPU times,… Người dùng gán tường minh 1/13/2017 Tĩnh Động 44 VÍ DỤ: ĐỘ ƯU TIÊN CỦA HĐH WINNT WinNT gán cho tiến trình độ ưu tiên có giá trị & 31 (độ ưu tiên nhỏ nhất): dành riêng cho trạng thái system idle Độ ưu tiên phân theo nhóm: Realtime : (16 - 31) Trần Hạnh Nhi 1/13/2017 Thích hợp cho tiến trình thời gian thực Dành riêng cho tiến trình người quản trị hệ thống Dynamic : (0 - 15) Thích hợp cho tiến trình người dùng thường Chia thành mức : high (11 - 15) normal (6 - 10) idle (2 - 6) 45 BIỂU ĐỒ PHÂN BỐ ĐỘ ƯU TIÊN CỦA WINNT realtime time-critical 31 realtime realtime idle dynamic time-critical Trần Hạnh Nhi 24 levels 16-31 1/13/2017 highest (+2) above normal (+1) normal (0) below normal (-1) lowest (-2) realtime high 16 15 13 normal dynamic idle levels 1-15 dynamic idle system idle 46 NGUYÊN TẮC ĐIỀU PHỐI Độc quyền Lượt sử dụng CPU kết thúc khi: Không độc quyền Trần Hạnh Nhi tiến trình kết thúc, tiến trình bị khóa 1/13/2017 Lượt sử dụng CPU kết thúc khi: tiến trình kết thúc, tiến trình bị khóa, cótiến trình với độ ưu tiên cao vào RL 47 ĐỘ ƯU TIÊN – KHÔNG ĐỘC QUYỀN TRL Priority CPU burst P TT WT P1 0 24 P1 30 0+(7-1) P2 P2 4-1 P3 P3 7-2 4-2 1/13/2017 P Trần Hạnh Nhi AvgWT = (6+0+2)/3 = 2.66 P1 P2 P2 P3 P1 0: P1 vào, P1 dùng CPU 1: P2 vào (độ ưu tiên cao P1) P2 dành quyền dùng CPU 2: P3 vào (độ ưu tiên thấp P2) P3 không dành quyền dùng CPU 30 4: P2 kết thúc, P3 dùng CPU 7: P3 dừng, P1 dùng CPU 30: P1 dừng 48 ĐỘ ƯU TIÊN - KHÔNGĐỘC QUYỀN - NHẬN XÉT Số phận tiến trình có độ ưu tiên thấp? Trần Hạnh Nhi Chờ lâu, lâu, lâu Giải quyết: tăng độ ưu tiên cho tiến trình chờ lâu hệ thống (Aging) 1/13/2017 49 SHORTEST JOB FIRST (SJF) 1/13/2017 Ready List (cần chu kỳ) P1 (cần chu kỳ) CPU Trần Hạnh Nhi P2 P3 (cần chu kỳ) Là dạng độ ưu tiên đặc biệt với độ ưu tiên pi = thời_gian_còn_lại(Processi) Có thể cài đặt độc quyền không độc quyền 50 MINH HỌA SJF (ĐỘC QUYỀN)(1) TarriveRL CPU burst P TT WT P1 24 P1 24 P2 P2 27-1 24-1 P3 P3 30-2 27-2 1/13/2017 P Trần Hạnh Nhi AvgWT = (23+25)/3 = 16 P1 0:00 P1 vào, P1 dùng CPU P2 24 P3 27 30 0:01 P2 vào RL 0:24 P1 kết thúc, P2 dùng CPU 0:27 P2 dừng, P3 dùng CPU 0:02 P3 vào RL 0:30 P3 dừng 51 MINH HỌA SJF (ĐỘC QUYỀN)(2) TarriveRL CPU burst P TT WT P1 24 P1 24 P2 P2 29-1 26-1 P3 P3 26-1 24-1 1/13/2017 P Trần Hạnh Nhi AvgWT = (24+22)/3 = 15.33 P1 0:00 P1 vào, P1 dùng CPU P3 24 P2 26 29 0:01 P2 vào 0:24 P1 kết thúc, P3 dùng CPU 0:26 P3 dừng, P2 dùng CPU 0:01 P3 vào 0:29 P2 dừng 52 MINH HỌA SJF (KHÔNGĐỘC QUYỀN) (1) TarriveRL CPU burst P TT WT P1 24 P1 30 0+(7-1) P2 P2 4-1 P3 P3 7-2 4-2 1/13/2017 P Trần Hạnh Nhi AvgWT = (6+0+2)/3 = 2.66 P1 P2 P3 P1 0:00 P1 vào, P1 dùng CPU 0:01 P2 vào (độ ưu tiên cao P1) P2 dành quyền dùng CPU 30 0:4 P2 kết thúc, P3 dùng CPU 0:7 P3 dừng, P1 dùng CPU 0:30 P1 dừng 53 MINH HỌA SJF (KHÔNGĐỘC QUYỀN) (2) TarriveRL CPU burst P TT WT P1 24 P1 33 0+(10-1) P2 P2 P3 P3 6-3 1/13/2017 P Trần Hạnh Nhi AvgWT = (9+0+3)/3 = P1 P2 P2 P3 P1 10 0:00 P1 vào, P1 dùng CPU 0:01 P2 vào (độ ưu tiên cao P1) P2 dành quyền dùng CPU 0:03 P3 vào (độ ưu tiên < P2) P2 dành quyền dùng CPU 33 0:6 P2 kết thúc, P3 dùng CPU 0:10 P3 dừng, P1 dùng CPU 0:33 P1 dừng 54 MINH HỌA SJF (NHIỀU CHU KỲ CPU) CPU1 burst IO1 R IO1 T CPU2 burst IO2 R IO2 T P1 R1 2 R2 P2 R1 10 R1 P3 10 R2 Null CPU P1 P2 P1 R1 P3 10 P2 13 P2 P3 14 P1 15 P1 13 Trần Hạnh Nhi TarriveRL 1/13/2017 P P3 17 21 P2 15 19 R2 P1 17 P3 55 19 21 22 ĐIỀU PHỐI VỚI NHIỀU MỨC ƯU TIÊN 1/13/2017 Tổ chức N RL ứng với nhiều mức ưu tiên Mỗi RLi áp dụng chiến lược điều phối thích hợp Giữa RL áp dụng điều phối theo độ ưu tiên : Độ ưu tiên Trần Hạnh Nhi CPU … n Kết hợp nhiều chiến lược RLi rỗng điều phối RLi +1 56 KHUYẾT ĐIỂM CPU Chờ lâu Starvation !!! Giải pháp Aging : Trần Hạnh Nhi 1/13/2017 Chờ lâu : chuyển lên RL với độ ưu tiên cao Chiếm CPU lâu : chuyển xuống RL với độ ưu tiên thấp Khi thực aging? Aging tiến trình nào? 57 Bài tập: Hãy điều phối CPU: SJF không độc quyền R1,R2: FIFO Tiến trình Thời điểm vào Ready list IO laàn CPU1 P1 P2 IO laàn CPU2 Thời gian Thiết bò Thời gian Thiết bò R1 Null R2 R1 P3 10 R1 R2 P4 11 20 R2 0 Null ... hình Tiến trình Trạng thái tiến trình Thơng tin quản lý tiến trình Q trình điều phối tiến trình Các thuật tốn điều phối Trần Hạnh Nhi ĐA NHIỆM VÀ ĐA CHƯƠNG ??? 1/13/2017 Vì muốn xử lý. .. trình tạo tiến trình con, hình thành tiến trình hệ thống Các tiến trình tạo thừa hưởng tài nguyên từ cha, hay cấp tài nguyên 15 KẾT THÚC TIẾN TRÌNH Tình : Tiến trình xử lý xong lệnh... lỗi chương trình Trần Hạnh Nhi 1/13/2017 Một tiến trình kết thúc tiến trình khác có ID (định danh) tiến trình Ví dụ: kill –-s SIGKILL 1234: huỷ tiến trình có ID 1234 16 MƠ HÌNH ĐA TIẾN TRÌNH