Tài liệu tham khảo về giáo trình hệ điều hành máy tính dùng cho các bạn yêu tin học tham khảo...
Chương 4: Quản lý tiến trình 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 10/20/2007 Trần Hạnh Nhi Khái niệm : Đa nhiệm đa chương ??? Vì muốn xử lý đồng thời nhiều công việc máy tính ? Job CPU IO CPU IO CPU IO CPU IO CPU IO CPU CPU Job Job CPU Xử lý đồng thời để tăng hiệu suất sử dụng CPU 10/20/2007 Trần Hạnh Nhi Khái niệm : Đa nhiệm đa chương ??? Vì muốn xử lý đồng thời nhiều công việc máy tính ? 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 Xử lý đồng thời để tăng tốc độ xử lý 10/20/2007 Trần Hạnh Nhi CPU #2 y=c*d Đa nhiệm đa chương Multitasking (đa nhiệm) : cho phép nhiều tác vụ/ công việc xử lý đồng thời 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 hoá cách ? Xây dựng thuật toán để luân chuyển CPU chương trình ứng dụng 10/20/2007 Trần Hạnh Nhi Xử lý đồng hành, khó khăn ? - Tài nguyên giới hạn, ứng dụng “vô hạn” Excel Visual C++ CDplayer Winword - Nhiều hoạt động đan xen ??? Phân chia tài nguyên ? ??? Chia sẻ tài nguyên ? HĐH : “ Giải nhiều công việc đồng thời, đâu ! “ 10/20/2007 Trần Hạnh Nhi ??? Bảo vệ? Giải pháp -“Chia để trị”, cô lập hoạt động Winword - Mỗi thời điểm giải yêu cầu CDPlayer Excel - o hoá tài nguyên : biến thành nhiều Visual C ++ HĐH : “ Ai có phần đến lượt mà ! ” 10/20/2007 Trần Hạnh Nhi Giải pháp CPU 10/20/2007 Trần Hạnh Nhi Khái niệm tiến trình (Process) Tiến trình chương trình trình thực Mỗi tiến trình sở hữu 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] 10/20/2007 Trần Hạnh Nhi Hai phần tiến trình Dòng xử lý P1 P2 int a; int a; Không gian địa 10/20/2007 Trần Hạnh Nhi Trạng thái tiến trình ? Tại thời điểm, tiến trình trạng thái sau: ready ☺ Rs CPU Nhaän R 10/20/2007 Nhaän CPU Trả CPU blocked running ☺ Rs ☺ CPU Chờ R Rs CPU Trần Hạnh Nhi 10 Biểu đồ phân bố độ ưu tiên WinNT realtime time-critical 31 highest (+2) above normal (+1) normal (0) below normal (-1) lowest (-2) realtime realtime 24 levels 16-31 realtime idle dynamic time-critical high 16 15 13 dynamic normal idle levels 1-15 dynamic idle system idle 10/20/2007 Trần Hạnh Nhi 44 Nguyên tắc điều phối Độc quyền 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 Không độc quyền 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 10/20/2007 Trần Hạnh Nhi 45 Minh họa độ ưu tiên (khôngđộc quyền) P TRL Priority CPU burst P TT WT P1 24 P1 30 0+(7-1) P2 P2 4-1 P3 P3 7-2 4-2 AvgWT = (6+0+2)/3 = 2.66 P1 P2 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 0:02 P3 vào (độ ưu tiên thấp P2) P3 không 10/20/2007 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 dành quyền Trần dùng CPU Hạnh Nhi 46 Nhận xét Cách tính độ ưu tiên ? Hệ thống gán : CPU times… starvation Người dùng gán tường minh Tính chất độ ưu tiên : Tónh Động Số phận tiến trình có độ ưu tiên thấp ? Aging : tăng độ ưu tiên Chờ lâu, lâu, lâu cho tiến trình chờ lâu hệ thống 10/20/2007 Trần Hạnh Nhi 47 Shortest Job First (SJF) Ready List P2 (cần chu kỳ) Ng ắn P1 (cần chu kỳ) nhấ t CPU 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 10/20/2007 Trần Hạnh Nhi 48 Minh họa SJF (độc quyền)(1) P TarriveRL CPU burst P TT WT P1 24 P1 24 P2 P2 27 24-1 P3 P3 30 27-2 AvgWT = (23+25)/3 = 16 P1 P2 24 0:00 P1 vào, P1 dùng CPU 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 10/20/2007 Trần Hạnh Nhi 49 Minh họa SJF (độc quyền)(2) P TarriveRL CPU burst P TT WT P1 24 P1 24 P2 P2 29 26-1 P3 P3 26 24-2 AvgWT = (24+22)/3 = 15.33 P1 P3 24 0:00 P1 vào, P1 dùng CPU 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 10/20/2007 Trần Hạnh Nhi 50 Minh họa SJF (khôngđộc quyền) (1) P TarriveRL CPU burst P TT WT P1 24 P1 30 0+(7-1) P2 P2 4-1 P3 P3 7-2 4-2 AvgWT = (6+0+2)/3 = 2.66 P1 P2 P3 P1 30 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 10/20/2007 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 Trần Hạnh Nhi 51 Minh họa SJF (khôngđộc quyền) (2) P TarriveRL CPU burst P TT WT P1 24 P1 33 0+(10-1) P2 P2 P3 P3 10 6-3 AvgWT = (9+0+3)/3 = P1 P2 P2 P3 P1 10 33 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 10/20/2007 quyền dùng CPU 0:6 P2 kết thúc, P3 dùng CPU 0:9 P3 dừng, P1 dùng CPU 0:33 P1 dừng Trần Hạnh Nhi 52 Minh họa SJF (nhiều chu kỳ CPU) P TarriveRL 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 P3 10 P2 13 P2 R1 P3 14 P1 15 P1 13 P3 17 21 P2 15 19 R2 P1 10/20/2007 Trần Hạnh Nhi 17 P3 19 21 53 22 Nhận xét SJF Tối ưu thời gian chờ Chứng minh ? Không khả thi Làm biết CPU burst ? P1 P2 P3 a b c AvgWT = (3a+2b+c) Min AvgWT ? a