Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 3

KIỂM TRA HỆ ĐIỀU HÀNH (1)

Câu 1: Có 4 tiến trình P1, P2, P3, P4 và 4 tài nguyên R1, R2, R3, R4 với khả năng phục vụ
là 10,9,9,5. Số lượng đơn vị tài nguyên cần thiết và đã cung cấp cho các tiến trình được cho
theo các bảng sau:
R1 R2 R3 R4 R1 R2 R3 R4
P1 6 2 4 2 P1 2 1 0 0
P2 3 4 5 3 P2 1 2 1 1
P3 7 4 7 3 P3 4 0 3 1
P4 3 5 4 3 P4 1 3 1 0

Cần thiết Max Đã cung cấp Allocation


Áp dụng thuật toán nhà quản lý nhà băng, kiểm tra hệ thống an toàn hay bế tắc ?

- Các thuộc tính cần biết:


+ Available[i]: Tài nguyên còn khả dụng của tài nguyên i.
+ Max[i,j]: Nhu cầu tối đa của tiến trình về tài nguyên i.
+ Allocation[i,j]: Số đơn vị của tài nguyên i đã cấp cho tiến trình.
+ Need[i,j]: Số đơn vị của tài nguyên i mà tiến trình cần sử dụng.
=> Need[i,j] = Max[i,j] – Allocation[i,j]
Bài làm
- Xác định số tài nguyên còn lại của từng loại:
Available (R1, R2, R3, R4)= (10, 9, 9, 5) - (8, 6, 5, 2) = (2, 3, 4, 3)
- Tính Need:
R1 R2 R3 R4
P1 4 1 4 2
P2 2 2 4 2
P3 3 4 4 2
P4 2 2 3 3

- Xác định tiến trình: Need <= Available


Vòng 1:
+ Có thể cấp tài nguyên cho P2(2, 2, 4, 2) do thỏa mãn số tài nguyên khả dụng (2, 3, 4, 3),
thực hiện P2 rồi giải phóng tài nguyên => Available= Available + Allocation (P2) = (3, 5, 5, 4)
+ Có thể cấp tài nguyên cho P3(3, 4, 4, 2) do thỏa mãn số tài nguyên khả dụng (3, 5, 5, 4) ,
thực hiện P3 rồi giải phóng tài nguyên => Available = Available + Allocation (P3) = (7, 5, 8, 5)
+ Có thể cấp tài nguyên cho P4(2, 2, 3, 3) do thỏa mãn số tài nguyên khả dụng (7, 5, 8, 5) ,
thực hiện P4 rồi giải phóng tài nguyên => Available = Available + Allocation (P4) = (8, 8, 9, 5)
Vòng 2:
+ Có thể cấp tài nguyên cho P1(4,1, 4, 2) do thỏa mãn số tài nguyên khả dụng (8, 8, 9, 5),
thực hiện P1, giải phóng tài nguyên => Available = Available + Allocation (P1) = (10, 9, 9, 5)
-> Vậy hệ thống ở trạng thái an toàn do tồn tại chuỗi an toàn là P2, P3, P4, P1
Câu 2: Thuật toán lập lịch: Các tiến trình cho trong bảng sau chạy trong chế độ CPU đơn

Tiến trình Thời điểm Thời gian thực


đến hiện
P1 0 7
P2 2 4
P3 3 3
P4 6 5

Hệ thống áp dụng thuật toán lập lịch SRT, vẽ biểu đồ Gantt và tính thời gian chờ đợi
trung bình và thời gian nằm trong hệ thống của các tiến trình?

- Nguyên tắc của thuật toán SRT:


+ Tại cùng một thời điểm nếu có 2 hay nhiều hơn Process yêu cầu chạy thì thuật toán sẽ ưu
tiên thằng có thời gian thực thi bé hơn chạy trước.
+ Khi một Process đang thực thi, tới một thời điểm mà có các Process khác yêu cầu chạy, thì
thuật toán sẽ tiến hành so sánh thời gian thực thi còn lại của process đang chạy với thời
gian thực thi của các Process có yêu cầu, thằng nào bé nhất thì được ưu tiên chạy trước.
+ Chỉ số thời gian chờ chỉ được xét tới trong lần chạy đầu tiên và lần so sánh đầu tiên, sau
khi Process nào đã thực thi cho dù chưa xong thì chỉ số thời gian chờ của Process đó không
còn được quan tâm nữa, tương tự các Process nếu đã được so sánh thời gian thực thi trong
một lượt nào đó rồi thì chỉ số thời gian chờ cũng không còn giá trị lập lịch nữa.

Bài làm
- Biểu đồ Gantt
P1 P2 P3 P1 P4
0 2 6 9 14 19
- Thời gian chờ đợi:
P1: 9-2=7
P2: 0
P3:6-3=3
P4: 14-6=8
=> Thời gian chờ đợi trung bình: (7+0+3+8)/4 = 4.5(s)

- Thời gian nằm trong hệ thống:


P1: 14-0=14
P2: 6-2=4
P3:9-3=6
P4: 19-6=13

Câu 3: Thuật toán lập lịch: Các tiến trình cho trong bảng sau chạy trong chế độ CPU đơn

Tiến trình Thời điểm Thời gian thực


đến hiện
P1 4 24
P2 19 17
P3 30 8
Hệ thống áp dụng thuật toán lập lịch RR, t=10, vẽ biểu đồ Gantt và tính thời gian chờ
đợi trung bình và thời gian nằm trong hệ thống của các tiến trình.
- Nguyên tắc hoạt động của thuật toán RR:
+ Đối với thuật giải RR, mỗi tiến trình trước khi bắt đầu được đưa vào CPU xử lý, sẽ được cấp
phát cho một đơn vị thời gian chiếm dụng CPU nhất định (quantum time).
+ Khi một tiến trình sử dụng hết thời gian quantum mà nó được cấp phát, thì dù vẫn còn phải
xử lý tiếp, phần dư của nó cũng sẽ được chuyển về phía sau trong danh sách hàng đợi.

Bài làm
- Biểu đồ Gantt:
P1 P1 P2 P1 P3 P2
4 14 24 34 38 46 52
- Thời gian chờ đợi:
P1: 34-24=10
P2: (24-19) + (46-34)=17
P3: 38-30= 8
=> Thời gian chờ đợi trung bình: (10+17+8)/3= 11.67 (s)
- Thời gian nằm trong hệ thống:
P1: 38-4= 34
P2: 52-19=33
P3: 46-30=16

Câu 4: Đồ thị phân phối tài nguyên có Bế tắc không? Vì sao?

Bài làm
(*): Giả sử P3yêu cầu một thể hiện của R3
Khi đó có 2 chu trình xuất hiện:
+ P1→R1→P2→R2→P3→R3→P1, và
+ P2→R2→P3→R3→P2+
+ Khi đó các tiến trình P1, P2, P3 bị bế tắc.

(**): Trong trường hợp này, một chu trình trong đồ thị là điều kiện cần nhưng chưa đủ để tồn
tại deadlock, do nhìn hình lại chúng ta thấy có 2 chu trình: P1 → R1 → P2 → R3 → P3 → R2
→ P1 và P2 → R3 → P3 → R2 → P2. Nghĩa là tiến trình P3 đang chờ tiến trình P1 hay P2 trả
lại tài nguyên R2. Ngoài ra, tiến trình P1 đang chờ tiến trình P2 trả lại phiên bản tài nguyên R1
cho nên tiến trình P1, P2, P3 đã bị Deadlock vì không có phiên bản tài nguyên yêu cầu hiện có
(vi phạm điều kiện deadlock).

You might also like