Cỏc thuật toỏn điềuđộ

Một phần của tài liệu Bao cao mon hoc he dieu hanh (Trang 64 - 67)

CHƢƠNG 4 LẬP LỊCH

4.1 Lập lịch cho tiến trớnh

4.1.5 Cỏc thuật toỏn điềuđộ

Nhiều thuật toỏn điều độ tiến trỡnh được đề xuất và sử dụng trờn thực tế. Sau đõy là những thuật toỏn tiờu biểu hoặc thường gặp nhất.

4.1.5.1 Thuật toỏn đến trƣớc phục

vụ trƣớc - FCFS

Đến trước phục vụ trước (First Come First Served – viết tắt là FCFS) là phương phỏp điều độ

đơn giản nhất, cả về nguyờn tắc và cỏch thực hiện. Tiến trỡnh yờu cầu CPU trước sẽ được cấp CPU trước.

Hệ điều hành xếp tiến trỡnh sẵn sàng vào hàng đợi FIFO. Tiến trỡnh mới được xếp vào cuối hàng đợi, khi CPU được giải phúng, hệ điều hành sẽ lấy tiến trỡnh từ đầu hàng đợi và cấp CPU cho tiến trỡnh đú thực hiện.

Mặc dự đơn giản và đảm bảo tớnh cụng bằng, FCFS cú thời gian chờ đợi trung bỡnh của tiến trỡnh lớn do phải chờ đợi tiến trỡnh cú chu kỳ CPU dài trong trường hợp những tiến trỡnh như vậy nằm ở đầu hàng đợi. Để minh họa, ta xột vớ dụ: cho 3 tiến trỡnh với thứ tự xuất hiện và độ dài chu kỳ CPU như sau:

Thời gian chờ đợi của P1, P2, P3 lần lượt là 0, 10, và 14. Thời gian chờ đợi trung bỡnh = (0 + 10 + 14)/3 = 8.

Cú thể thấy thời gian chờ đợi trung bỡnh như vậy là rất lớn, chẳng hạn so với trường hợp tiến trỡnh được cấp CPU theo thứ tự P3, P2, P1. Khi đú thời gian chờ đợi trung bỡnh giảm xuống chỉ cũn (6 + 2 + 0)/3 = 2,67.

Cần lưu ý rằng việc tăng thời gian chờ đợi CPU của tiến trỡnh ảnh hưởng rất lớn tới hiệu suất chung của hệ thống do nhiều tiến trỡnh phải dồn lại chờ một tiến trỡnh trong khoảng thời gian quỏ lõu, dẫn tới tỡnh trạng khụng tiến trỡnh nào thực hiện được cụng việc của mỡnh, kể cả vào ra. Kết quả là toàn hệ thống phải dừng lại chờ giải phúng CPU.

Thuật toỏn FCFS thụng thường là thuật toỏn điều độ khụng phõn phối lại. Sau khi tiến trỡnh được cấp CPU, tiến trỡnh đú sẽ sử dụng CPU cho đến khi kết thỳc hoặc phải dừng lại để chờ kết quả vào ra. Để cú thể sử dụng được trong những hệ thống chia sẻ thời gian, thuật toỏn đến trước phục vụ trước được cải tiến để thờm cơ chế phõn phối lại. Ta sẽ xem xột thuật toỏn điều độ như vậy trong một phần sau.

4.1.5.2 Điều độ quay vũng - RR

Điều độ quay vũng (round robin - RR) là phiờn bản sửa đổi của FCFS được dựng cho cỏc hệ

chia sẻ thời gian. Điều độ quay vũng tương tự FCFS nhưng cú thể cơ chế phõn phối lại bằng cỏch sử dụng ngắt của đồng hồ. Hệ thống định nghĩa những khoảng thời gian nhỏ gọi là lượng

tử thời gian (time quantum) hay lỏt cắt thời gian (time slice) cú độ dài từ vài mili giõy tới vài

