Tải bản đầy đủ
3 Lập lịch tiến trình (tiếp)

3 Lập lịch tiến trình (tiếp)

Tải bản đầy đủ

LOGO

2.3. Lập lịch tiến trình (tiếp)
Các thuật toán lập lịch
2.3.1 First Come First Served =FCFS
VD1: Giả sử có 3 tiến trình với thời gian thực hiện
tương ứng là 24ms, 3ms, 6ms
Giả sử 3 tiến trình đó được xếp theo thứ tự trong
hàng đợi là P1, P2, P3 như sau:

Thời gian chờ của P1: 0ms
Thời gian chờ của P2: 24ms

Thời gian chờ đợi trung bình là:

Thời gian chờ của P3: 27ms

(0+24+27)/3=17ms
31

LOGO

2.3. Lập lịch tiến trình (tiếp)
Các thuật toán lập lịch
2.3.1 First Come First Served =FCFS
VD2: Xét 3 tiến trình trong vd1 nhưng thứ tự hàng đợi
là: P3, P2, P1 như sau

Thời gian chờ của P1: 9 ms
Thời gian chờ của P2: 6 ms

Thời gian chờ đợi trung bình là:

Thời gian chờ của P3: 0 ms

(0+6+9)/3=5ms
32

LOGO

2.3. Lập lịch tiến trình (tiếp)
Các thuật toán lập lịch
2.3.2 Shortest Job First (SJF)
-

Chọn trong hàng đợi tiến trình có độ dài phiên sử
dụng CPU ngắn nhất để cấp phát CPU

-

Nếu 2 tiến trình có độ dài phiên sử dụng CPU ngắn
nhất bằng nhau thì tiến trình nào đứng trước sẽ
được lựa chọn

→ Khó khăn trong việc ước lượng độ dài phiên sử
dụng CPU của tiến trình
33

LOGO

2.3. Lập lịch tiến trình (tiếp)
Các thuật toán lập lịch
2.3.2 Shortest Job First (SJF)
VD3: Có 3 tiến trình P1, P2, P3 như sau:
Process

Time

P1

4

P2

7

P3

1

(ms)

→ Thứ tự thực hiện: P3, P1, P2
→ Thời gian chờ đợi trung bình: (0 +1+5)/3=2ms

34

LOGO

2.3. Lập lịch tiến trình (tiếp)
Các thuật toán lập lịch
2.3.2 Shortest Job First (SJF)
-

Biến thể SRJF (Remaining)

-

1 tiến trình mới xuất hiện mà có độ dài phiên sử
dụng CPU nhỏ hơn thời gian cần CPU còn lại của
tiến trình đang thực thi thì hệ điều hành sẽ thu hồi
CPU của tiến trình đang chạy, phân phối cho tiến
trình mới

35

LOGO

2.3. Lập lịch tiến trình (tiếp)
Các thuật toán lập lịch
2.3.2 Shortest Job First (SJF)
VD4: SRJF
Process
Thời điểm đến
P1
0.0

Burst time
7

P2

2.0

4

P3

4.0

1

P4

5.0

4

(ms)

→ Thứ tự thực hiện:
→ Thời gian chờ trung bình: = (9 + 1 + 0 + 2)/4 = 3
36

LOGO

2.3. Lập lịch tiến trình (tiếp)
Các thuật toán lập lịch
2.3.3. Round-Robin (lập lịch quay vòng)
- Áp dụng cho các hệ điều hành chia sẻ thời gian
- Có cơ chế phân phối lại bằng cách sử dụng ngắt của
đồng hồ
- Hệ thống sử dụng những khoảng thời gian nhỏ gọi
là lượng tử thời gian t
- Khi CPU được giải phóng, hệ điều hành đặt thời gian
của đồng hồ bằng độ dài của lượng tử, lấy tiến trình
ở đầu hàng đợi và cấp phát CPU cho nó
37

LOGO

2.3. Lập lịch tiến trình (tiếp)
Các thuật toán lập lịch
2.3.3. Round-Robin (lập lịch quay vòng)

- Tiến trình kết thúc trước khi hết thời gian t: trả lại
quyền điều khiển cho hệ điều hành
- Hết lượng tử thời gian mà tiến trình chưa kết thúc:
+ Đồng hồ sinh ngắt
+ Tiến trình đang thực hiện phải dừng lại
+Quyền điều khiển trả cho hàm xử lý ngắt của hệ điều
hành
+ Hệ điều hành chuyển tiến trình về cuối hàng đợi, đọc
thông tin ở đầu và tiếp tục
38

LOGO

2.3. Lập lịch tiến trình (tiếp)
Các thuật toán lập lịch
2.3.3 Round-Robin (lập lịch quay vòng)
VD: Giả sử có 3 tiến trình P1, P2, P3 theo thứ tự hàng
đợi với thời gian thực hiện tương ứng là: 24 ms,
3ms, 6ms và vào hàng chờ tại cùng thời điểm 0
- Lượng tử thời gian t=4ms
→ Trình tự thực hiện:

→ Thời gian chờ đợi trung bình: (9+4+11)/3= 8ms
39

LOGO

2.3. Lập lịch tiến trình (tiếp)
Các thuật toán lập lịch
2.3.4. Priority Scheduling (lập lịch có độ ưu tiên)
- Mỗi tiến trình được gán 1 tham số lập lịch gọi là độ
ưu tiên
- Tiến trình nào có độ ưu tiên cao hơn sẽ được sử
dụng CPU
- SJF là trường hợp riêng của lập lịch có độ ưu tiên
với độ ưu tiên là 1/t
- 2 cách xác định độ ưu tiên:
+ Trong: time, bộ nhớ, số file đang mở
+ Ngoài: mức độ quan trọng, …do người dùng quy
định
40

LOGO

2.3. Lập lịch tiến trình (tiếp)
Các thuật toán lập lịch
2.3.4. Priority Scheduling (lập lịch có độ ưu tiên)
- Hiện tượng “Chờ không xác định”: 1 tiến trình có độ ưu
tiên thấp hơn có thể nằm trong hàng chờ trong 1
khoảng thời gian dài nếu trong hàng chờ luôn có các
tiến trình có độ ưu tiên cao hơn
- Để tránh hiện tượng “ Chờ không xác định” thêm vào
tham số tuổi để xác định thời gian nằm trong hàng chờ
- Tham số tuổi được sử dụng để tăng độ ưu tiên của tiến
trình
41