Bài giảng Hệ điều hành - Chương 4: Định thời CPU cung cấp cho người đọc các kiến thức: Các khái niệm cơ bản, chu kỳ CPU–I/O (CPU–I/O Burst), ví dụ về chu kỳ CPU–I/O, bộ định thời CPU, định thời trưng dụng và không trưng dụng,... Mời các bạn cùng tham khảo nội dung chi tiết.
CT107 Hệ Điều Hành Chương Định Thời CPU Giảng viên: Trần Cơng Án (tcan@cit.ctu.edu.vn) Bộ mơn Mạng máy tính & Truyền thông Khoa Công Nghệ Thông Tin & Truyền Thông Đại học Cần Thơ 2014 [CT107] Ch4 Định thời CPU Mục Tiêu Giới thiệu tác vụ định thời cho CPU (CPU scheduling) hệ điều hành đa chương, bao gồm: tiêu chí cho việc định thời CPU giải thuật định thời CPU tiêu chí để lựa chọn giải thuật định thời cho hệ thống TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch4 Định thời CPU [CT107] Ch4 Định thời CPU Nội Dung TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch4 Định thời CPU [CT107] Ch4 Định thời CPU Các khái niệm Các Khái Niệm Cơ Bản Định thời biểu CPU chức quan trọng HĐH đa chương Chức năng: phân bổ thời gian/thời điểm sử dụng CPU cho tiến trình hệ thống, nhằm: tăng hiệu (CPU utilisation) sử dụng CPU giảm thời gian đáp ứng (response time) hệ thống Ý tưởng bản: phân bố thời gian rãnh rỗi CPU (khi chờ đợi tiến trình thực thi thực thao tác nhập xuất) cho tiến trình khác hệ thống TS Trần Cơng Án (Khoa CNTT&TT) [CT107] Ch4 Định thời CPU [CT107] Ch4 Định thời CPU Các khái niệm Chu Kỳ CPU–I/O (CPU–I/O Burst) Chu kỳ CPU–I/O: Sự thực thi tiến trình bao gồm nhiều chu kỳ CPU–I/O Một chu kỳ CPU–I/O bao gồm chu thi CPU (CPU burst) chu kỳ chờ đợi vào/ra (I/O burst) Sự phân bổ sử dụng CPU: Chương trình hướng nhập xuất (I/O-bound) thường có nhiều chu kỳ CPU ngắn Chương trình hướng xử lý (CPU-bound) thường có nhiều chu kỳ CPU dài TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch4 Định thời CPU [CT107] Ch4 Định thời CPU Các khái niệm Ví Dụ Về Chu Kỳ CPU–I/O ••• load store add store read from file CPU burst wait for I/O I/O burst store increment index write to file CPU burst wait for I/O I/O burst load store add store read from file CPU burst wait for I/O I/O burst ••• TS Trần Cơng Án (Khoa CNTT&TT) [CT107] Ch4 Định thời CPU [CT107] Ch4 Định thời CPU Các khái niệm Ví Dụ Về Phân Bổ Sử Dụng CPU 160 140 frequency 120 100 80 60 40 20 TS Trần Công Án (Khoa CNTT&TT) 16 24 burst duration (milliseconds) [CT107] Ch4 Định thời CPU 32 40 [CT107] Ch4 Định thời CPU Các khái niệm Bộ Định Thời CPU (CPU Scheduler) Còn gọi định thời ngắn kỳ, chọn tiến trình hàng đợi sẵn sàng cấp phát CPU cho thực thi Quyết định định thời xảy tiến trình: chuyển từ trạng thái chạy sang trạng thái chờ đợi chuyển từ trạng thái chạy sang trạng thái sẵn sàng chuyển từ trạng thái chờ đợi sang trạng thái sẵn sàng kết thúc TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch4 Định thời CPU [CT107] Ch4 Định thời CPU Các khái niệm Định Thời Trưng Dụng & Không Trưng Dụng Định thời không trưng dụng (nonpreemptive scheduling): Tiến trình phân CPU có quyền sử dụng CPU đến sử dụng xong (k/thúc chuyển sang trạng thái chờ, trường hợp 4) Định thời trưng dụng (preemptive scheduling): Bộ định thời thu hồi CPU tiến trình lúc để phân cho tiến trình khác (trường hợp 3) Phức tạp định thời không trưng dụng phải giải quyết: cạnh tranh liệu tiến trình trưng dụng tiến trình thực thi chế độ kernel dàn xếp trưng dụng xử lý ngắt hệ thống TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch4 Định thời CPU [CT107] Ch4 Định thời CPU Các khái niệm Bộ Điều Phối (Dispatcher) Có nhiệm vụ thực thi việc trao quyền sử dụng CPU cho tiến trình cấp phát CPU định thời Bao gồm tác vụ: Chuyển ngữ cảnh Chuyển sang chế độ người dùng Nhảy tới vị trí thích hợp chương trình người dùng để khởi động lại chương trình Độ trễ điều phối (dispatcher latency): thời gian dispatcher cần để ngưng tiến trình khởi động tiến trình khác TS Trần Cơng Án (Khoa CNTT&TT) [CT107] Ch4 Định thời CPU 10 [CT107] Ch4 Định thời CPU Đánh giá giải thuật Cài đặt thực nghiệm (Implementation) Cài Đặt Thực Nghiệm Cài đặt giải thuật vào hệ điều hành thật với phương tiện đo lường Thực thi tiến trình đo lường hiệu giải thuật hệ thống thật Ưu điểm: Độ xác cao Khó khăn: Địi hỏi chi phí cao Người dùng phản ứng với thay đổi liên tục hệ thống TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch4 Định thời CPU 44 [CT107] Ch4 Định thời CPU Định thời số hệ điều hành Định Thời Trong Một Số HĐH Windows Linux Solaris TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch4 Định thời CPU 45 [CT107] Ch4 Định thời CPU Định thời số hệ điều hành Định thời Windows Định Thời Trong Windows Đơn vị cấp phát CPU HĐH luồng (thread) thay tiến trình HĐH Windows dùng giải thuật định thời dựa độ ưu tiên (32 mức) định mức thời gian (RR), sử dụng chiến lược trưng dụng Mỗi độ ưu tiên có hàng đợi riêng Một luồng chọn thực thi điều phối t/thi khi: bị trưng dụng luồng có mức ưu tiên cao hơn, kết thúc (terminate), hết định mức thời gian (time quantum), thực lời gọi I/O TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch4 Định thời CPU 46 [CT107] Ch4 Định thời CPU Định thời số hệ điều hành Định thời Windows Định Thời Trong Windows Độ nhóm ưu tiên luồng chia sau: realtime high above normal normal below normal idle priority time-critical 31 15 15 15 15 15 highest 26 15 12 10 above normal 25 14 11 normal 24 13 10 below normal 23 12 lowest 22 11 idle 16 1 1 Ngoài ra, số chế để nâng/hạ độ ưu tiên cho cá luồng sử dụng (tương tự ý tưởng g/thuật hàng đợi phản hồi đa cấp) TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch4 Định thời CPU 47 [CT107] Ch4 Định thời CPU Định thời số hệ điều hành Định thời Windows Chọn Lựa Tiến Trình Trong Windows Bộ định thời duyệt qua hàng đợi theo độ ưu tiên từ cao đến thấp Nếu tiến trình sẵn sàng, định thời khởi động tiến trình đặc biệt gọi idle process Độ ưu tiên t/trình bị trưng dụng bị thay đổi Nếu sử dụng hết time quantum: độ ưu tiên giảm, không mức “normal” Chuyển từ trạng thái chờ (waiting): độ ưu tiên tăng, mức độ tăng phụ thuộc vào t/trình chờ gì: đĩa – tăng nhiều, I/O – tăng TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch4 Định thời CPU 48 [CT107] Ch4 Định thời CPU Định thời số hệ điều hành Định thời Linux Định Thời Trong Linux Giải thuật định thời cho Linux từ kernel 2.6.23 giải thuật Completely Fair Scheduler (CFS), dựa ưu tiên có thay đổi Tiêu chí: Giải thuật định thời phải nhanh, O(1) ⇒ hỗ trợ tốt cho hệ SMP Cho hiệu tốt interactive processes Công (fairness) Tối ưu cho trường hợp thơng dụng hệ thống có đến t/trình, phải scale cho trường hợp có nhiều t/trình nhiều CPU Dùng k/niệm tác vụ (task) để tiến trình (process) luồng (thread) TS Trần Cơng Án (Khoa CNTT&TT) [CT107] Ch4 Định thời CPU 49 [CT107] Ch4 Định thời CPU Định thời số hệ điều hành Định thời Linux Định Thời Trong Linux Các t/vụ phân chia thành nhóm chính: default scheduling class real-time scheduling class Default scheduling class: định thời giải thuật CFS (trưng dụng), tỷ lệ sử dụng CPU tính dựa nhiều tham số t/vụ nice value (nicer thread, lower priority), virtual run time, Real-time scheduling class: t/vụ gán độ ưu tiên cố định dựa vào nice value luồng time quantum 200 ms 10 ms real-‐&me priority 99 100 139 lower higher TS Trần Công Án (Khoa CNTT&TT) normal [CT107] Ch4 Định thời CPU 50 [CT107] Ch4 Định thời CPU Định thời số hệ điều hành Định thời Linux Chọn Lựa Tiến Trình Trong Linux Bộ định thời trì hàng đợi: Active queue: chứa t/vụ sẵn sàng thực thi time slice Expired queue: chứa t/vụ sẵn sàng thực thi hết time slice Các t/vụ hàng đợi xếp dựa vào độ ưu tiên Bộ định thời lựa t/vụ có độ ưu tiên cao active queue Nếu t/vụ bị trưng dụng CPU, trở lại active queue với độ ưu tiên không đổi Nếu tác vụ hết time quantum, độ ưu tiên tính lại đưa vào expired queue Nếu active queue rỗng: swap(expired queue, active queue) TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch4 Định thời CPU 51 [CT107] Ch4 Định thời CPU Định thời số hệ điều hành Định thời Solaris Định Thời Trong Solaris Sử dụng định thời dựa độ ưu tiên Bộ định thời sử dụng hàng đợi: Time-sharing (TS), Interactive (IA), Real time (RT), System (SYS), Fair share (FSS), Fixed priority (FP) Mỗi hàng đợi có độ ưu tiên khác g/thuật định thời khác Độ ưu tiên luồng ảnh hưởng đến time slice dành cho luồng bị thay đổi (hàng đợi phản hồi đa cấp) Tính tương tác luồng (interactive/CPU-bound) ảnh hưởng đến độ ưu tiên Độ ưu tiên luồng có giá trị từ (lowest) đến 160 (highest) TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch4 Định thời CPU 52 [CT107] Ch4 Định thời CPU Định thời số hệ điều hành Định thời Solaris Định Thời Trong Solaris global priority highest scheduling order 169 interrupt threads first 160 159 ∗ Real-time class: độ ưu tiên cao đảm bảo t/gian đáp ứng kernel process phân vào h/đợi realtime (RT) threads ∗ System class: 100 99 kernel process phân vào h/đợi độ ưu tiên gán cố định system (SYS) threads 60 59 ∗ Time-sharing: độ ưu tiên thay đổi fair share (FSS) threads ∗ Fixed-priority: độ ưu tiên không thay đổi fixed priority (FX) threads ∗ Fair-share: chia sẻ CPU, không ưu tiên timeshare (TS) threads lowest interactive (IA) threads last TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch4 Định thời CPU 53 [CT107] Ch4 Định thời CPU Định thời số hệ điều hành Định thời Solaris Real-Time Scheduling Dùng giải thuật FCFS RR Sử dụng định thời trưng dụng: tiến trình ưu tiên cao trưng dụng CPU tiến trình ưu tiên thấp Có tiến trình vào hàng đợi TS Trần Cơng Án (Khoa CNTT&TT) [CT107] Ch4 Định thời CPU 54 [CT107] Ch4 Định thời CPU Định thời số hệ điều hành Định thời Solaris Time-Sharing Scheduling Sử dụng g/thuật hàng đợi phản hồi đa cấp, với độ ưu tiên thay đổi: Mỗi hàng đợi có độ ưu tiên khác Time slice phụ thuộc vào độ ưu tiên (higher priority, smaller time slice) Solaris sử dụng bảng điều phối để điều khiển việc định thời: Nếu luồng s/dụng hết time quantum (CPU-intensive process), độ ưu tiên giảm ⇒ tăng thơng lượng (throughput) Nếu luồng trở lại từ t/thái waiting (e.g chờ I/O), độ ưu tiên tăng ⇒ giảm t/gian đáp ứng (response time) Chiến lược định thời giúp interactive process (như quản lý giao diện đồ họa) có độ ưu tiên cao (giảm t/gian đáp ứng) TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch4 Định thời CPU 55 [CT107] Ch4 Định thời CPU Định thời số hệ điều hành Định thời Solaris Bảng Điều Phối (Solaris Dispatching Table) priority time quantum time quantum expired return from sleep 200 50 200 50 10 160 51 15 160 51 20 120 10 52 25 120 15 52 30 80 20 53 35 80 25 54 40 40 30 55 45 40 35 56 50 40 40 58 55 40 45 58 59 20 49 59 TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch4 Định thời CPU time quantum: t/gian cấp phát cho t/trình tương ứng với độ ưu tiên (tỷ lệ nghịch) time quantum expired: độ ưu tiên gán lại cho t/trình sau s/dụng hết time quantum return from sleep: độ ưu tiên gán cho t/trình trở từ t/thái waiting 56 [CT107] Ch4 Định thời CPU Tổng Kết Tổng Kết Sự thực thi t/trình: chu kỳ CPU–I/O (CPU–I/O burst) Bộ định thời (scheduler): chọn tiến trình từ hàng đợi sẵn sàng Bộ điều điều phối (dispatcher): thực switching Các tiêu chí định thời (có thể xung đột nhau): hiệu suất s/dụng CPU, thông lượng, t/gian xoay vòng, t/gian chờ đợi, t/gian đáp ứng Các giải thuật định thời: FCFS, SJF, Priority, Robin-round, Multilevel [feedback-queue] scheduling Định thời hệ thống đa xử lý (multi-processor): đối xứng, bất đối xứng Định thời thời gian thực, độ trễ điều phối (đọc thêm) Đánh giá g/thuật định thời: mơ hình xác định (deterministic), mơ hình hàng đợi (queuing), mô (simulation), cài đặt thực nghiệm (implementation) TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch4 Định thời CPU 57 ... định thời cho hệ thống TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch4 Định thời CPU [CT107] Ch4 Định thời CPU Nội Dung TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch4 Định thời CPU [CT107] Ch4 Định thời... Định thời số hệ điều hành Định Thời Trong Một Số HĐH Windows Linux Solaris TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch4 Định thời CPU 45 [CT107] Ch4 Định thời CPU Định thời số hệ điều hành Định... nối đuôi” (convoy effect) TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch4 Định thời CPU 16 [CT107] Ch4 Định thời CPU Các giải thuật định thời Shortest-job-first Shortest-Job-First (SJF) Ý tưởng bản: