Professional Documents
Culture Documents
lịch CPU
Các khái niệm cơ bản :
txh : thời điểm xuất hiện 1 tiến trình (or 1 đoạn tiến
trình).
tbđ : thời điểm bắt đầu thực hiện 1 tiến trình or 1 đoạn
tiến trình.
tkt : thời điểm kết thúc xử lý 1 tiến trình or 1 đoạn tiến
trình.
Chú ý : 1 tiến trình ban đầu có thể
được xử lý thành nhiều đoạn tiến trình
khác nhau.
Ví dụ : tiến trình Pi khi thi hành thì
CPU thi hành thành 3 đoạn tiến trình
là Pi1, Pi2, Pi3. ta có các thông số sau :
Đoạn Pi1 có txh1, tbđi1, tkti1
Đoạn Pi2 có txh2, tbđi1, tkti1 thời
điểm xuất hiện của đoạn này là txh2 =
tkti1
Đoạn Pi3 có txh3, tbđi3, tkti3thời điểm
xuất hiện của đoạn này là txh3 = tkti2
tbđ - txh : Thời gian chờ của 1 tiến trình
or 1 đoạn tiến trình.
tkt - txh : Thời gian xử lý của 1 tiến
trình or 1 đoạn tiến trình.
1. FCFS
ví dụ : cho 1 hệ tt như bảng sau:
Process tx/h CPUb
P0 7 9
P1 6 5
P2 2 8
P3 4 6
P4 0 2
P5 3 1
a. Giản đồ gantt
P4 P2 P5 P3 P1 P0
0 2 10 11 17 22 31
b. Tính thời gian chờ đợi trung bình của hệ tt
- Thời gian đợi của P0 là : 22 – 7 = 15
- Thời gian đợi của P1 là : 17 – 6 = 11
- Thời gian đợi của P2 là : 2 – 2 = 0
- Thời gian đợi của P3 là : 11 – 4 = 7
- Thời gian đợi của P4 là : 0 – 0 = 0
- Thời gian đợi của P5 là : 10 – 3 = 7
Tổng thời gian đợi của hệ tt là : 15 + 11+ 0 + 7 +0 + 7 = 40
Thời gian chờ đợi trung bình của hệ tt là : 40/6 = 6,67
c. Tính thời gian xử lý trung bình của hệ tt
- Thời gian xử lý của P0 là : 31 – 7 = 24
- Thời gian xử lý của P1 là : 22 – 6 = 16
- Thời gian xử lý của P2 là : 10 – 2 = 8
- Thời gian xử lý của P3 là : 17 – 4 = 13
- Thời gian xử lý của P4 là : 2 – 0 = 2
- Thời gian xử lý của P5 là : 11 – 3 = 8
Tổng thời gian xử lý của hệ tt là : 24 + 16 + 8 + 13 + 2 + 8 = 71
Thời gian xử lý trung bình của hệ tt là : 71/6 = 11,833
P5 P4 P1 P3 P2 P0
0 1 3 8 14 22 31
2. SJF ( Shortest Job First)
- tx.h của các tiến trình trong hệ tt đã cho là khác nhau.
- tt nào xuất hiện đầu tiên trong hệ thì được xử lý trước
và xử lý xong, các tiến trình còn lại xuất hiện trong hệ thì
tiến trình nào có giờ CPU nhỏ nhất thì được xử lý trước và
xử lý xong, nếu bằng nhau thì thực hiện theo FCFS.
P0 P4 P5 P2 P3 P1
0 7 9 10 14 18 23
b. Tính thời gian chờ đợi trung bình của hệ tt
- Thời gian đợi của P0 là : 0 – 0 = 0
- Thời gian đợi của P1 là : 18 – 2 = 16
- Thời gian đợi của P2 là : 10 – 3 = 7
- Thời gian đợi của P3 là : 14 – 4 = 10
- Thời gian đợi của P4 là : 7 – 5 = 2
- Thời gian đợi của P5 là : 9 – 8 = 1
Tổng thời gian đợi của hệ tt là : 0 + 16 + 7 + 10 + 2 + 1 = 36
Thời gian chờ đợi trung bình của hệ tt là : 36/6 = 6
c. Tính thời gian xử lý trung bình của hệ tt
- Thời gian xử lý của P0 là : 7 – 0 = 7
- Thời gian xử lý của P1 là : 23 – 2 = 21
- Thời gian xử lý của P2 là : 14 – 3 = 11
- Thời gian xử lý của P3 là : 18 – 4 = 14
- Thời gian xử lý của P4 là : 14 – 5 = 9
- Thời gian xử lý của P5 là : 10 – 8 = 2
Tổng thời gian xử lý của hệ tt là : 7 + 21 + 11 + 14 + 9 + 2 = 64
Thời gian xử lý trung bình của hệ tt là 64/6 = 10,67
3. SRTF ( Shortest Remaining Time First)
Là lập lịch SJF mở rộng.
Thời gian xử lý còn lại của các tiến trình nhỏ nhất
thì được xử lý trước, nếu bằng nhau thì thực hiện theo
FCFS.
Ví dụ: cho 1 hệ tt như bảng sau
Process txuÊt hiÖn CPUthùc hiÖn
P0 0,0 5
P1 3,0 10
P2 2,0 6
P3 5,0 7
P4 6,0 3
P5 7,0 1
Hãy sử dụng lập lịch SRTF để :
a. Vẽ giản đồ gantt cho hệ tt trên
b. Tính thời gian chờ đợi trung bình của hệ tt
c. Tính thời gian xử lý trung bình của hệ tt
Giải :
a. Giản đồ gantt
P0 P2 P4 P5 P4 P2 P3 P1
0 5 6 7 8 10 15 22 32
P
b. Tính thời gian chờ đợi trung bình của hệ tt
- Thời gian đợi của P0 là : 0 – 0 = 0
- Thời gian đợi của P1 là : 22 – 3 = 0
- Thời gian đợi của P2 là : 5 + (7 – 6) + (8 – 7) + (10 – 8) – 3 = 6
- Thời gian đợi của P3 là : 15 – 5 = 10
- Thời gian đợi của P4 là : 6 + (8 – 7) – 6 = 1
- Thời gian đợi của P5 là : 7 – 7 = 0
Tổng thời gian đợi của hệ tt là : 0 + 0 + 6 + 10 + 1 + 0 = 17
Thời gian chờ đợi trung bình của hệ tt là : 17/6 = 2,83
c. Tính thời gian xử lý trung bình của hệ tt
- Thời gian xử lý của P0 là : 5 – 0 = 5
- Thời gian xử lý của P1 là : 32 – 3 = 29
- Thời gian xử lý của P2 là : (6 – 0) + (15 – 6) – 3 = 12
- Thời gian xử lý của P3 là : 22 – 5 = 17
- Thời gian xử lý của P4 là : (7 – 0) + (10 – 7) – 6 = 4
- Thời gian xử lý của P5 là : 8 – 7 = 1
Tổng thời gian xử lý của hệ tt là : 5 + 29 + 12 + 17 + 4 + 1 = 68
Thời gian xử lý trung bình của hệ tt là : 68/6 = 11,33
4. Lập lịch Round Robin (RR)
Nguyên lý : FIFO
Các tt trong hệ được xử lý theo một lượng tử thời gian cho
trước ( Time Quantum - qq), khi xử lý hết 1 qq thì tiến trình sẽ bị
tạm dừng, phần còn lại của tiến trình đó sẽ được đưa vào cuối
hàng đợi. CPU sẽ thực hiện xử lý tiến trình tiếp theo, hết 1 vòng
nếu tiến trình nào còn giờ CPU thì tiếp tục được thực hiện, việc
thi hành các tt sẽ lặp đi lặp lại cho đến khi các tt hết giờ CPU thì
dừng.
q=3
P3 P4 P3 P2 P0 P4 P1 P0 P4 P1 P0
0 3 6 7 8 11 14 17 20 21 23 26
b. Tính thời gian chờ đợi trung bình của hệ tt
- Thời gian đợi của P0 là :
- Thời gian đợi của P1 là :
- Thời gian đợi của P2 là :
- Thời gian đợi của P3 là :
- Thời gian đợi của P4 là :
- Thời gian đợi của P5 là :
Tổng thời gian đợi của hệ tt là :
Thời gian chờ đợi trung bình của hệ tt là :
c. Tính thời gian xử lý trung bình của hệ tt
- Thời gian xử lý của P0 là :
- Thời gian xử lý của P1 là :
- Thời gian xử lý của P2 là :
- Thời gian xử lý của P3 là :
- Thời gian xử lý của P4 là :
- Thời gian xử lý của P5 là :
Tổng thời gian xử lý của hệ tt là :
Thời gian xử lý trung bình của hệ tt là :
Nếu
CPUb của Pi ≤ q thì : Pi được
xử lý xong.
CPUb của Pi > q thì : sau khi Pi
được xử lý 1 q, phần còn lại của
Pi được đưa vào hàng đợi.