Bài giảng hệ điều hành chương 4 CPU scheduling

68 788 0
Bài giảng hệ điều hành chương 4 CPU scheduling

Đ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

Bài giảng hệ điều hành chương 4 CPU scheduling Bài giảng hệ điều hành chương 4 CPU scheduling Bài giảng hệ điều hành chương 4 CPU scheduling Bài giảng hệ điều hành chương 4 CPU scheduling Bài giảng hệ điều hành chương 4 CPU scheduling

ĐỊNH THỜI CPU Mục tiêu SV giải thích Tại cần phải định thời Các tiêu chí định thời Một số giải thuật định thời Định thời CPU Vấn đề cần giải Ví dụ: tối đa độ lợi CPU hệ thống multiprogramming / multitasking Trong nhớ có nhiều process đồng thời Khi process phải đợi (vd đợi hoàn tất yêu cầu I/O), hệ điều hành cấp phát CPU cho trình khác thay để CPU chạy không (idle) Vấn đề: lựa chọn process thực thi cho “hiệu quả” - tối ưu tiêu chí cho trước Cần có chiến lược định thời CPU Định thời CPU Phân loại trình Quá trình thực thi qua nhiều chu kỳ thực thi CPU đợi I/O CPU burst I/O burst CPU-bound process có thời gian sử dụng CPU nhiều thời gian sử dụng I/O I/O-bound process dùng phần lớn thời gian để đợi I/O Định thời CPU CPU-bound process: CPU burst dài Nhân ma trận I/O-bound process: CPU burst ngắn emacs emacs Định thời CPU Các trạng thái trình – nhắc lại Sơ đồ chuyển trạng thái trình – sơ đồ trạng thái new admit dispatch ready exit terminated running interrupt I/O or event completion I/O or event wait waiting Định thời CPU Mở rộng trạng thái trình Làm để điều chỉnh số lượng trình nhớ chính? Swap out / swap in trình (cần phân biệt với paging!) Cơ chế  Swap out: đem trình từ nhớ đĩa  Swap in: đem trình từ đĩa vào nhớ Chọn trình để swap out / swap in Chính sách Hai trạng thái cho trình  suspended ready  suspended blocked Định thời CPU Mở rộng trạng thái trình new suspended ready ready running suspended blocked blocked Định thời CPU terminated Phân loại hoạt động định thời (1/2) new Long-term scheduling suspended ready Medium-term scheduling ready Short-term scheduling running suspended blocked Medium-term scheduling blocked Định thời CPU terminated Phân loại hoạt động định thời (2/2) Định thời dài hạn (long-term scheduling): xác định process (new) đưa vào hàng đợi sẳn sàng Thường có batch system Định thời trung hạn (medium-term scheduling): xác định process đưa khỏi (swap out) hay đưa vào (swap in) nhớ Swap out / in tốn đến vài giây thời gian  chu kỳ định thời trung hạn vài phút Định thời ngắn hạn (short-term scheduling): xác định process thực thi Định thời CPU Định thời dài hạn Ảnh hưởng đến độ-đa-lập-trình (degree of multiprogramming: số lượng trình nhớ) Nếu nhiều process nhớ khả mọi process bị block có xu hướng giảm Sử dụng CPU hiệu Nhưng process phân chia khoảng thời gian sử dụng CPU nhỏ Thường có xu hướng đưa vào tập lẫn lộn CPU-bound process I/O-bound process Định thời CPU 10 Round Robin Nếu có n process hàng đợi ready, quantum time q, process cấp phát thời gian CPU theo khối có kích thước lớn q Sẽ process chờ lâu (n  1) q đơn vị thời gian head Ready queue end Tối đa n  PCBs RR sử dụng giả thiết ngầm tất process có tầm quan trọng ngang Không sử dụng RR muốn process khác có độ ưu tiên khác Định thời CPU 54 Round Robin: nhược điểm Các process dạng CPU-bound ‘ưu tiên’ Ví dụ:  Một I/O-bound process sử dụng CPU thời gian ngắn quantum time block để đợi I/O Và  Một CPU-bound process chạy hết time slice liên tục quay trở hàng đợi ready, thường trước I/O bound process block Định thời CPU 55 Multilevel Queue Scheduling (1/3) Được áp dụng trường hợp trình phân thành nhóm, ví dụ: interactive batch Hàng đợi ready chia thành nhiều hàng đợi riêng rẽ Ví dụ: foreground (cho công việc cần tương tác) background (cho công việc dạng bó) Không di chuyển trình sang hàng đợi ready khác Mỗi hàng đợi ready có giải thuật định thời riêng Ví dụ: foreground: dùng RR background: dùng FCFS Định thời CPU 56 Multilevel Queue Scheduling (2/3) Định thời Multilevel Queue Scheduling cần phải thực hàng đợi với Theo cách cố định (fixed priority scheduling) – ví dụ: phục vụ tất process foreground đến background  Process hàng đợi “cao” preempt process hàng đợi “thấp”  Có khả xảy trì hoãn vô hạn định (starvation) process hàng đợi có độ ưu tiên thấp Chia thời gian (time slice) – hàng đợi lấy khoảng sử dụng CPU định để định thời cho process Ví dụ:  80% cho foreground (dùng RR)  20% cho background (dùng FCFS) Định thời CPU 57 Multilevel Queue Scheduling (3/3) Ví dụ phân nhóm trình Độ ưu tiên cao System processes Interactive processes Batch processes Student processes Độ ưu tiên thấp Định thời CPU 58 Multilevel Feedback Queue (1/3) Trong hệ thống sử dụng Multilevel Feedback Queue, định thời di chuyển process ready queue tùy theo đặc tính quan sát Ví dụ: Nếu process sử dụng CPU lâu, bị di chuyển sang hàng đợi có độ ưu tiên thấp Nếu process chờ lâu hàng đợi có độ ưu tiên thấp, di chuyển lên hàng đợi có độ ưu tiên cao (aging, giúp tránh starvation) Ví dụ: Windows NT/XP/Vista Định thời CPU 59 Multilevel Feedback Queue (2/3) Ví dụ: Có hàng đợi Q0 , dùng RR với q = ms Q1 , dùng RR với q = 16 ms Q2 , dùng FCFS Giải thuật Process vào hàng đợi Q0 Khi đến lượt, process quantum ms Nếu không trả CPU vòng ms, process đưa xuống cuối hàng đợi Q1 Tại Q1 , process cho quantum 16 ms Nếu không trả CPU trước hết quantum bị chuyển xuống Q2 Công việc hàng đợi “cao” preempt công việc hàng đợi “thấp” Định thời CPU 60 Multilevel Feedback Queue (3/3) Multilevel Feedback Queue xác định thông số Có hàng đợi? Với queue sử dụng giải thuật định thời nào? Khi thăng cấp process? Khi giáng cấp process? Định thời CPU 61 Chính sách chế (1/2) Một nguyên lý thiết kế hệ điều hành: Tách biệt sách (policy) chế (mechanism) Chính sách Lược đồ định cần phải làm (ví dụ để tối ưu tiêu chí đó) Cơ chế Công cụ để thực sách Định thời CPU 62 Chính sách chế (2/2) Định thời trình Chính sách  Khi định thời trình?  Quá trình chạy? Cơ chế  Làm để chuyển ngữ cảnh? Dispatcher Ví dụ: Chính sách: FCFS Cơ chế: dispatcher Ưu điểm: ví dụ Thay đổi loại tải công việc (workload) cần thay đổi sách Thay đổi HW platform cần thay đổi dispatcher Định thời CPU 63 Tổng kết Sự thực thi process Bộ định thời chọn process từ hàng đợi ready Dispatcher thực switching Các tiêu chí định thời (thường xung đột nhau) Độ lợi CPU, thời gian chờ, thời gian đáp ứng, thông năng,… Các giải thuật định thời FCFS, SJF, Priority, RR, Multilevel Feedback Queue Định thời CPU 64 Bài tập Hệ thống đa chương gồm có trình A & B hệ thống thực tác vụ sau: - Nạp A vào nhớ 10s, sau trình A thực thao tác tính toán 5s, phút để thực in kết - Nạp B vào nhớ 15s, B thực tính toán 20s, 62 s để in Biết trình A nạp vào nhớ Hãy tính tỷ lệ % thời gian sử dụng đĩa, CPU máy in Định thời CPU 65 Bài tập Process Burst Time P1 10 P2 29 P3 P4 P5 12 Tất đến thời điểm Xét giải thuật FCFS, SJF, RR với quantum time = 10 Giải thuật cho thời gian đợi trung bình nhỏ nhất? thông cao nhất? thời gian quay vòng trung bình process nhỏ nhất? Định thời CPU 66 Bài tập Có trình A, B,C thực tác vụ theo thứ tự sau: thực tính toán, yêu cầu I/O lặp lại Thời gian lần thực thi A,B,C 10ms, 10ms, 45ms Thời gian lần thực tác vụ I/O trình A,B,C 20ms  Quan sát sự thực thi trình 150ms tính độ lợi sử dụng CPU với hai giải thuật Round Robin (quantum = 20ms) FCFS Biết thứ tự xuất hàng đợi ready A,B,C Định thời CPU 67 Bài tập Process Burst Time Arrival time Priority P1 10 P2 29 2 P3 P4 3 P5 12 (cao nhat) Xét giải thuật FCFS, SJF, SRTF, preemptive/non-preemptive Priority, RR với quantum time = 10 Định thời CPU 68 [...]... interrupt) Lời gọi hệ thống (operating system call) Signal Chương này sẽ tập trung vào định thời ngắn hạn Định thời CPU 14 Nội dung cần quan tâm Định thời trên hệ thống có một processor (uniprocessor scheduling) : quyết định việc sử dụng (một) CPU cho một tập các process trong hệ thống Tiêu chí nào? Định thời CPU 15 Tiêu chí định thời (1 /4) Độ lợi CPU (CPU utilization) Khoảng thời gian CPU bận tính toán... tiếp theo của process Giải pháp? Định thời CPU 35 Shortest Job First (2/3) Process Thời điểm đến Burst time (ms) P1 0,0 7 P2 2,0 4 P3 4, 0 1 P4 5,0 4 Giản đồ Gantt khi định thời theo SJF P1 0 3 P3 7 P2 8 P4 12 16 Thời gian đợi trung bình = (0 + 6 + 3 + 7) /4 = 4 Định thời CPU 36 ... quay vòng (turnaround time) Thời gian để một process hoàn tất, kể từ lúc vào hệ thống (submission) đến lúc kết thúc (termination) Là một trị đặc trưng cần quan tâm đối với các process thuộc dạng CPU- bound Thời gian quay vòng trung bình (average turnaround time) Định thời CPU 18 Tiêu chí định thời (4/ 4) Độ lợi CPU Tối đa hóa – giữ CPU càng bận tính toán cho ứng dụng càng tốt Thông năng – số lượng process... P2 24 P3 27 30 Thời gian đợi cho P1 = 0, P2 = 24, P3 = 27 Thời gian đợi trung bình: (0 + 24 + 27) / 3 = 17 Định thời CPU 31 First Come First Served (4/ 5) Giả sử các process đến theo thứ tự: P2 , P3 , P1 Giản đồ Gantt cho việc định thời là: P2 0 P3 3 P1 6 30 Thời gian đợi của P1 = 6, P2 = 0, P3 = 3 Thời gian đợi trung bình: (6 + 0 + 3) / 3 = 3  Tốt hơn rất nhiều so với trường hợp trước Định thời CPU. .. process có CPU burst ngắn vì quá trình phải chờ trong thời gian dài (so với thời gian mà nó cần phục vụ) thì mới được sử dụng CPU Điều này đồng nghĩa với việc FCFS ‘ưu tiên’ các process thuộc dạng CPU bound Câu hỏi: Liệu có xảy ra trường hợp trì hoãn vô hạn định (starvation hay indefinite blocking) với giải thuật FCFS? FCFS thường được sử dụng trong các hệ thống bó (batch system) Định thời CPU 33 Ví... phục vụ theo kiểu FCFS (!) Định thời CPU 34 Shortest Job First (SJF) (1/3) Đối với mỗi process, cần biết độ dài của CPU burst Hàm lựa chọn: chọn process có độ dài CPU burst nhỏ nhất Chế độ quyết định: non-preemptive Chứng minh được: SJF là tối ưu trong việc giảm thời gian đợi trung bình Vấn đề: Cần phải ước lượng CPU burst tiếp theo của process Giải pháp? Định thời CPU 35 Shortest Job First (2/3) Process... thời CPU 21 Tiêu chí định thời từ các góc nhìn (2/2) Hướng đến hệ thống (system-oriented) Độ lợi CPU Công bằng (fairness) Thông năng: số process hoàn tất trong một đơn vị thời gian Định thời CPU 22 Hai thành phần của chiến lược định thời (1/2) Hàm lựa chọn (selection function) Xác định process nào trong ready queue sẽ được thực thi tiếp theo Thường theo các tiêu chí như w = tổng thời gian đợi trong hệ. ..Định thời trung hạn Đôi khi hệ điều hành (như time-sharing system) có thêm medium-term scheduling Medium-term scheduler quyết định việc đưa process (không phải process ở trạng thái new)  từ bộ nhớ chính ra đĩa (swap out) hay  từ đĩa vào bộ nhớ chính (swap in) memory memory Định thời CPU 11 Định thời trung hạn Phụ thuộc vào yêu cầu quản lý việc đa-lập-trình... thời CPU 23 Hai thành phần của chiến lược định thời (2/2) Chế độ quyết định (decision mode) Xác định thời điểm hàm lựa chọn được thực thi Hai chế độ quyết định Non-preemptive  Một process sẽ ở trạng thái running cho đến khi nó bị block hoặc nó kết thúc Preemptive  Process đang thực thi có thể bị ngắt và chuyển về trạng thái ready  Tránh trường hợp một process độc chiếm CPU Định thời CPU 24 Thời... Lời gọi hệ thống của quá trình được thực thi đến khi xong (trở về user space) hoặc block from Isaac POS(0230A) Định thời CPU 27 Non-preemption và preemption (2’/2) (tt) Preemptive kernel  Có thể preempt quá trình khi kernel đang thực thi một lời gọi hệ thống của nó  Vấn đề: giữ nhất quán các dữ liệu trong kernel (ví dụ các hàng đợi I/O) Linux  Non-preemptive  Preemptive kernel: Linux 2 .4 kernel:

Ngày đăng: 07/09/2016, 16:44

Từ khóa liên quan

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

Tài liệu liên quan