trăm mili giõy tựy vào cấu hỡnh cụ thể. Tiến trỡnh sẽ lần lượt được cấp CPU trong những khoảng thời gian như vậy trước khi bị ngắt và CPU được cấp cho tiến trỡnh khỏc.

Giống như FCFS, tiến trỡnh sẵn sàng được xếp vào hàng đợi sao cho tiến trỡnh đến sau được thờm vào cuối hàng. Khi CPU được giải phúng, hệ điều hành đặt thời gian của đồng hồ bằng độ dài lượng tử, lấy một tiến trỡnh ở đầu hàng đợi và cấp CPU cho tiến trỡnh.

Sau khi được cấp CPU, tiến trỡnh chuyển sang trạng thỏi chạy. Nếu tiến trỡnh kết thỳc chu kỳ sử dụng CPU trước khi hết thời gian lượng tử, tiến trỡnh sẽ giải phúng CPU và trả lại quyền điều khiển cho hệ điều hành. Trong trường hợp ngược lại, khi hết độ dài lượng tử, đồng hồ sẽ sinh ngắt. Tiến trỡnh đang thực hiện phải dừng lại và quyền điều khiển chuyển cho hàm xử lý

ngắt của hệ điều hành. Hệ điều hành thực hiện việc chuyển đổi ngữ cảnh và chuyển tiến trỡnh về cuối hàng đợi sau đú chọn một tiến trỡnh ở đầu và lặp lại quỏ trỡnh trờn.

Điều độ quay vũng cho phộp cải thiện thời gian đỏp ứng của tiến trỡnh so với FCFS nhưng vẫn cú thời gian chờ đợi trung bỡnh tương đối dài. Sau đõy là minh họa cho phương phỏp điều độ này với ba tiến trỡnh P1, P2, P3 lấy từ vớ dụ ở phần trước và lượng tử thời gian cú độ dài bằng 2.

Thời gian chờ đợi của P1, P2, P3 lần lượt là 6, 6, và 4. Thời gian chờ đợi trung bỡnh = (6 + 6 + 4)/3=5,33.

Một vấn đề quan trọng khi điều độ quay vũng là lựa chọn độ dài lượng tử thời gian. Nếu lượng tử ngắn, thời gian đỏp ứng sẽ giảm. Tuy nhiờn, việc chuyển đổi tiến trỡnh diễn ra thường xuyờn đũi hỏi nhiều thời gian hơn cho việc chuyển đổi ngữ cảnh. Độ dài lượng tử nờn lựa chọn lớn hơn thời gian cần thiết để tiến trỡnh thực hiện một thao tỏc tương tỏc tiờu biểu hoặc. Ngược lại, lượng tử càng lớn càng tốn ớt thời gian chuyển đổi giữa cỏc tiến trỡnh nhưng tớnh đỏp ứng cũng kộm đi. Khi lượng tử lớn tới một mức nào đú, điều độ quay vũng sẽ trở thành FCFS.

4.1.5.3 Điều độ ƣu tiờn tiến trớnh ngắn nhất - SPF

Một phương phỏp điều độ cho phộp giảm thời gian chờ đợi trung bỡnh là điều độ ưu tiờn tiến trỡnh ngắn nhất trước (Shortest Process First - SPF), hay cũn cú cỏc tờn gọi khỏc như cụng

việc ngắn nhất trước (Shortest Job Fist), tiến trỡnh ngắn nhất tiếp theo (Shortest Process Next). Phương phỏp điều độ này lựa chọn trong hàng đợi tiến trỡnh cú chu kỳ sử dụng CPU tiếp theo ngắn nhất để phõn phối CPU. Trong trường hợp cú nhiều tiến trỡnh với chu kỳ CPU tiếp theo bằng nhau, tiến trỡnh đứng trước sẽ được chọn.

Ưu điểm lớn nhất của SPF so với FCFS là thời gian chờ đợi trung bỡnh nhỏ hơn nhiều. Xột vớ dụ điều độ cho cỏc tiến trỡnh như ở phần trờn nhưng sử dụng SPF.

Thời gian chờ đợi trung bỡnh = (6 + 2 +0)/3 = 2,67.

