• Bộ định thời CPU hay bộ định thời ngắn kỳ Short-termscheduler chọn một trong các tiến trình trong hàng đợi sẵn sàng và cấp phát CPU cho nó thực thi o Hàng đợi có thể được sắp xếp theo
Trang 1Khoa Công Nghệ Thông Tin & Truyền Thông
Đại học Cần Thơ
Giảng viên: Hà Duy An
Trang 21 Các khái niệm
2 Các giải thuật định thời
3 Định thời trong hệ thống có nhiều bộ xử lý
4 Đánh giá giải thuật
Trang 4• Kỹ thuật đa chương giúp việc sử dụng
CPU đạt hiệu quả cao nhất
• Chu kỳ CPU-I/O
o Sự thực thi của tiến trình bao gồm
nhiều chu kỳ CPU-I/O
o Một chu kỳ CPU-I/O bao gồm chu kỳ
thực thi CPU (CPU burst) và theo sau
bởi chu kỳ chờ đợi vào/ra (I/O burst).
=> Việc phân phối chu kỳ CPU-I/O là một
đặt điểm quan trọng để chọn lựa giải thuật
định thời phù hợp
Trang 6• Bộ định thời CPU hay bộ định thời ngắn kỳ (Short-term
scheduler) chọn một trong các tiến trình trong hàng đợi sẵn sàng và cấp phát CPU cho nó thực thi
o Hàng đợi có thể được sắp xếp theo nhiều cách
• Quyết định định thời xảy ra khi một tiến trình:
1 Chuyển từ trạng thái đang chạy sang trạng thái chờ đợi
2 Chuyển từ trạng thái đang chạy sang trạng thái sẵn sàng
3 Chuyển từ trạng thái chờ đợi sang sẵn sàng
4 Kết thúc
• Định thời không trưng dụng (nonpreemptive): tiến trình sẽ giữ
CPU và chỉ giải phóng CPU khi nó cần (trường hợp 1 và 4)
• Định thời trưng dụng (preempty): các trường hợp 2 và 3; Vấn đề:
o Tiến trình đang cập nhật dữ liệu chia sẽ chung?
o Tiến trình đang xử lý trong chế độ nhân (kernel mode)?
o Không thể bỏ qua tất cả các ngắt?
Trang 7• Bộ điều phối (Dispatcher): Có nhiệm vụ trao quyền điều
khiển CPU cho tiến trình được chọn bởi bộ định thời CPU,công việc này bao gồm:
o Chuyển ngữ cảnh
o Chuyển sang chế độ người dùng
o Nhảy tới vị trí thích hợp trong chương trình người dùng để khởi động lại chương trình đó
• Bộ điều phối cần nhanh nhất có thể
• Độ trễ điều phối (Dispatch Latency): thời gian Dispatcher cần
để ngưng một tiến trình và khởi động một tiến trình khác
Trang 81 Hiệu suất sử dụng CPU: giữ CPU luôn bận nhiều nhất có thể.
2 Thông lượng (Throughput): số lượng tiến trình hoàn thành trên
một đơn vị thời gian.
3 Thời gian xoay vòng (Turnaround time): là khoảng thời gian từ
khi một tiến trình được khởi tạo đến khi nó hoàn thành Nó là tổng các khoảng thời gian chờ đợi để đưa vào bộ nhớ, chờ trong hàng đợi sẵn sàng, thời gian thực thi trên CPU và thực hiện các xử lý I/O.
4 Thời gian chờ đợi (Waiting time): tổng thời gian trong trong hàng
đợi sẵn sàng (ready queue).
5 Thời gian đáp ứng (Response time): lượng thời gian từ lúc một
yêu cầu được đệ trình cho đến khi tín hiệu trả lời đầu tiên xuất hiện (dùng cho môi trường chia thời gian).
Trang 9• Việc đánh giá giải thuật định thời được kiểm tra thông qua khảnăng tối ưu hóa các tiêu chí đinh thời của nó:
o Hiệu suất sử dụng CPU tối đa
o Thông lượng tối đa
o Thời gian xoay vòng tối thiểu
o Thời gian chờ đợi tối thiểu
o Thời gian đáp ứng tối thiểu
Trang 12• Thời gian chờ đợi: P1 = 0; P2 = 24; P3 = 27
• Thời gian chờ đợi trung bình: (0 + 24 + 27)/3 = 17
0
Trang 13• Giả sử các tiến trình xuất hiện theo thứ tự P2, P3, P1 Biểu đồGantt cho lịch biểu là:
• Thời gian chờ đợi: P1= 6; P2 = 0; P3 = 3
• Thời gian chờ đợi trung bình: (6 + 0 + 3)/3 = 3
• Tốt hơn nhiều so với trường hợp trước
• Tác động nối đuôi: tiến trình ngắn nằm sau tiến trình dài
• FCFS là giải thuật định thời không trưng dụng, không thíchhợp cho hệ thống chia thời gian
Trang 14• Kết hợp với mỗi tiến trình độ dài thời gian mà nó sẽ sử dụngCPU lần kế tiếp Khi CPU rãnh, nó sẽ được cấp cho tiến trình
có thời gian sử dụng CPU lần kế tiếp ngắn nhất
• Có hai cách thức thực hiện giải thuật:
o Không trưng dụng: một khi CPU được giao cho một tiến trình,
nó không thể bị trưng dụng để giao cho tiến trình khác có thời gian ngắn hơn cho đến khi tiến trình này sử dụng CPU xong.
o Trưng dụng: nếu một tiến trình mới đến có thời gian sử dụng
CPU ngắn hơn thời gian thực thi còn lại của tiến trình đang chạy,
thì ưu tiên giao CPU cho tiến trình mới đến Cách thức này được
gọi là Shortest-Remaining-Time-First (SRTF).
• SJF là tối ưu – nó tạo ra thời gian chờ đợi trung bình ngắnnhất
Trang 17• Chỉ cĩ thể ước lượng độ dài – cĩ thể tương tự như lần sử dụngtrước đĩ.
• Độ dài ước lượng được tính tốn dựa trên chiều dài thời gian
sử dụng CPU lần trước đĩ, sử dụng cơng thức trung bình mũ:
• Thơng thường α = ½
n n
n
n n
4.
1 0
, 3.
1 n thứ lần CPU dụng
sử gian thời
lượng ước
2.
n thứ lần tế
thực CPU
dụng sử
gian thời
1.
Trang 19o Chỉ tính đến thời gian sử dụng CPU thực gần nhất
• α =1/2, lịch sử quá khứ và gần đây có trọng số tương đương
• Nếu mở rộng công thức, ta có:
τn+1 = α tn+(1 - α) α tn-1 + … +(1 - α ) j+1 α tn-j + … +(1 - α ) n+1 τ0
• Vì α và (1- α) nhỏ hơn hay bằng 1, mỗi số hạng tiếp theo cótrọng số nhỏ hơn số hạng trước đó
Trang 20• Một chỉ số ưu tiên được gán cho mỗi tiến trình
• CPU sẽ được cấp cho tiến trình có độ ưu tiên cao nhất, nghĩa
là chỉ số ưu tiên nhỏ nhất (smallest integer ≡ highest priority)
• Có thể trưng dụng hoặc không trưng dụng
• SJF là một trường hợp của định thời ưu tiên, trong đó độ ưutiên là thời gian ước tính sử dụng CPU lần kế tiếp
• Vấn đề đói CPU (starvation): các tiến trình có độ ưu tiên thấp
có khả năng không bao giờ được thực thi
• Giải pháp: đặt thời hạn (aging) – khi thời gian trôi đi, độ ưu
tiên của tiến trình càng tăng theo
Trang 21Process A arri Burst Time T Priority
• Priority scheduling Gantt Chart
• Average waiting time = 8.2 msec
P419 6
P1
Trang 22• Mỗi tiến trình được CPU phục vụ trong một đơn vị thời gian nhỏ, gọi là định mức thời gian (time quantum), thường là 10-100 milliseconds.
• Sau khoảng thời gian này, CPU bị trưng dụng và giao cho tiến trình khác, tiến trình bị ngưng và chuyển vào hàng đợi sẵn sàng.
• Nếu có n tiến trình đang nằm trong hàng đợi sẵn sàng và định mức thời gian là q, thì mỗi tiến trình sẽ nhận được 1/n tổng thời gian của CPU, thời gian phục vụ của CPU cho nó tối đa là q Sẽ không có tiến trình nào phải chờ đợi quá lượng thời gian là (n-1)q.
• Bộ điếm thời gian (Timer) sẽ phát ra các ngắt (interrupt) sau mỗi định mức thời gian để định thời cho tiến trình tiếp theo
Trang 2480% of CPU bursts should
be shorter than q
Trang 26• Hàng đợi sẵn sàng được chia thành nhiều hàng đợi, tiến trình được gán cố định vào một hàng đợi, vd:
o foreground (interactive): cần thời gian đáp ứng nhanh hơn -> ưu tiên
hơn;
o background (batch): có thể đáp ứng chậm hơn -> ít ưu tiên hơn.
• Mỗi hàng đợi có giải thuật lập lịch biểu riêng:
o foreground – RR
• Thực hiện định thời giữa các hàng đợi, 2 khả năng:
o Định thời với độ ưu tiên cố định (nghĩa là, phục vụ tất cả tiến trình
trong foreground trước rồi đến background) Có khả năng dẫn đến việc đói CPU.
o Phân chia thời gian (time slice) – mỗi hàng đợi nhận được một khoảng
thời gian phục vụ nào đó của CPU để định thời cho các tiến trình nằm trong đó; VD 80% cho foreground với RR và 20% cho background với FCFS
Trang 28• Một tiến trình có thể di chuyển giữa các hàng đợi khác nhau.
• Cơ chế định thời hạn có thể được cài đặt theo cách:
o Nếu tiến trình dùng quá nhiều thời gian CPU, nó sẽ được di chuyển vào hàng đợi có độ ưu tiên thấp hơn;
o Nếu tiến trình đã chờ quá lâu trong 1 hàng đợi với độ ưu tiên thấp, nó
sẽ được chuyển sang hàng đợi có độ ưu tiên cao hơn => aging
• Bộ định thời đa cấp có phản hồi được định nghĩa bằng những tham
số sau:
o Số lượng hàng đợi
o Giải thuật định thời cho từng hàng đợi
o Phương thức dùng để quyết định khi nào thì nâng cấp một tiến trình.
o Phương thức dùng để quyết định khi nào thì hạ cấp một tiến trình
o Phương thức dùng để quyết định là nên đặt tiến trình vào hàng đợi nào khi tiến trình này cần được phục vụ.
Trang 29o Tại Q1 công việc sẽ lại được phục vụ theo kiểu FCFS và nhận được thêm 16 milliseconds Nếu nó vẫn chưa hoàn thành, nó sẽ bị tước
Trang 31• Định thời CPU sẽ phức tạp hơn với nhiều CPU hiện hữu.
• Các bộ xử lý giống nhau trong cùng một hệ thống đa xử lý
• Việc định thời có thể thực hiện:
o Đa xử lý bất đối xứng (Asymmetric Multiprocessor): chỉ một CPU truy cập đến các cấu trúc dữ liệu dùng chung => giảm việc bảo vệ các dữ liệu dùng chung
o Đa xử lý đối xứng (Symmetric Multiprocessor): mỗi CPU tự định thời từ hàng đợi chung, hay có riêng một hàng đợi cho mỗi CPU => đang được sử dụng phổ biến ngày nay
• Thực thi một tiến trình trên cùng một bộ xử lý trong suốt tiến
trình thực thi của tiến trình – processor affinity
o Soft affinity
o Hard affinity
Trang 32Note that memory-placement algorithms can also
Trang 33• Đối với hệ thống SMP cần giữ tải cân bằng giữa các CPUnhằm nâng cao hiệu quả hoạt động của hệ thống
• Cân bằng tải (load balancing) được thực hiện bằng cách cốgắng phân phối các công việc cho các CPU bằng nhau:
o Push migration – định kỳ kiểm tra tải trên mỗi CPU, nếu CPU
nào bị quá tải thì "đẩy"bớt công việc cho CPU khác
o Pull migration – các CPU rãnh "kéo" các công việc đang chờ
trên một CPU khác về thực thi
Trang 34• Nhiều lõi vi xử lý được đặt trên cùng một bộ xử lý => vi xử lý
đa nhân
• Nhanh hơn và tiêu tốn ít năng lượng hơn
• Hỗ trợ đa luồng trên mỗi nhân
o Một luồng có thể được thực thi trong khi luồng khác đang truy xuất bộ nhớ.
Trang 361 Mô hình xác định
2 Mô hình hàng đợi
3 Mô phỏng
4 Cài đặt
Trang 37• Cách đánh giá và chọn giải thuật thích hợp cho một hệ điềuhành?
• Xác định các tiêu chí, đánh giá giải thuật dựa trên các tiêu chíđó
• Deterministic modeling – mô hình xác định
o Đánh giá dựa trên sự phân tích
o Dựa vào tải công việc (workload) được xác định trước và tính toán hiệu năng của mỗi giải thuật.
• Cho các tiến trình đến
vào cùng một thời điểm:
Trang 38• Với mỗi giải thuật tính thời gian chờ trung bình
• Đơn giản, nhanh chóng, nhưng yêu cầu phải có các số liệu đầu vào chính xác, và chỉ đúng cho những dữ liệu đầu vào như đã cho
o FCFS: 28ms
o Non-preemptive SJF: 13ms
o RR: 23ms
Trang 39• Xác định sự phân phối các tiến trình đến và chu kỳ CPU-I/Otheo xác xuất, là điều có thể xác định được trong thưc tế.
o Thông thường phân phối theo hàm mũ
o Từ hai phân phối trên ta có thể tính trung bình thông lượng, hiệu năng tận dụng CPU, thời gian chờ,…
• Hệ thống máy tính được mô tả như một mạng các server cócác hàng đợi riêng (CPU là một server với hàng đợi sẵn sàng)
o Biết tốc độ đến và tốc độ phục vụ (dựa vào sự phân bổ chu kỳ CPU-I/O) => có thể tính khả năng sử dụng, chiều dài hàng đợi trung bình, thời gian chờ trung bình.
Trang 40• Luật Little – khi hệ thống trong trạng thái ổn định, số lượng
các tiến trình rời khỏi hàng đợi sẽ bằng với số lượng các tiếntrình vào hàng đợi:
n = x W
• Trong đó:
o n: chiều dài hàng đợi trung bình
o λ: tốc độ đến trung bình cho các tiến trình mới (vd 4 tiến trình/giây)
o W: thời gian chờ trung bình trong hàng đợi
• VD: trung bình có 7 tiến trình đến mỗi giây, và thông thường
có 14 tiến trình trong hệ thống, thì thời gian chờ trung bình củamỗi tiến trình là: 2s
Trang 41• Mô hình hàng đợi có độ chính xác giới hạn
• Mô phỏng cho kết quả chính xác hơn:
o Dùng phần mềm mô phỏng hệ thống máy tính
o Clock là một biến
o Khi thực thi mô phỏng, các thống kê hiệu năng của các giải thuật
sẽ được ghi nhận và là cơ sở cho vịêc so sánh các giải thuật.
o Dữ liệu dùng để thực hiện mô phỏng:
• Bộ sinh số ngẫu nhiên theo xác xuất
o Phân phối theo mô hình toán học hay theo kinh nghiệm
• Các sự kiện dược ghi lại trong hệ thống thực
Trang 43• Kể cả mô phỏng cũng cho kết quả giới hạn
• Cài đặt và kiểm tra các giải thuật định thời trên hệ thống thật
sẽ cho độ chính xác cao nhất
o Chi phí cao, rủi ro cao
o Môi trường đa dạng
• Hầu hết các bộ định thời có thể được sửa đổi để phù hợp vớitừng hệ thống => kết quả không chính xác trong các tìnhhuống tổng quát khác