You are on page 1of 27

GIẢNG VIÊN: PHAN THỊ HỒNG NHUNG

THÀNH VIÊN
• Trần Hoàng Thông
• Trần Trung Trực
• Tiêu Nguyễn Thiên Ân
• Đỗ Thanh Tiến
• Nguyễn Thị Mỹ Uyên
NỘI DUNG
1. CÁC KHÁI NIỆM CƠ BẢN
2. CÁC CẤP ĐỘ ĐỊNH THỜI
3. MỤC TIÊU ĐỊNH THỜI CPU
4. CÁC GIẢI THUẬT ĐỊNH THỜI

3 NỘI DUNG
I. CÁC KHÁI NIỆM CƠ BẢN

1. GIỜ CPU
o Giờ CPU là thời gian mà CPU phục vụ cho tiến trình
hoạt động.
o Tại mỗi thời điểm nhất định, chỉ có một tiến trình được
phân phối giờ CPU để hoạt động.
2. CÁC TRẠNG THÁI CỦA TIẾN TRÌNH LIÊN QUAN
TỚI GIỜ CPU
o Ready: tiến trình được phân phối đầy đủ mọi tài
nguyên cần thiết và đang chờ giờ CPU.
o Running: tiến trình được phân phối mọi tài nguyên cần
thiết và giờ CPU.
o Waiting: tiến trình không thực hiện được vì thiếu một
vài tài nguyên( đợi dữ liệu I/O, tài nguyên bổ sung,…)
4 CÁC KHÁI NIỆM CƠ BẢN
Một tiến trình đang trong trạng thái thực hiện có thể rời khỏi
trạng thái bởi một trong ba lý do:
1. Tiến trình đã hoàn thành công việc, trả lại giờ CPU, chờ
xử lý kết thúc.
2. Tiến trình tự ngắt: khi chờ đợi một sự kiện nào đó. Khi
xuất hiện sự kiện đang chờ, nó sẽ chuyển sang trạng thái
thực hiện.
3. Tiến trình sử dụng hết giờ CPU dành cho nó, khi đó nó
được chuyển sang trạng thái sẵn sàng.

Việc chuyển sang trạng thái sẵn


sàng bản chất là thực hiện việc
phân phối lại giờ CPU).

5 CÁC KHÁI NIỆM CƠ BẢN


3. ĐỊNH THỜI CPU

Để điều khiển tiến trình ở nhiều trạng thái


khác nhau, hệ thống thường tổ chức các khối
điều khiển tiến trình để ghi nhận tình trạng sử
dụng tài nguyên và trạng thái tiến trình. Được
tổ chức theo hàng đợi như hình.

Định thời CPU là tổ chức một hàng đợi các


tiến trình sẵn sàng để phân phối giờ CPU
cho chúng dựa trên độ ưu tiên của các tiến
trình, sao cho hiệu suất sử dụng CPU là tối
ưu nhất.

6 CÁC KHÁI NIỆM CƠ BẢN


II. CÁC CẤP ĐỘ ĐỊNH THỜI

7 CÁC CẤP ĐỘ ĐỊNH THỜI


Long-term Scheduling Medium-term Scheduling Short-term Scheduling
- Xác định chương trình nào được chấp - Process nào được đưa vào (swap -Xác định process nào trong ready
nhận nạp vào hệ thống để thực thi. in), đưa ra (swap out) khỏi bộ nhớ queue sẽ được chiếm CPU để
- Điều khiển mức độ đa lập trình chính. thực thi kế tiếp (định thời CPU).
(multiprogramming) của hệ thống.
- Long-term Scheduling thường cố gắng - Được thực hiện bởi phần quản lí
duy trì xen lẫn CPU-bound và I/O-bound bộ nhớ.
process
8 CÁC CẤP ĐỘ ĐỊNH THỜI
o Bộ định thời Short term được gọi mỗi khi có
một trong số các sự kiện/interrup sau xảy ra:
- Ngắt ngoại vi (I/O interrup).
- Ngắt thời gian (clock interrup).
- Lời gọi hệ thống (operating system call).

