I. Giới thiệu nguyên tắt hoạt động:
Hàm lựa chọn: chọn process đợi trong hàng đợi ready lâu nhất
FCFS không công bằng với các process có CPU burst ngắn. Các process này phải chờ trong thời gian dài (so với thời gian mà nó cần phục vụ) thì mới được sử dụng CPU. Điều này đồng nghĩa với việc FCFS “ưu tiên” các process thuộc dạng CPU bound.
II. Ứng dụng demo
Bạn nào có nhu cầu tham khảo source code vui lòng comment dưới bài viết:
"Thuật toán điều phối FCFS" và download ở link bên dưới bạn nhé.
Download Code: http://goo.gl/vonN1v
III. Mở rộng thuật toán
Câu hỏi: Liệu có xảy ra trường hợp trì hoãn vô hạn định (starvation hay indefinite blocking) với giải thuật FCFS? FCFS thường được sử dụng trong các hệ thống bó (batch system)
Ví dụ thực tế
Mục tiêu:
Hàm lựa chọn: chọn process đợi trong hàng đợi ready lâu nhất
- Chế độ quyết định: nonpreemptive
- Một process sẽ được thực thi cho đến khi nó bị block hoặc kết thúc
- FCFS thường được quản lý bằng một FIFO queue
FCFS không công bằng với các process có CPU burst ngắn. Các process này phải chờ trong thời gian dài (so với thời gian mà nó cần phục vụ) thì mới được sử dụng CPU. Điều này đồng nghĩa với việc FCFS “ưu tiên” các process thuộc dạng CPU bound.
II. Ứng dụng demo
Thuật toán điều phối FCFS ( First Come First Served ) |
"Thuật toán điều phối FCFS" và download ở link bên dưới bạn nhé.
Download Code: http://goo.gl/vonN1v
Thiết kế giao diện ứng dụng FCFS |
Thiết kế giao diện ứng dụng FCFS |
Câu hỏi: Liệu có xảy ra trường hợp trì hoãn vô hạn định (starvation hay indefinite blocking) với giải thuật FCFS? FCFS thường được sử dụng trong các hệ thống bó (batch system)
Ví dụ thực tế
- Việc phục vụ khách trong nhà hàng
- Thực khách sẽ đến và gọi món ăn cho mình
- Mỗi món ăn cần thời gian chuẩn bị khác nhau
Mục tiêu:
- Giảm thời gian đợi trung bình của các thực khách
- Cách làm nào sẽ phù hợp?
- Thông thường các nhà hàng sẽ phục vụ theo kiểu FCFS (!)
Comments
Post a Comment