Lập lịch FCFS

Một phần của tài liệu Lý thuyết lập lịch và ứng dụng giải pháp quyết bài toán lập lịch cho CPU (Trang 35 - 37)

Thuật toỏn lập lịch FCFS (first-come, first-served) đƣợc thực hiện theo tƣ tƣởng là đến trƣớc, đƣợc phục vụ trƣớc (first-come, first-served-FCFS). Với cơ chế này, tiến trỡnh yờu cầu CPU trƣớc sẽ đƣợc cấp phỏt CPU trƣớc. Việc cài đặt FCFS đƣợc quản lý dễ dàng với hàng đợi FIFO. Khi một tiến trỡnh đi vào hàng đợi sẵn sàng, PCB của nú đƣợc liờn kết tới cuối của hàng đợi. Khi CPU khụng đƣợc sử dụng, nú đƣợc cấp phỏt tới một tiến trỡnh tại đầu hàng đợi. Sau đú, tiến trỡnh đang chạy đƣợc lấy ra khỏi hàng đợi. Với tƣ tƣởng này, việc thực hiện thuật toỏn FCFS là đơn giản.

Tuy nhiờn, thời gian chờ đợi trung bỡnh thuật toỏn FCFS thƣờng là dài. Xột tập hợp cỏc tiến trỡnh sau đến tại thời điểm 0, với chiều dài thời gian chu kỳ CPU đƣợc cho theo mini giõy.

Vớ dụ: Cho dóy tiến trỡnh và thời gian phục vụ tƣơng ứng Processes T thực hiện

P1 24

P2 3

P3 3

Sơ đồ Gantt biểu thị thứ tự thực hiện cỏc tiến trỡnh nhƣ sau:

Theo sơ đồ này, chỳng ta thấy thời gian chờ đợi của cỏc tiến trỡnh là: Processes T thực hiện T đợi

P1 24 0

P2 3 24

P3 3 27

36

Số húa bởi Trung tõm Học liệu http://lrc.tnu.edu.vn

Do đú, thời gian chờ đợi trung bỡnh là (0+24+27)/3=17 mili giõy. Tuy nhiờn, nếu cỏc tiến trỡnh đến theo thứ tự P2, P3, P1 thỡ cỏc kết quả đƣợc hiển thị trong lƣu đồ Gantt nhƣ sau:

Theo sơ đồ này, chỳng ta thấy thời gian chờ đợi của cỏc tiến trỡnh là: Processes T thực hiện T đợi

P2 3 0

P3 3 3

P1 24 6

 30 9

Thời gian chờ đợi trung bỡnh bõy giờ là (6+0+3) / 3=3 mili giõy. Việc cắt giảm này là quan trọng. Do đú, thời gian chờ đợi trung bỡnh đối với thuật toỏn FCFS thƣờng khụng là tối ƣu và cú sự thay đổi rất quan trọng nếu cỏc thời gian CPU dành cho cỏc tiến trỡnh khỏc nhau rất lớn.

Ngoài ra, xột tỏc dụng của lập lịch FCFS trong trƣờng hợp động. Giả sử chỳng ta cú một tiến trỡnh hƣớng xử lý (CPU-bound) và nhiều tiến trỡnh hƣớng nhập/xuất (I/O bound). Khi cỏc tiến trỡnh đồng thời cựng yờu cầu hệ thống thỡ hiện tƣợng sau cú thể xảy ra. Tiến trỡnh hƣớng xử lý sẽ nhận CPU và giữ nú. Trong suốt thời gian này, tất cả tiến trỡnh khỏc sẽ kết thỳc việc nhập/xuất của nú và chuyển vào hàng đợi sẵn sàng, cỏc thiết bị nhập/xuất ở trạng thỏi nghỉ. Cuối cựng, tiến trỡnh hƣớng xử lý kết thỳc chu kỳ CPU của nú và chuyển tới thiết bị nhập/xuất. Tất cả cỏc tiến trỡnh hƣớng xử lý cú chu kỳ CPU rất ngắn sẽ nhanh chúng thực thi và di chuyển trở về hàng đợi nhập/xuất. Tại thời điểm này CPU ở trạng thỏi nghỉ. Sau đú, tiến trỡnh hƣớng xử lý sẽ di chuyển trở lại hàng đợi sẵn sàng và đƣợc cấp CPU. Một lần nữa, tất cả tiến trỡnh hƣớng nhập/xuất kết thỳc việc chờ trong hàng đợi sẵn sàng cho đến khi tiến trỡnh hƣớng xử lý đƣợc thực hiện. Cú một tỏc dụng phụ (convoy effect) khi tất cả cỏc tiến trỡnh khỏc chờ một tiến

37

Số húa bởi Trung tõm Học liệu http://lrc.tnu.edu.vn

trỡnh lớn trả lại CPU. Tỏc dụng phụ này dẫn đến việc sử dụng thiết bị và CPU thấp hơn nếu cỏc tiến trỡnh ngắn hơn đƣợc cấp trƣớc.

Cú thể kết luận thuật toỏn FCSF là thuật toỏn lập lịch khụng khả dụng cho CPU. Một khi CPU đƣợc cấp phỏt tới một tiến trỡnh, tiến trỡnh đú giữ CPU cho tới khi nú giải phúng CPU bằng cỏch kết thỳc hay yờu cầu nhập/xuất. Thuật toỏn FCFS đặc biệt khụng phự hợp đối với hệ thống chia sẻ thời gian, ở đú mỗi ngƣời dựng nhận đƣợc sự chia sẻ CPU với những khoảng thời gian đều nhau.

Một phần của tài liệu Lý thuyết lập lịch và ứng dụng giải pháp quyết bài toán lập lịch cho CPU (Trang 35 - 37)