Short term Scheduling còn được gọi là dispatcher


Dispatcher sẽ chuyển quyền điều khiển CPU về cho process được
chọn bởi bộ định thời ngắn hạn.
Bao gồm:
- Chuyển ngữ cảnh.
- Chuyển chế độ người dùng.
- Nhảy đến vị trí thích hợp trong chương trình ứng dụng để khởi
động lại chương trình.
Công việc này gây ra phí tổn:
Dispatch latency: thời gian mà dispatcher dừng một process và khởi
động một process khác
9 CÁC CẤP ĐỘ ĐỊNH THỜI
III. MỤC TIÊU ĐỊNH THỜI CPU

• Bộ điều phối không cung cấp cơ chế


mà đưa ra quyết định.
• Các hệ điều hành xây dựng nhiều chiến
lược khác nhau để thực hiện việc điều
phối. Nhưng tựu chung cần đạt được
những mục tiêu nhất định.

10 MỤC TIÊU ĐỊNH THỜI


- Các tiến trình chia sẻ CPU
một cách công bằng không có
tiến trình phải đợi vô hạn để
cấp phát CPU.
- Hệ thống phải tận dụng
được CPU 100%.

- Cực tiểu hóa thời gian hồi


đáp cho các tương tác của Tuy nhiên, thường
người sử dụng. không thể thỏa mãn
tất cả các mục đích
kể trên vì bản than
chúng có sự mâu
- Cực tiểu hóa thời gian hoàn thuẩn với nhau mà
tất các tác vụ. chỉ có thể dung hòa
chúng ở một mức
độ nào đó.
- Cực đại hóa số công việc
được xử lý trông một đơn vị
thời gian.
11 MỤC TIÊU ĐỊNH THỜI
IV. CÁC GIẢI THUẬT ĐỊNH THỜI

12 CÁC GIẢI THUẬT ĐỊNH THỜI


1/ FIRST-COME, FIRST-SERVED
A. THUẬT TOÁN

o Tiến trình nào yêu cầu CPU trước sẽ được thực thi trước;
process sẽ thực thi đến khi kết thúc hoặc bị blocked do
I/O.
o Chế độ quyết định: Non-Preemptive (Không độc quyền)
o Hiện thực: sử dụng hàng đợi FIFO (FIFO queues)
o Tiến trình đi vào được thêm vào cuối hàng đợi.
o Tiến trình được lựa chọn để xử lý được lấy từ đầu của
queues.
o Nếu thời gian thực hiện tiến trình tăng thì thời gian chờ
trung bình sẽ tăng theo.
o Khi có tiến trình dài, ít bị ngắt thì các tiến trình khác phải
chờ đợi lâu hơn.

13 CÁC GIẢI THUẬT ĐỊNH THỜI


Ví dụ: Cho dãy tiến trình với thời gian phục vụ tương ứng:

Nếu các tiến trình đến theo thứ tự P1, P2, P3 và được phục
vụ theo thứ tự FCFS, chúng ta nhận được kết quả:

o Thời gian chờ của các tiến


trình:
o P1= 0; P2= 24; P3= 27
14 CÁC CẤP ĐỘ ĐỊNH THỜI
o Thời gian chờ trung bình:
o (0 + 24 + 27)/3 = 17
Nếu các tiến trình theo thứ tự P2, P3, P1 thì ta có biểu đồ
Gantt như sau:

• Thời gian chờ của các tiến trình:


P1= 6; P2= 0; P3= 3
• Thời gian chờ đợi trung bình:
(6 + 0 + 3)/3 = 3

B. ƯU ĐIỂM

• Giờ CPU không bị phân phối lại.


• Chi phí tổ chức thực hiện thấp.
C. NHƯỢC ĐIỂM o Khi có tiến trình dài, ít bị
ngắt thì các tiến trình
khác phải chờ đợi lâu
o Nếu thời gian thực hiện hơn.
tiến trình tăng thì thời
o Thời gian trung bình sẽ gian chờ đợi trung bình
tang vô hạn khi hệ sẽ tăng theo.
thống tiếp cận tới hạn
khả năng phục vụ của
mình.