Mặc dự điều độ ưu tiờn tiến trỡnh ngắn nhất cú thời gian chờ đợi trung bỡnh tối ưu, phương phỏp này rất khú sử dụng trờn thực tế do đũi hỏi phải biết trước độ dài chu kỳ sử dụng CPU tiếp theo của tiến trỡnh. Cú hai cỏch để giải quyết phần nào khú khăn này. Cỏch thứ nhất được ỏp dụng đối với hệ thống xử lý theo mẻ như tại cỏc trung tõm tớnh toỏn hiệu năng cao hiện nay. Quản trị hệ thống căn cứ vào thời gian đăng ký tối đa do lập trỡnh viờn cung cấp để xếp những ứng dụng cú thời gian đăng ký ngắn hơn lờn trước. Lưu ý, đõy là thời gian thực hiện cả ứng dụng chứ khụng phải một chu kỳ sử dụng CPU cụ thể.

Cỏch thứ hai là dự đoỏn độ dài chu kỳ sử dụng CPU tiếp theo. Cỏch dự đoỏn đơn giản nhất là dựa trờn độ dài trung bỡnh cỏc chu kỳ CPU trước đú để dự đoỏn độ dài chu kỳ tiếp theo và ra quyết định cấp CPU.

Điều độ ưu tiờn tiến trỡnh ngắn nhất trước là điều độ khụng cú phõn phối lại. Nếu một tiến trỡnh được cấp CPU, tiến trỡnh sẽ thực hiện cho tới khi khụng cần CPU nữa, kể cả trong trường hợp xuất hiện tiến trỡnh mới với chu kỳ sử dụng CPU ngắn hơn chu kỳ CPU cũn lại của tiến trỡnh đang thực hiện. Trong phần tiếp theo ta sẽ xem xột việc thờm cơ chế phõn phối lại cho điều độ ưu tiờn tiến trỡnh ngắn nhất trước.

4.1.5.4 Điều độ ƣu tiờn thời gian cũn

lại ngắn nhất - SRTF

Phiờn bản ưu tiờn tiến trỡnh ngắn nhất cú thờm cơ chế phõn phối lại được gọi là điều độ ưu

64

trỡnh mới xuất hiện trong hàng đợi, hệ điều hành so sỏnh thời gian cũn lại của tiến trỡnh đang chạy với thời gian cũn lại của tiến trỡnh mới xuất hiện. Nếu tiến trỡnh mới xuất hiện cú thời gian cũn lại ngắn hơn, hệ điều hành sẽ thu hồi CPU của tiến trỡnh đang chạy và phõn phối cho tiến trỡnh mới.

4.1.5.5 Điều độ cú mức ƣu tiờn

Theo phương phỏp này, mỗi tiến trỡnh cú một mức ưu tiờn. Tiến trỡnh được ưu tiờn hơn sẽ được cấp CPU trước. Cỏc tiến trỡnh cú mức ưu tiờn như nhau được điều độ theo nguyờn tắc FCFS.

Cú thể thấy hai phương phỏp STF và SRTF ở trờn là trường hợp riờng của điều độ cú mức ưu tiờn trong đú tiến trỡnh cú thời gian chu kỳ CPU hoặc thời gian chu kỳ CPU cũn lại ngắn hơn được ưu tiờn hơn. Trong trường hợp tổng quỏt, mức ưu tiờn được xỏc định theo nhiều tiờu chớ khỏc nhau như yờu cầu bộ nhớ, hạn chế thời gian… Mức ưu tiờn cũng cú thể do người quản trị hệ thống xỏc định dựa trờn mức độ quan trọng của tiến trỡnh.

Hệ điều hành quy định mức ưu tiờn dưới dạng số nguyờn trong một khoảng nào đú, vớ dụ từ 0 đến 31. Tuy nhiờn, khụng cú quy tắc chung về việc mức ưu tiờn cao tương ứng với số nhỏ hay số to. Một số hệ điều hành coi số 0 ứng với mức ưu tiờn cao nhất trong khi một số hệ điều hành sử dụng 0 cho mức ưu tiờn thấp nhất.

