Khái niệm về lập lịch cho CPU Lập lịch CPU có nghĩa 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 trên độ ưu tiên của các tiến trình sao cho hiệu suất sử
Trang 1HỌC PHẦN NGUYÊN LÝ HỆ ĐIỀU HÀNH
LẬP TRÌNH CPU VÀ XỬ LÝ NGẮT
NHÓM 1
Giáo viên: Nguyễn Trường Giang
Trang 2Thành viên nhóm 1: Nguyễn Tuấn Anh (ImoAnh) – Xây dựng slide nội dung
Phạm Văn Cường ( Cường Persi) – Tìm kiếm nội dung và tư liệu Nguyễn Văn Cường (Cường Lác) – Tìm kiếm nội dung và tư liệu Thân Trọng Hiếu (Hiếu Kawaii) – Tổng hợp và thuyết trình
Trang 3A LẬP LỊCH CHO CPU
I Khái niệm về lập lịch cho CPU
Lập lịch CPU có nghĩa 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 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 sẽ được gắn với một thứ tự ưu tiên Thứ tự ưu tiên này được xác định dựa vào các yếu tố như: Thời gian 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
II. Một số phương pháp (thuật toán) lập lịch CPU
1 First Come First Served (FCFS)
2 Shortest Job First (SJF: Công việc ngắn nhất)
3 Shortest Remain Time First (SRTF)
4 Round Robin (RR)
5 Hàng đợi nhiều mức (Multi – Level Queue – MLQ)
6 Hàng đợi phản hồi đa mức (Multi – Level Feedback Queue –
MLFQ)
Trang 5- Giải thuật lập lịch CPU FCFS (First-Come, First-Served) là phương pháp lập lịch đơn giản nhất, hoạt động theo nguyên tắc đến trước được phục vụ trước Tiến trình nào vào hệ thống trước sẽ được cấp CPU trước và giữ nó cho đến khi hoàn thành hoặc cần thực hiện thao tác I/O.
- Mặc dù đơn giản và dễ triển khai, FCFS có thời gian chờ đợi trung bình dài, đặc biệt là khi các tiến trình có độ dài chu kỳ CPU khác nhau Khi một tiến trình CPU-bound (cần nhiều CPU) được thực thi trước, các tiến trình I/O-bound (cần ít CPU) sẽ phải chờ đợi lâu, tạo nên "convoy effect" – một tác dụng phụ khi các tiến trình ngắn bị chậm lại bởi tiến trình dài, gây hiệu suất thấp cho CPU và thiết bị I/O.
*Hạn chế chính của FCFS gồm:
1 Thời gian chờ đợi trung bình lớn, không phù hợp với hệ thống chia
sẻ thời gian.
2 Khả năng tương tác kém trong hệ thống đơn xử lý (uniprocessor).
3 Nếu các tiến trình đầu tiên trong hàng đợi cần nhiều CPU, các tiến trình sau sẽ phải chờ lâu.
Trang 62 Shortest Job First
(SJF: Công việc ngắn nhất)
- Giải thuật lập lịch CPU Shortest Job First (SJF) ưu tiên tiến trình có chu kỳ CPU kế tiếp ngắn nhất.
- SJF tối ưu cho thời gian chờ trung bình thấp nhất, giúp tăng hiệu quả xử lý khi tiến trình ngắn được thực hiện trước tiến trình dài
- SJF là một dạng lập lịch ưu tiên, trong đó độ ưu tiên
là nghịch đảo của chu kỳ CPU dự đoán Các tiến trình với chu kỳ CPU lớn có độ ưu tiên thấp hơn Lập lịch ưu tiên có thể được cài đặt dưới hai dạng: có trưng dụng và không trưng dụng
* Hạn chế lớn của lập lịch ưu tiên là khả năng gây
ra nghẽn không hạn định, còn gọi là hiện tượng "đói CPU," khi các tiến trình có độ ưu tiên thấp không được cấp CPU do các tiến trình ưu tiên cao liên tục chiếm CPU Giải pháp cho vấn đề này là “hóa già” (aging), tức là tăng dần
độ ưu tiên cho các tiến trình chờ lâu, giúp chúng có cơ hội nhận CPU.
Trang 73 Shortest Remain Time First (SRTF)
Giải thuật SJF có thể trưng dụng hoặc không trưng
dụng CPU Chọn lựa này phát sinh khi một tiến trình mới
đến tại hàng đợi sẵn sàng trong khi một tiến trình trước
đó đang thực thi Một tiến trình mới có thể có chu kỳ
CPU tiếp theo ngắn hơn chu kỳ CPU được để lại của tiến
trình thực thi hiện tại
Giải thuật SJF trưng dụng sẽ trưng dụng CPU của tiến
trình đang thực thi hiện tại, trong khi giải thuật SJF
không trưng dụng sẽ cho phép tiến trình đang thực thi kết
thúc chu kỳ CPU của nó Lập lịch SJF trưng dụng còn
được gọi là lập lịch thời gian còn lại ngắn nhất trước
(shortest-remaining-time-first)
Trang 84 Round Robin (RR)
- Giải thuật lập lịch luân phiên (Round-Robin Scheduling -
RR) là một phương pháp được thiết kế cho hệ thống chia sẻ
thời gian
- Trong RR, một đơn vị thời gian nhỏ, gọi là định mức thời
gian (time quantum) hoặc phần thời gian (time slice), được xác
định trước, thường từ 10 đến 100 mili giây
- Các tiến trình được xếp vào hàng đợi sẵn sàng dưới dạng
FIFO CPU lần lượt được cấp phát cho từng tiến trình với thời
gian tối đa bằng định mức thời gian
Hiệu quả của RR phụ thuộc vào kích thước của định mức thời gian:
- Nếu định mức quá lớn, RR sẽ giống FCFS
- Nếu định mức quá nhỏ, RR gần như chia sẻ bộ xử lý giữa các tiến trình, tạo cảm giác mỗi tiến trình
có bộ xử lý riêng
RR cần một định mức đủ lớn để giảm thời gian chuyển đổi ngữ cảnh, nhưng không quá lớn để tránh làm tăng thời gian chờ đợi trung bình Quy tắc cho rằng định mức nên dài hơn 80% chu kỳ CPU
để hiệu quả
Trang 95 Hàng đợi nhiều mức (Multi – Level Queue – MLQ)
Giải thuật lập lịch hàng đợi nhiều mức (multilevel
queue scheduling) phân chia các tiến trình thành các nhóm
khác nhau, ví dụ như các tiến trình tương tác (foreground)
và tiến trình nền (background), nhằm đáp ứng các yêu cầu
về thời gian khác nhau của từng loại tiến trình
Trong mô hình này, các tiến trình được gán cố định vào
một hàng đợi riêng dựa trên đặc điểm như độ ưu tiên, loại
tiến trình Mỗi hàng đợi có giải thuật lập lịch riêng: chẳng
hạn, hàng đợi tương tác sử dụng giải thuật xoay vòng (RR)
trong khi hàng đợi nền dùng giải thuật vào trước ra trước
(FCFS)
Trang 106 Hàng đợi phản hồi đa mức (Multi – Level Feedback Queue – MLFQ)
- Giải thuật lập lịch hàng đợi phản hồi đa cấp
(multilevel feedback queue scheduling) cho phép các
tiến trình di chuyển giữa các hàng đợi khác nhau dựa
trên hành vi và thời gian sử dụng CPU của chúng Nếu
một tiến trình sử dụng nhiều CPU, nó sẽ bị chuyển đến
hàng đợi có độ ưu tiên thấp hơn, trong khi các tiến
trình cần thời gian nhập/xuất và tương tác giữ được vị
trí ở hàng đợi ưu tiên cao.
- Giải thuật này linh hoạt, tránh tình trạng đói CPU
nhờ việc "hóa già" các tiến trình chờ lâu, và phù hợp
cho các hệ thống yêu cầu cấu hình lập lịch phức tạp.
Trang 11B NGẮT VÀ QUY TRÌNH XỬ LÝ NGẮT
* Để tiến trình thực hiện chính xác, cần
phải có sự phối hợp nhịp nhàng giữa những
hoạt động của CPU và các thiết bị
- Ngắt là phương tiện để các thiết bị thông
báo cho CPU biết việc thay đổi trạng thái
của chính mình
- Ngắt là việc dừng đột xuất việc thực
hiện một tiến trình để chuyển sang thực
hiện một tiến trình khác khi có một sự kiện
nào đó xảy ra
1 Khái niệm
* Có ba loại ngắt được sử dụng trong một hệ điều hành
- Ngắt giám sát (supervisor call interupt)
- Ngắt nội (internal interupt)
- Ngắt ngoại (external interupt)
• Có rất nhiều phương pháp liên quan đến
xử lý ngắt nhưng nhìn chung có thể mô
tả gồm 5 bước sau:
- Ghi nhận đặc trưng của sự kiện gây ra ngắt vào ô nhớ quy định
- Ghi nhận trạng thái của tiến trình bị ngắt
- Chuyển địa chỉ chương trình xử lý ngắt vào thanh ghi địa chỉ lệnh của CPU
- Thực hiện chương trình xử lý sự kiện
- Khôi phục lại tiến trình bị ngắt
Trang 122 Phân loại
Có ba loại ngắt được sử dụng trong một hệ điều hành như sau:
- Ngắt giám sát (supervisor call interupt): Là một loại ngắt đặc biệt, xảy ra khi một tiến trình phát ra một chỉ thị yêu cầu một thủ tục bên trong hệ điều hành Sau đó, hệ điều
hành có thể được xem như là một tập các chương trình hệ thống được liên kết với nhau
để thực thi các tín hiệu ngắt.
- Ngắt nội (internal interupt): Hay còn gọi là ngắt mềm, được tạo ra bởi các sự kiện
nào đó, bên trong bộ xử lý đang thực thi các sự kiện đó, chẳng hạn như khi một
chương trình thực hiện sai chức năng (ví dụ như chương trình cố gắng chia một số cho 0).
- Ngắt ngoại (external interupt): Hay còn gọi là ngắt cứng, được tạo ra bên ngoài bộ xử
lý đang xảy ra ngắt, thường là bởi các ngắt có một thủ tục xử lý ngắt (interupt handler)
để xử lý các yêu bộ xử lý khác hoặc các thiết bị nhập/xuất trong hệ thống Mỗi loại cầu ngắt tương ứng Khi một thủ tục xử lý ngắt đoạt được quyền điều khiển CPU, thông
thường nó sẽ cấm tất cả các chỉ thị từ các ngắt khác cho đến khi nó đạt đến “điểm an
toàn” Điểm an toàn là vị trí mà thông tin trạng thái ngắt có thể được lưu và sẽ được
khôi phục lại sau khi yêu cầu ngắt đã được đáp ứng.
Trang 13THANK ALL YOU FOR
LISTENING