16 CÁC GIẢI THUẬT ĐỊNH THỜI


2/ SHORTEST-JOB-FIRST
A. THUẬT TOÁN
Thứ tự ưu tiên thực hiện tiến trình dựa vào tổng thời gian thực
hiện tiến trình.
-Gắn với mỗi tiến trình là thời gian sử dụng CPU tiếp sau của
nó. Thời gian này được sử dụng để lập lịch các tiến trình với
thời gian ngắn nhất.

Non-preemptive (Không ưu tiên trước )

Preemptive(Ưu tiên trước)

17 CÁC GIẢI THUẬT ĐỊNH THỜI


Non-preemptive
(Không ưu tiên)
Ví dụ:

Biểu đồ Gantt

Thời gian chờ của tiến trình: P1= 0; P2= 6; P3= 3; P4= 7
Thời gian chờ trung bình: (0+ 6 +3 + 7)/4= 4

18 CÁC GIẢI THUẬT ĐỊNH THỜI


Preemptive
(Ưu tiên)
Ví dụ:

Công thức mở rộng: 𝝉𝒏+𝟏 = 𝜶𝒕𝒏 + 𝟏 − 𝜶 𝜶𝒕𝒏−𝟏 + ⋯ +


𝟏 − 𝜶 𝒋 𝜶𝒕𝒏−𝒋 + ⋯ + 𝟏 − 𝜶 𝒏+𝟏 𝝉 .
𝟎
𝒕𝒏 : thời gian thực tế của sử dụng CPU.
𝝉𝒏+𝟏 : giá trị dự đoán cho sử dụng CPU tiếp theo.
𝜶, 𝟎 ≤ 𝜶 ≤ 𝟏
𝝉𝟎 là một hằng số
𝜶 = 0: 𝝉𝒏+𝟏 = 𝒕𝒏 = 𝝉𝟎

- Thời gian chờ trung bình: (9 + 1 + 0 + 2)/4 = 3


- Không thể biết chính xác thời gian sử dụng CPU tiếp
sau của tiến trình.
- Có thể đoán giá trị xấp xỉ của nó dựa vào thời gian
sử dụng CPU trước đó và sử dụng công thức đệ quy:
𝝉𝒏+𝟏 = 𝜶 𝒕𝒏 + (𝟏 − 𝜶)𝝉𝒏.
𝟏
19 Minh họa khi 𝜶 =
𝟐
và 𝝉𝟎 = 10
B. ƯU ĐIỂM
o Thời gian chờ đợi trung bình của các thuật toán
ngắn hơn so với FCFS.
o Nhanh chóng loại bỏ các tiến trình ngắn.
o Giảm số lượng tiến trình trong hàng đợi.

C. NHƯỢC ĐIỂM
o Chế độ phân phối lại giờ CPU được áp dụng
trong trường hợp ngắt các tiến trình có thể
không hợp lý.

20 CÁC GIẢI THUẬT ĐỊNH THỜI


3/ PRIORITY SCHEDULING

A. THUẬT TOÁN
- Mỗi tiến trình sẽ được gắn
một độ ưu tiên.
- CPU sẽ được cấp cho tiến
trình có độ ưu tiên cao nhất (có
số ưu tiên nhỏ nhất).
- SJF là trường hợp riêng của
lập lịch theo mức ưu tiên: mức
ưu tiên chính là thời gian sử
dụng CPU tiếp sau dự đoán
được.
Thời gian chờ trung bình:
Ví dụ: (0 + 1 + 6 + 16 + 18)/5 = 8,2

21 CÁC GIẢI THUẬT ĐỊNH THỜI


B. VẤN ĐỀ GẶP PHẢI

Những tiến trình có mức ưu tiên


thấp có thể không bao giờ được
thực hiện.

C. GIẢI PHÁP

Làm mới (Aging) - độ ưu tiên


của các tiến trình sẽ tăng theo
thới gian.

22 ADD A FOOTER MM.DD.20XX


