CHƢƠNG 4 LẬP LỊCH
4.1 Lập lịch cho tiến trớnh
4.1.6 Điềuđộ trờn hệthống cụ thể
Windows là hệ điều hành hỗ trợ đa luồng, do vậy CPU được điều độ ở mức luồng. Trong cỏc phiờn bản đầu, tức là tới trước Win 95, điều độ là khụng phõn phối lại. Cỏc phiờn bản từ Win 95 điều độ luồng dựa trờn mức ưu tiờn và cú phõn phối lại, tức là luồng cú thể bị thu hồi CPU cả khi đang ở trong trạng thỏi chạy.
Mỗi luồng trong Windows được gỏn một mức ưu tiờn dựng cho điều độ. Cú tất cả 32 mức ưu tiờn nằm trong khoảng từ khụng (thấp nhất) tới 31 (cao nhất). Chỉ duy nhất một luồng cú mức ưu tiờn bằng khụng là luồng của hệ điều hành cú nhiệm vụ xúa nội dung tất cả cỏc trang nhớ trống về khụng và luồng này được thực hiện khi khụng cú luồng nào khỏc cú nhu cầu chạy. Windows xếp cỏc luồng cú cựng mức ưu tiờn vào cựng một hàng đợi. Cỏc luồng trong cựng hàng đợi được điều độ theo phương phỏp quay vũng. Trước tiờn, hệ thống phõn phối CPU cho cỏc luồng cú mức ưu tiờn cao nhất. Nếu khụng cú luồng nào trong số đú sẵn sàng để chạy, Windows sẽ chuyển sang cấp CPU cho hàng đợi gồm cỏc luồng với mức ưu tiờn cao tiếp theo. Trong lỳc một luồng đang chạy, nếu một luồng ở mức ưu tiờn cao hơn cú yờu cầu CPU, luồng đang chạy sẽ bị ngắt ngay, bất kể lượng tử thời gian của tiến trỡnh đú đó hết chưa, để nhường CPU cho tiến trỡnh cú mức ưu tiờn cao hơn mới xuất hiện.
32 mức ưu tiờn được nhúm thành sỏu nhúm, mỗi nhúm bao gồm một dải mức ưu tiờn. Mức ưu tiờn của luồng được xỏc định dựa trờn hai thụng tin: 1) luồng thuộc nhúm ưu tiờn nào; và 2) độ ưu tiờn của luồng so với trung bỡnh của nhúm.
Cỏc nhúm ƣu tiờn. Windows xỏc định sỏu nhúm ưu tiờn như sau:
IDLE_PRIORITY_CLASS BELOW_NORMAL_PRIORITY_CLASS NORMAL_PRIORITY_CLASS ABOVE_NORMAL_PRIORITY_CLASS HIGH_PRIORITY_CLASS REALTIME_PRIORITY_CLASS
Cú thể đặt nhúm ưu tiờn cho luồng sử dụng lời gọi hệ thống SetPriorityClass, hoặc đặt bằng tay từ giao diện đồ họa của Task Manager. Theo mặc định, luồng thuộc nhúm ưu tiờn NORMAL_PRIORITY_CLASS. Luồng cú mức ưu tiờn IDLE_PRIORITY_CLASS là luồng làm cỏc cụng việc nền như screen saver. Cỏc luồng khụng được khuyến cỏo đặt mức ưu tiờn ở mức REALTIME_PRIORITY_CLASS vỡ khi cú luồng với mức ưu tiờn như vậy chạy, cỏc luồng khỏc sẽ khụng nhận được CPU để chạy, kể cả cỏc luồng xử lý tớn hiệu từ chuột, bàn phớm.
Mức ƣu tiờn trong nhúm. Mỗi nhúm bao gồm một số mức ưu tiờn. Cỏc luồng thuộc một
nhúm ưu tiờn cú thể thay đổi mức ưu tiờn cụ thể tựy vào mức ưu tiờn tương đối trong nhúm. Cỏc mức ưu tiờn tương đối trong nhúm bao gồm:
THREAD_PRIORITY_IDLE THREAD_PRIORITY_LOWEST THREAD_PRIORITY_BELOW_NORMAL THREAD_PRIORITY_NORMAL THREAD_PRIORITY_ABOVE_NORMAL THREAD_PRIORITY_HIGHEST THREAD_PRIORITY_TIME_CRITICAL
Mức ưu tiờn cụ thể của luồng được xỏc định bằng cỏch kết hợp mức ưu tiờn cơ sở của nhúm với mức ưu tiờn tương đối trong nhúm. Quy tắc kết hợp được thể hiện trờn bảng 2.1, trong đú cỏc cột là cỏc nhúm ưu tiờn, cỏc hàng là mức ưu tiờn tương đối trong nhúm. Cỏc ụ chứa mức ưu tiờn cụ thể tương ứng với mỗi hàng và cột.
Bảng 9 Mức ƣu tiờn của luồng
Window Realtime class High class Above Normal class Normal class Below Norma l class Idle class Time_critical 31 15 15 15 15 15 Highest 26 15 12 10 8 6 Above_normal 25 14 11 9 7 5 Normal 24 13 10 8 6 4 Below_normal 23 12 9 7 5 3 Lowest 22 11 8 6 4 2 Idle 16 1 1 1 1 1
Bờn cạnh việc sử dụng mức ưu tiờn, Windows cũn phõn biệt giữa cỏc tiến trỡnh đang được chọn, tức là tiến trỡnh cú cửa sổ nằm trờn cựng, với cỏc tiến trỡnh cũn lại. Tiến trỡnh đang được chọn sẽ được tăng lượng tử thời gian lờn khoảng 3 lần so với cỏc tiến trỡnh khỏc cựng mức ưu tiờn và do vậy sẽ được nhận CPU trong khoảng thời gian dài hơn.
CHƢƠNG 5. ĐỒNG BỘ TIẾN TRèNH 5.1 Đồng bộ húa tiến trớnh đồng thời