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.