4/ ROUND-ROBIN
• Mỗi tiến trình sử dụng một lượng nhỏ thời gian của Ví dụ: Time Quantum q= 4, ta có biểu đồ Gantt:
CPU, thường là 10-100s. Sau đó nó được ưu tiên đưa
vào cuối hàng đợi. Hàng đợi được tổ chức dạng FIFO
(FCFS).
• Nếu tiến trình có thời gian sử dụng CPU<q (định
lượng thời gian) Thời gian chờ của các tiến trình: P1= 6; P2= 4; P3= 7
=>Tiến trình sẽ tự nguyện nhường giờ CPU khi kết thúc. Thời gian chờ đợi trung bình: (6 + 4 + 7)/3= 5.66
Trình lập lịch sẽ chọn tiến trình kế tiếp trong hàng đợi.
• Nếu tiến trình có thời gian sử dụng CPU>q B. ƯU ĐIỂM
• => Bộ định thời sẽ đếm lùi và gây mất hệ điều hành Cho phép hệ thống ưu tiên những tiến trình ngắn (vì kết thúc
khi nó bằng 0. Việc chuyển ngữ cảnh được thực hiện sớm). Không gây tổn hại cho các tiến trình dài.
và tiến trình hiện tại được đưa xuống cuối hàng đợi để
nhường giờ CPU cho tiến trình kế tiếp.
C. NHƯỢC ĐIỂM
• Nếu q lớn => Tương tự như FCFS.
• Thường xuyên phải phân phối lại giờ CPU.
• Nếu q nhỏ => Số lần chuyển ngữ cảnh càng nhiều,
làm giảm hiệu năng. • Thời gian chờ đợi trung bình có thể lớn hơn so với FCFS.
• Chú ý: Nên chọn giá trị q cho thích hợp.
23 CÁC GIẢI THUẬT ĐỊNH THỜI
5/ MULTILEVEL QUEUE SCHEDULING
A.THUẬT TOÁN

• Được chia thành nhiều hàng đợi riêng lẻ:


+ Chạy ở chế độ giao tiếp (Foreground hay Interactive).
+ Chạy ở chế độ nền hay dạng bó (Background hay Batch).
• Mỗi hàng đợi có giải thuật lập lịch riêng:
+ Foreground –RR.
+ Background –FCFS.
• Phải có lập lịch giữa các hàng đợi:
+ Lập lịch với mức ưu tiên cố định.
+ Phân chia thời gian: mỗi hàng đợi nhận được một lượng giờ
CPU nào đó mà nó có thể lập lịch các tiến trình của nó.

24 CÁC GIẢI THUẬT ĐỊNH THỜI


o Khi có một tiến trình ở mức cao hơn cần
thực hiện thì hệ thống phải ngắt tiến trình ở
các mức thấp hơn để phục vụ tiến trình ở
mức cao.
o Không sử dụng hết hiệu suất giờ CPU được
phân bổ

B. NHƯỢC ĐIỂM

o Các tiến trình ở hàng đợi thứ hai hoạt động


tính toán dựa trên nền của các tiến trình ở
mức thứ nhất.
o Sau khi thực hiện, tiến trình ở mức nào phải
quay trở về đó nếu chưa kết thúc.

25 CÁC GIẢI THUẬT ĐỊNH THỜI


6/ MULTILEVEL FEEDBACK
QUEUE
THUẬT TOÁN

Một tiến trình có thể di chuyển giữa các hàng đợi.


Trình lập lịch đa mức hàng đợi thông tin phản hồi được
xác định bởi các tham số:
o Số lượng hàng đợi.
o Giải thuật định thời cho mỗi hàng đợi.
o Phương pháp được dung để xác định khi nâng cấp một
quá trình tới hàng đợi có độ ưu tiên cao hơn.
o Phương pháp được dùng để xác định khi nào chuyển một
quá trình tới hàng đợi có độ ưu tiên thấp hơn.
o Phương pháp được dùng để xác định một tiến trình sẽ đi
vào khi nào và khi nào tiến trình đó được phục vụ.
26 CÁC GIẢI THUẬT ĐỊNH THỜI
THANK YOU!

You might also like