bài giảng hệ điều hành quản lý tiến trình

57 882 0
bài giảng hệ điều hành   quản lý tiến trình

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Chương 2: 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/28/2005 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/28/2005 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/28/2005 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/28/2005 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/28/2005 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/28/2005 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/28/2005 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/28/2005 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 Nhận R 10/28/2005 Nhận CPU Trả CPU blocked running ☺ Rs ☺ CPU Chờ R Rs CPU Trần Hạnh Nhi Khối quản lý tiến trình - PCB (Process Control Block) Định danh (Process ID) Trạng thái tiến trình Ngữ cảnh tiến trình pid State (State, details) Trạng thái CPU Bộ xử lý (cho máy nhiều CPU) Bộ nhớ Tài nguyên sử dụng/tạo lập Context (IP, Mem, Files…) Relatives Thông tin giao tiếp Tiến trình cha, tiến trình Độ ưu tiêên ( Dad, children) Scheduling statistic Thông tin thống kê 10/28/2005 Trần Hạnh Nhi Process control Block PCB 10 Ví dụ: Độ ưu tiên 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) 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) 10/28/2005 Trần Hạnh Nhi 42 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/28/2005 Trần Hạnh Nhi 43 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/28/2005 Trần Hạnh Nhi 44 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/28/2005 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 45 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/28/2005 Trần Hạnh Nhi 46 Shortest Job First (SJF) Ready List P2 (cần chu kỳ) Ng ắn P1 (cần chu kỳ) n hấ 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/28/2005 Trần Hạnh Nhi 47 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/28/2005 Trần Hạnh Nhi 48 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/28/2005 Trần Hạnh Nhi 49 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/28/2005 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 50 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/28/2005 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 51 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 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/28/2005 Trần Hạnh Nhi 17 P3 19 21 52 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[...]... tác trên tiến trình Tạo lập tiến trình Kết thúc tiến trình Thay đổi trạng thái tiến trình : Assign() Block() Awake() Suspend() Resume() 10/28/2005 Trần Hạnh Nhi 12 Tạo lập tiến trình Các tình huống : Khởi động batch job User logs on Kích hoạt 1 service (print ) Process gọi hàm tạo một tiến trình khác Các tiến trình có thể tạo tiến trình con, hình thành cây tiến trình trong hệ thống Các tiến trình mới... trình Thực hành môn Hệ Điều hành Mỗi nhóm 2 sinh viên là một tiến trình : Mỗi sinh viên là một tiểu trình Cùng làm bài => Hoạt động đồng hành Cóù bài thực hành chung => Tài nguyên chung Trao đổi với nhau 10/28/2005 Trần Hạnh Nhi 18 Khác biệt giữa Tiểu trình & Tiến trình Tiểu trình : 1 dòng xử lý Tiến trình : P1 1 không gian đòa chỉ 1 hoặc nhiều tiểu trình T1 Các tiến trình là độc lập Các tiểu trình trong... thúc tiến trình Tình huống : Tiến trình xử lý xong lệnh cuối cùng hay gọi exit () Kết thúc Batch job , Halt instruction User logs off Do lỗi chương trình Một tiến trình có thể kết thúc 1 tiến trình khác nếu có ID (đònh danh) của tiến trình kia Ví dụ: kill –-s SIGKILL 1234: huỷ tiến trình có ID là 1234 10/28/2005 Trần Hạnh Nhi 14 Mô hình đa tiến trình (MultiProcesses) Hệ thống là một tập các tiến trình. .. thời Các tiến trình độc lập với nhau => không có sự trao đổi thông tin hiển nhiên Excel winword Visual C CDplayer OS 10/28/2005 Trần Hạnh Nhi 15 Ví dụ mô hình đa tiến trình Giờ thi lý thuyết môn Hệ Điều hành Mỗi sinh viên là một tiến trình : Cùng làm bài => Hoạt động đồng hành Có bài thi , bút, giấy…riêng => Tài nguyên riêng biệt Độc lập => Không trao đổi (về nguyên tắc) Thực hành môn Hệ Điều hành 2... giác mỗi tiến trình sở hữu CPU riêng của mình ? Luân chuyển CPU giữa các tiến trình 2 thành phần đảm nhiệm vai trò điều phối: Scheduler chọn 1 tiến trình Dispatcher chuyển CPU cho tiến trình được chọn 10/28/2005 Trần Hạnh Nhi CPU 21 Các danh sách tiến trình Ready List Waiting Lists P1 P4 R1 P2 P7 R2 P3 P10 R3 10/28/2005 P5 P6 Trần Hạnh Nhi 22 Scheduler - Nhiệm vụ Ra quyết đònh chọn một tiến trình để... 27 34 Nhận xét FCFS Đơn giản Chòu đựng hiện tượng tích lũy thời gian chờ Tiến trình có thời gian xử lý ngắn đợi tiến trình có thời gian xử lý dài Ưu tiên tiến trình cpu-bounded Có thể xảy ra tình trạng độc chiếm CPU 10/28/2005 Trần Hạnh Nhi 35 Điều phối Round Robin (RR) Quantum/ Time slice Điều phối theo nguyên tắc FCFS Mỗi tiến trình chỉ sử dụng một lượng q cho mỗi lần sử dụng CPU Ready List C B A CPU... Fairness) : Tất cả các tiến trình đều có cơ hội nhận CPU 10/28/2005 Trần Hạnh Nhi 28 Thời điểm ra quyết đònh điều phối Điều phối độc quyền (non-preemptive scheduling): tiến trình được chọn có quyền độc chiếm CPU Các thời điểm kích hoạt Scheduler P cur kết thúc P cur : running ->blocked Điều phối không độc quyền (preemptive scheduling): tiến trình được chọn có thể bò cướp CPU bởi tiến trình có độ ưu tiên... một tiến trình để cấp phát CPU : Ứng cử viên = {Các tiến trình ready list} 0 tiến trình : CPU rảnh rỗi (idle)! 1 tiến trình : không cần suy nghó nhiều, đúng không ? >1 : chọn ai bây giờ ? Dựa vào các thuật toán điều phối Ready List 10/28/2005 P1 Trần Hạnh Nhi P4 P5 23 Dispatcher - Nhiệm vụ Nhiệm vụ của Dispatcher: Chuyển đổi ngữ cảnh Xét ví dụ Tiến trình A đang dùng CPU 1 chút thì bò HĐH thu hồi CPU... chọn tiến trình ? Tác vụ của Scheduler Mục tiêu ? Sử dụng CPU hiệu quả Đảm bảo tất cả các tiến trình đều tiến triển xử lý Tiêu chuẩn lựa chọn ? Tất cả các tiến trình đều như nhau ? Đề xuất một độ ưu tiên cho mỗi tiến trình ? Thời điểm lựa chọn ? (Thời điểm kích hoạt Scheduler()) 10/28/2005 Trần Hạnh Nhi 27 Mục tiêu điều phối Hiệu qủa (Efficiency) Thời gian Đáùp ứng (Response time) Hoàn tất (Turnaround... trong cùng 1 tiến trình không có sự bảo vệ lẫn nhau (cần thiết ? ) 10/28/2005 Trần Hạnh Nhi T2 T 3 int a; 19 Tiểu trình hạt nhân (Kernel thread) T1 T2 User mode System call Kernel mode Kernel Thread Khái niệm tiểu trình được xây dựng bên trong hạt nhân Đơn vò xử lý là tiểu trình Ví dụ : Windows 95/98/NT/2000 Solaris, Tru64 UNIX, BeOS, 10/28/2005 Linux Trần Hạnh Nhi 20 Phân chia CPU ? 1 CPU vật lý : làm . Trần Hạnh Nhi 1 Chương 2: 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/28/2005 Trần. Tiểu trình & Tiến trình  Tiểu trình : 1 dòng xử lý  Tiến trình :  1 không gian đòa chỉ  1 hoặc nhiều tiểu trình  Các tiến trình là độc lập  Các tiểu trình trong cùng 1 tiến trình. hình đa tiểu trình  Thực hành môn Hệ Điều hành  Mỗi nhóm 2 sinh viên là một tiến trình :  Mỗi sinh viên là một tiểu trình  Cùng làm bài => Hoạt động đồng hành  Cóù bài thực hành chung =>

Ngày đăng: 27/09/2015, 21:44

Từ khóa liên quan

Mục lục

  • Chương 2: Quản lý tiến trình

  • Khái niệm : Đa nhiệm và đa chương ???

  • Khái niệm : Đa nhiệm và đa chương ???

  • Đa nhiệm và đa chương

  • Xử lý đồng hành, những khó khăn ?

  • Giải pháp

  • Khái niệm tiến trình (Process)

  • Hai phần của tiến trình

  • Trạng thái tiến trình ?

  • Khối quản lý tiến trình - PCB (Process Control Block)

  • Ví dụ: Khối quản lý tiến trình của HĐH MachOS

  • Các thao tác trên tiến trình

  • Tạo lập tiến trình

  • Kết thúc tiến trình

  • Mô hình đa tiến trình (MultiProcesses)

  • Ví dụ mô hình đa tiến trình

  • Mô hình đa tiểu trình (MultiThreads)

  • Ví dụ Mô hình đa tiểu trình

  • Khác biệt giữa Tiểu trình & Tiến trình

  • Tiểu trình hạt nhân (Kernel thread)

Tài liệu cùng người dùng

Tài liệu liên quan