Bài tập scheduling là cách tốt nhất để hiểu cách hệ điều hành phân bổ CPU cho các tiến trình. Thông qua Gantt chart và timeline, người học có thể trực quan hóa quá trình thực thi và so sánh hiệu quả của các thuật toán.
Đề bài mẫu
Giả sử có ba tiến trình với thông tin như sau:
- P1: Arrival Time = 0, Burst Time = 5
- P2: Arrival Time = 1, Burst Time = 3
- P3: Arrival Time = 2, Burst Time = 1
Giải bằng FCFS
Thuật toán First Come First Serve thực thi tiến trình theo thứ tự đến:
Timeline: 0 → 5 → 8 → 9
Gantt chart: [P1][P2][P3]
Thời gian chờ trung bình tương đối cao do không tối ưu thứ tự.
Giải bằng SJF
Shortest Job First chọn tiến trình có thời gian chạy ngắn nhất:
Timeline: 0 → 5 → 6 → 9
Gantt chart: [P1][P3][P2]
Thuật toán này giúp giảm thời gian chờ trung bình đáng kể.
Giải bằng Round Robin
Với quantum = 2, CPU được chia đều cho các tiến trình:
Timeline: 0 → 2 → 4 → 5 → 7 → 8 → 9
Gantt chart: [P1][P2][P3][P1][P2][P1]
Round Robin cải thiện tính công bằng nhưng tăng overhead do context switch.
So sánh
Mỗi thuật toán có ưu và nhược điểm riêng:
- FCFS: đơn giản nhưng kém hiệu quả.
- SJF: tối ưu thời gian chờ nhưng khó áp dụng thực tế.
- Round Robin: công bằng, phù hợp hệ thống đa nhiệm.
Kết luận
Thông qua bài tập và Gantt chart, người học có thể hiểu sâu cách scheduling hoạt động và cách lựa chọn thuật toán phù hợp trong từng tình huống.