Khái niệm lập lịch cho CPU• Lập lịch cho CPU là tổ chức một hàng đợi các tiến trình sẵn sàng để phân phối giờ CPU cho chúng dựa trên độ ưu tiên của các tiến trình sao cho hiệu suất sử dụ
Trang 1Chương III
LẬP LỊCH CHO CPU
Trang 2Mục tiêu
• Giúp sinh viên nắm được tầm quan trọng của “giờ CPU”, các phương pháp, các thuật toán lập lịch ccho CPU của hệ điều hành nhằm đáp ứng yêu cầu phục vụ của các tiến trình
• Biết được công cụ để CPU có thể điều khiển hoạt động của các tiến trình một cách chính xác
Trang 3Nội dung
• Các khái niệm về giờ CPU
• Các thuật toán lập lịch cho CPU
• Khái niệm về ngắt và phương pháp xử lý ngắt của hệ điều hành
Trang 4I CÁC KHÁI NIỆM CƠ BẢN
I.1 Khái niệm giờ CPU
Thời gian mà CPU phục vụ cho tiến trình gọi là giờ CPU
Mỗi thời điểm nhất định, chỉ có một tiến trình được phân phối giờ CPU để hoạt động
Trang 5I.2 Khái niệm lập lịch cho CPU
• Hệ thống thường tổ chức các từ trạng thái
để ghi nhận tình trạng sử dụng tài nguyên
và trạng thái tiến trình Các từ trạng thái được tổ chức như sau:
Trang 6I.2 Khái niệm lập lịch cho CPU
• Lập lịch cho CPU là tổ chức một hàng đợi các tiến trình sẵn sàng để phân phối giờ CPU cho chúng dựa trên độ ưu tiên của các tiến trình sao cho hiệu suất sử dụng CPU là tối ưu nhất
• Mỗi tiến trình ở trạng thái sẵn sàng được gắn một thứ tự ưu tiên dựa vào các yếu tố sau: Thời điểm hình thành tiến trình, thời gian thực hiện tiến trình, thời gian kết thúc tiến trình
Trang 8– Thời gian tiến trình chờ được xử lý:
– Thời gian đáp ứng: Tính từ khi có yêu cầu giờ CPU đến khi được đáp ứng.
Trang 9II Các Thuật toán lập lịch
II.1 First Come First Served (FCFS)
• Mọi tiến trình được phục vụ theo trình tự xuất hiện cho đến khí nó kết thúc hoặc bị ngắt.
• Ưu điểm: Giờ CPU không bị phân phối lại, chi phí
tổ chức thực hiện thấp.
• Nhược điểm: Thời gian trung bình chờ phục vụ của các tiến trình là như nhau Do đó: Thời gian trung bình sẽ tăng vô hạn, độ phát tán thời gian thực hiện tiến trình tăng thì TG chờ trung bình tăng, khi có tiến trình dài tiến trình khác phải chờ lâu hơn.
Trang 10Ví dụ
Thời gian trung bình phải chờ là 51/3=17
Trang 11II.2 Shortest Job First (SJF)
• Tiến trình nào tổng thời gian thực hiện ngắn hơn sẽ được phụ vụ trước
TG chờ trung bình là 9/3=3
Trang 12II.2 Shortest Job First (SJF)
• Ưu điểm: TG chờ TB ngắn, nhanh chóng loại bỏ các tiến trình ngắn-> số lượng tiến trình trong hàng đợi ít
• Nhược điểm: Phải thực hiện phân phối lại giờ CPU khi có một tiến trình mới xuất hiện ngắn hơn tiến trình dang thực hiện
Trang 13II.3 Shortest Remain Time (SRT)
• Dựa vào thời gian để thực hiện nốt tiến trình, TG này=Tổng thời gian thực hiện tiến trình – TG đã thực hiện TG thực hiện nốt tiến trình ngắn nhất sẽ dược phục vụ trước
• Do vậy phải thường xuyên cập nhập thời gian thực hiện tiến trình và phân bổ lại giờ CPU
Trang 14II.4 Round Robin (RR)
• Mỗi tiến trình được phân bố một lượng thời gian thực hiện (time quantum) Sau khoảng thời gian
đó, nếu tiến trình chưa kết thúc thì nó được chuyển về cuối hàng đợi.
• Hàng đợi của các tiến trình được tổ chức theo vòng tròn và các tiến trình luôn đảm bảo được phục vụ Nếu tiến trình mới được hình thành, nó được đưa vào hàng đợi ở vị trí được phục vụ ngay Các tiến trình đều có đồ ưu tiên như nhau.
Trang 15II.4 Round Robin (RR)
• Ưu điểm: Cho phép hệ thống ưu tiên những tiến trình ngắn nhưng không gây tổn hại cho các tiến trình dài
• Nhược điểm: Thường xuyên phải phân phối lại giờ CPU, do vậy thời gian chờ trung bình lớn
Trang 16Ví dụ
TG chờ TB=17/3=5,66
Trang 17II.5 Multi Level Queue (MLQ)
• Dựa vào thông tin do người sử dụng cung cấp và kết quả phân tích của hệ thống để phân chia độ ưu tiên cho các tiến trình
Trang 18II.5 Multi Level Queue (MLQ)
• Trên thực tế, cách tổ chức 2 hàng đợi được sử dụng phổ biến:
– Một cho các tiến trình trao đổi vào ra nhiều
– Một cho các tiến trình thực hiện tính toán nhiều.
• Các tiến trình ở hàng đợi thứ nhất được
ưu tiên cao hơn vì phải chờ kết quả I/O nêu không sử dụng hết hiệu suất giờ CPU
Trang 19II.6 Multi Level Feedback
Queues(MLFQ)
• Hệ thống tổ chức nhiều hàng đợi Mỗi hàng có độ ưu tiên và cách thức tổ chức thực hiện khác nhau Các TT có thể chuyển đổi từ hàng đợi này sang hàng khác
Trang 20II.6 Multi Level Feedback
Queues(MLFQ)
• Các yếu tố cần chú ý:
– Số lượng hàng đợi sao cho hợp lý.
– Chọn thuật toán thích hợp cho mỗi hàng đợi – Tiêu chuẩn và cách thức hạ mức một tiến trình.
– Tiêu chuẩn và cách thức nâng mức một tiến trình.
– Tiêu chuẩn và cách thức chỉ định một tiến trình mới phát sinh vào hàng đợi nào.
Trang 21III Ngắt