Vớ dụ sau minh họa cho điều độ cú mức ưu tiờn, trong đú 0 ứng với mức ưu tiờn cao nhất và cỏc số lớn hơn tương ứng với mức ưu tiờn thấp hơn.

Điều độ cú mức ưu tiờn vừa trỡnh bày ở trờn là điều độ khụng phõn phối lại. Tuy nhiờn cú thể thờm cơ chế phõn phối lại cho phương phỏp này. Nếu tiến trỡnh mới xuất hiện cú mức ưu tiờn cao hơn tiến trỡnh đang chạy, hệ điều hành sẽ thu hồi CPU và phõn phối cho tiến trỡnh mới.

4.1.5.6 Điều độ với nhiều hàng đợi

Cỏc phương phỏp điều độ trỡnh bày ở trờn đều làm việc với một hàng đợi duy nhất chứa tiến trỡnh ở trạng thỏi sẵn sàng. Tất cả tiến trỡnh đều được điều độ theo cựng một thuật toỏn giống nhau. Trờn thực tế, tiến trỡnh cú thể phõn chia thành nhiều loại với đặc điểm, độ quan trọng và nhu cầu sử dụng CPU khỏc nhau, mỗi loại cú thể đũi hỏi phương phỏp điều độ riờng. Lấy vớ dụ trong mỏy tớnh cỏ nhõn, trỡnh soạn thảo bảng tớnh và bảng tớnh đũi hỏi tương tỏc trực tiếp trong khi tiến trỡnh quản lý in và quột virut trờn đĩa là tiến trỡnh nền. Hai loại tiến trỡnh này đũi hỏi thời gian đỏp ứng khỏc nhau và do vậy cần cú mức ưu tiờn cũng như cỏch điều độ khỏc nhau.

Điều độ với nhiều hàng đợi là phương phỏp điều độ trong đú tiến trỡnh được phõn chia thành

nhiều loại tựy theo đặc điểm và độ ưu tiờn. Mỗi loại được xếp trong một hàng đợi riờng và được điều độ theo một phương phỏp phự hợp với đặc điểm của loại tiến trỡnh đú. Thụng thường, tiến trỡnh tương tỏc trực tiếp được điều độ theo phương phỏp quay vũng RR trong khi tiến trỡnh nền được điều độ FCFS.

Do cú nhiều loại tiến trỡnh nờn cần xỏc định mức độ ưu tiờn cho từng loại, chẳng hạn tiến trỡnh tương tỏc trực tiếp cú mức ưu tiờn cao hơn tiến trỡnh nền. Giữa cỏc hàng đợi với nhau cú thể điều độ theo hai cỏch sau. Cỏch thứ nhất là điều độ theo mức ưu tiờn cú phõn phối lại. Tiến trỡnh ở hàng đợi với mức ưu tiờn thấp hơn phải nhường cho tiến trỡnh ở hàng đợi với mức ưu tiờn cao chạy trước. Nếu cú tiến trỡnh mới với mức ưu tiờn cao hơn xuất hiện, tiến trỡnh đang chạy phải nhường CPU. Cỏch thứ hai là cấp cho mỗi hàng đợi một khoảng thời gian nhất định (cú thể phụ thuộc vào mức ưu tiờn). Tiến trỡnh trong từng hàng đợi được điều độ theo phương phỏp của hàng đợi của mỡnh trong khoảng thời gian được cấp đú.

Mức ưu tiờn cao nhất

Cỏc tiến trỡnh hệ thống

Cỏc tiến trỡnh tương tỏc

Mức ưu tiờn thấp nhất

Hỡnh 25 Vớ dụ điều độ với nhiều hàng đợi

4.1.6 Điều độ trờn hệ thống cụ thể Điều độ trong Windows

Một phần của tài liệu Bao cao mon hoc he dieu hanh (Trang 64 - 67)

Tải bản đầy đủ (PDF)

(131 trang)