Bài giảng Hệ điều hành - Chương 2: Quản lý tiến trình (Phần 2) - Ngô Hữu Dũng

pdf 45 trang ngocly 1750
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Hệ điều hành - Chương 2: Quản lý tiến trình (Phần 2) - Ngô Hữu Dũng", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_he_dieu_hanh_chuong_2_quan_ly_tien_trinh_phan_2_ng.pdf

Nội dung text: Bài giảng Hệ điều hành - Chương 2: Quản lý tiến trình (Phần 2) - Ngô Hữu Dũng

  1. HỆ ĐIỀU HÀNH (OPERATING SYSTEM CONCEPTS) Wiley - Operating System Concepts(Silberschatz).9th
  2. Giới thiệu môn học  Mục tiêu môn học  Vai trò của HĐH  Nguyên lý hoạt động của HĐH đa nhiệm  Nội dung  Phần 1: Tổng quan (Overview)  Phần 2: Quản lý tiến trình (Process Management)  Phần 3: Quản lý bộ nhớ (Memory Management)  Phần 4: Quản lý I/O (I/O Management)  Phần 5: Quản lý hệ thống file (Storage Management) 1.2
  3. Process Management CHƯƠNG 2: QUẢN LÝ TIẾN TRÌNH – P2 ĐIỀU PHỐI TIẾN TRÌNH 1.3
  4. Là gì? Tại sao?  Điều phối tiến trình là gì?  Tại sao? Đầu tiên là để chia sẻ tài nguyên tốn kém – đa chương (multiprogramming) Ngày nay có thể thực thi nhiều tác vụ cùng lúc vì processor rất mạnh 1.4
  5. Multiprogramming và Time-sharing  Đa chương (multiprogramming) cho phép tối ưu hiệu quả CPU  Chia sẻ thời gian (time-sharing) hay đa nhiệm (multitasking)  Nhiều công việc cùng được thực hiện thông qua cơ chế chuyển đổi của CPU  thời gian mỗi lần chuyển đổi diễn ra rất nhanh. 1.5
  6. Giả thiết  Gỉa thiết:  Chỉ có 1 CPU vật lý, và tại một thời điểm CPU chỉ xử lý 1 lệnh  Nhiều công việc tranh dành CPU  CPU là tài nguyên khan hiếm  Các công việc là độc lập và tranh giành tài nguyên lẫn nhau (giả thiết này không thật sự đúng trong tất cả các hệ thống, ngữ cảnh)  Người điều phối làm trung gian giữa các công việc để sao cho tối ưu hóa việc thực thi của hệ thống 1.6
  7. Ví dụ đa chương trình Process A 1 sec start idle; input idle; input stop Process B start idle; input idle; input stop Time = 10 seconds 1.7
  8. Ví dụ đa chương trình (tt) Process A Process B start B start idle; input idle; input stop A idle; input idle; input stop B Tổng thời gian = 20 giây Hiệu suất = 2 cv trong 20 giây = 0.1 cv/giây Tg chờ trung bình = (0+10)/2 = 5 giây 1.8
  9. Ví dụ đa chương trình (tt) Process A start idle; input idle; input stop A context switch context switch to B to A Process B idle; input idle; input stop B Hiệu suất = 2 cv 11 giây = 0.18 cv/giây Tg chờ trung bình = (0+1)/2 = 0.5 giây 1.9
  10. Điều phối tiến trình  Nhu cầu thực thi nhiều tiến trình đồng thời trong các hệ thống Multiprogramming và Time-sharing  Chức năng điều phối tiến trình được thực hiện bởi :  Bộ điều phối –scheduler : sử dụng một giải thuật điều phối thích hợp  Bộ phân phối – dispatcher : chuyển đổi ngữ cảnh và chuyển CPU cho tiến trình được chọn. 1.10
  11. Điều phối được thực hiện khi nào ?  Bộ điều phối cần ra quyết định vào thời điểm :  Khi một tiến trình kết thúc hay chuyển sang trạng thái blocked (chờ I/O , ) => chọn tiến trình nào trong hàng đợi ready ?  Một ngắt I/O xuất hiện từ một thiết bị I/O báo đã hoàn tất  Ngắt định kỳ xuất hiện từ bộ đếm thời gian 1.11
  12. Phân loại lập lịch Chúng ta quan tâm chính đến short-term scheduling 1.12
  13. Chúng ta cần tối ưu hóa những gì? Phần hệ thống: Tận dụng processor: phần trăm sử dụng processor Hiệu suất: số tiến trình hoàn thành trên một đơn vị thời gian Phần người dùng: Turnaround time: khoảng thời gian giữa bắt đầu cv và kết thúc cv (gồm thời gian chờ). Cho cv theo lô, tuần tự. Response time: cho những cv tương tác, thời gian từ khi gửi yêu cầu cho đến khi nhận được phản hồi. Deadlines: khi thời hạn thực thi của tiến trình được xác định, thì phần trăm hoàn thành đúng thời hạn phải được quan tâm. 1.13
  14. Mục tiêu điều phối  Đặc điểm của tiến trình  Tính hướng nhập/xuất hay hướng xử lý  Tiến trình tương tác user hay xử lý theo lô  Độ ưu tiên của tiến trình  Các yếu tố đánh giá 1 chiến lược điều phối :  Phù hợp đặc điểm của tiến trình  Tính công bằng , hiệu quả 1.14
  15. Mục tiêu điều phối  Mục tiêu điều phối:  Công bằng  Không có tiến trình nào phải chờ vô hạn  Tối đa thời gian sử dụng CPU (efficiency)  Thông lượng tối đa (throughput)  tối đa số công việc được xử lý trong 1 đơn vị thời gian  Cực tiểu thời gian hoàn thành (turnaround time)  Là tổng thời gian chờ trong Ready List + thời gian thực thi CPU + thời gian thực hiện I/O  Cực tiểu thời gian chờ (waiting time) trong Ready List  Cực tiểu thời gian đáp ứng (response time )  Đảm bảo tính ưu tiên  1.15
  16. Thiết kế Hai chiều Chọn lựa Ready job nào sẽ được thực thi kế tiếp? Preemption preemptive: cv đang thực thi có thể bị ngắt và chuyển vào trạng thái Ready Non-preemptive: một khi tiến trình ở trong trạng thái Running, nó sẽ tiếp tục thực thi cho đến khi kết thúc hoặc bị block vì I/O hay các dịch vụ của hệ thống 1.16
  17. Sơ đồ hàng đợi Vào ready queue CPU Thoát Disk 1 disk queue Disk 2 Network network queue I/O other I/O queue 1.17
  18. Mô hình hàng đợi Vòng tròn biểu diễn servers Hình chữ nhật biểu diễn hàng đợi (queues) Công việc đến và rời khỏi hệ thống Queuing theory(lý thuyết hàng đợi) giúp chúng ta dự đoán Chiều dài trung bình của hàng đợi Số công việc so với thời gian được phục vụ 1.18
  19. Đặc tính công việc CPU I/O-bound jobs CV liên tục truy suất I/O Ít dùng đến CPU CPU-bound jobs CV truy suất I/O rất ít Dùng CPU nhiều Disk 1.19
  20. Lập lịch CPU (Short-Term) Chọn giữa các tiến trình sẳn sàng trong bộ nhớ, cấp một CPU cho một tiến trình nào đó. Việc lập lịch CPU được sử dụng khi một tiến trình: 1. Chuyển từ trạng thái running sang waiting. 2. Chuyển từ trạng thái running sang ready. 3. Chuyển từ waiting sang ready. 4. Kết thúc. Lập lịch 1 và 4 là nonpreemptive. Các lập lịch còn lại là preemptive. 1.20
  21. Điều phối Bộ điều phối trao điều khiển CPU cho tiến trình được chọn bởi lập lịch short-term; quá trình này gồm: switching context Chuyển qua user mode Nhảy tới vị trí thích hợp trong chương trình để bắt đầu thực thi nó Độ trễ điều phối – thời gian để bộ điều phối dừng tiến trình này và bắt đầu một tiến trình kia. 1.21
  22. Khảo sát các chiến lược điều phối  FIFO hay FCFS ( first come first served )  Round Robin ( phân phối xoay vòng )  Điều phối với độ ưu tiên  SJF (Shortest-job-first )  Chiến lược điều phối với nhiều mức độ ưu tiên 1.22
  23. Lập lịch FIFO – First In First Out  Tiến trình nào vào Ready list trước được cấp CPU trước  CPU được giải phóng chỉ khi  Tiến trình kết thúc xử lý  Khi có một yêu cầu I/O 1.23
  24. FIFO Tiến trình Thời điểm vào RL Thời gian xử lý P1 0 24 P2 1 3 P3 2 3  Thứ tự cấp phát CPU: P1, P2, P3 Gantt chart của lập lịch như sau: P1 P2 P3 0 24 27 30  Thời gian chờ P1=0, P2=24-1, P3=27-2  Thời gian chờ trung bình: (0+23+25)/3=16miliseconds 1.24
  25. FIFO (tt.) Tiến trình Thời điểm vào RL P1 2 P2 0 Giả sử tiến trình đến theo thứ tự P3 1 P2 , P3 , P1 . Gantt chart của lập lịch như sau: P2 P3 P1 Tiến trình 0 3 6 30 Thời gian chờ P1 = 6-2; P2 = 0; P3 = 3-1 Trung bình thời gian chờ: (4 + 0 + 2)/3 = 2 Tốt hơn nhiều so với trường hợp trước. Convoy effect tiến trình ngắn có thể nằm sau tiến trình dài 1.25
  26. FIFO (tt.)  Nhận xét  Thời gian chờ trung bình: Phụ thuộc vào thời gian xử lý của các process Phụ thuộc vào thứ tự của các process trong RL  Là giải thuật điều phối theo nguyên tắc độc quyền Không phù hợp với hệ time-sharing 1.26
  27. Round Robin (Phân phối xoay vòng)  Các process được xử lý xoay vòng  Một khoảng thời gian sử dụng CPU như nhau gọi là time quantum  Hết thời gian quantum dành cho process, HĐH thu hồi CPU và cấp cho process kế tiếp trong RL  Process được đưa trở lại vào RL chờ đến lượt 1.27
  28. Round Robin (RR)  Nếu có n tiến trình trong hàng đợi ready và time quantum là q, thì mỗi tiến trình sẽ nhận 1/n thời gian sử dụng CPU. Không tiểu trình nào phải đợi lâu hơn (n-1)q đơn vị thời gian.  Độ hiệu quả q lớn FIFO q nhỏ q phải đủ lớn so với thời gian context switch, nếu không thì tổng chi phí sẽ rất cao. 1.28
  29. Round Robin (Phân phối xoay vòng) Tiến trình Thời điểm vào RL Thời gian xử lý P1 0 24 P2 1 3 P3 2 3  Nếu time quantum = 4 miliseconds  Thứ tự cấp phát CPU như sau: P1 P2 P3 P1 P1 P1 P1 P1 0 4 7 10 14 18 22 26 30  Thời gian chờ p1=0+6, p2=4-1, p3=7-2  Thời gian chờ trung bình: (0+6+3+5)/3=4.66miliseconds 1.29
  30. Round Robin (Phân phối xoay vòng)  CPU được giải phóng khi  Hết thời gian quantum  Tiến trình kết thúc  Tiến trình bị khóa  Nhận xét:  Là giải thuật điều phối không độc quyền loại bỏ hiện tượng độc chiếm CPU  Độ dài quantum thế nào là hợp lý?? 1.30
  31. Điều phối với độ ưu tiên  Một độ ưu tiên (integer) được gán vào mỗi tiến trình  CPU được cấp cho tiến trình có độ ưu tiên cao nhất (số nhỏ nhất  độ ưu tiên cao nhất).  Preemptive (không độc quyền)  Non-preemptive (độc quyền) 1.31
  32. Điều phối với độ ưu tiên 1.32
  33. Điều phối với độ ưu tiên 1.33
  34. Điều phối với độ ưu tiên  Nhận xét:  Vấn đề  Starvation – các tiến trình độ ưu tiên thấp có thể không bao giờ thực thi được.  Giải pháp  Aging – tiến trình sẽ tăng độ ưu tiên theo thời gian. (sống lâu lên lão làng )  SJF là một dạng điều phối theo độ ưu tiên (độ ưu tiên: dự đoán thời gian CPU burst kế tiếp). 1.34
  35. Lập lịch Shortest-Job-First (SJR)  Tùy thuộc vào thời gian sử dụng CPU của tiến trình. Sử dụng độ dài của thời gian này để lập lịch.  Hai lược đồ:  Non-preemptive – một khi CPU cấp cho một tiến trình nó không thể bị chiếm cho đến khi nó hoàn thành.  Preemptive – nếu một tiến trình mới vào mà thời gian cần dùng CPU ít hơn thời gian còn lại cần dùng CPU của tiến trình hiện hành. Lược đồ này gọi là Shortest-Remaining-Time-First (SRTF).  SJF là tối ưu – cho kết quả tốt nhất về trung bình thời gian chờ của một tập các tiến trình. 1.35
  36. SJF – Shortest Job First  Công việc ngắn nhất thực hiện trước 1.36
  37. SJF – Shortest Job First 1.37
  38. SJF – Shortest Job First 1.38
  39. SJF – Shortest Job First 1.39
  40. SJF – Shortest Job First 1.40
  41. Tóm tắt  Hệ multiprogramming và multitasking  Bộ điều phối (scheduler)  Chức năng  Tổ chức điều phối  Mục tiêu đặt ra cho chiến lược điều phối  Nguyên tắc điều phối độc quyền và không độc quyền  Các chiến lược điều phối : FCFS, RoundRobin, độ ưu tiên, SJF 1.42
  42. Tiến trình RL Thời gian dùng CPU P1 1 53 P2 2 17 P3 3 68 P4 4 24  FIFO  RR với Time Quantum = 20 1.43
  43. P1 P2 P3 P4 P1 P3 P4 P1 P3 P3 0 20 37 57 77 97 117 121 134 154 162 1.44