Môn: HỆ ĐIỀU HÀNH
HỌ VÀ TÊN: Nguyễn Thanh Hiếu
LỚP: IT007.M21.HTCL
MSSV: 20521328
BÀI 1: Cho 1 hệ thống có 4 tiến trình P1 đến P4 và 3 loại tài nguyên R1 (3), R2 (2) R3
(2). P1 giữ 1 R1 và yêu cầu 1 R2; P2 giữ 2 R2 và yêu cầu 1 R1 và 1 R3; P3 giữ 1 R1 và
yêu cầu 1 R2; P4 giữ 2 R3 và yêu cầu 1 R1
a, Vẽ đồ thị tài nguyên cho hệ thống này?
b, Deadlock?
P1
P2
P3
P4
Allocation
R1
R2
R3
1
0
0
0
2
0
1
0
0
0
0
2
Max
R1 R2 R3
1
1
0
1
2
1
1
1
c, Chuỗi an tồn? (nếu có)
- Chuỗi an toan: P4->P2->P3->P1
1
0
0
2
Need
R1 R2 R3
0
1
0
1
0
1
0
1
1
0
0
0
Available
R1
R2
R3
1
0
0
1
0
2
1
2
2
2
2
2
Bài 2:
Allocation
A
B
P0 0
0
P1 1
0
P2 1
3
P3 0
6
P4 0
0
C
1
0
5
3
1
D A
2 0
0 1
4 2
2 0
4 0
Max
B
0
7
3
6
6
C D A
1 2 0
5 0 0
5 6 1
5 2 0
5 6 0
=> chuỗi an toàn : P0->P2->P3->P4->P1
=> Hệ thống an tồn
Nếu P1 u cầu (0,4,2,0)
Ta có: Request1 <= Need1
Request1 <= Available
Giả sử cấp phát tài nguyên cho P1 thành cơng, ta có:
Available = Available – Request1 = (1,1,0,0)
Need1 = Need1 - Request1 = (0,3,3,0)
Need
B
0
7
0
0
6
C D A
0 0 1
5 0 1
0 2 2
2 0 2
4 2 2
Available
B
C D
5
2 0
5
3 2
8
8 6
14
11 8
14
12 12
Allcation1 = Allocation1 + Request1 = (1,4,2,0)
Allocation
Max
Need
Available
A
B
C D A B C D A
B
C D A
B
C D
P0 0
0
1 2 0
0
1 2 0
0
0 0 1
1
0 0
P1 1
4
2 0 1
7
5 0 0
3
3 0 1
1
1 2
P2 1
3
5 4 2
3
5 6 1
0
0 2 2
4
6 6
P3 0
6
3 2 0
6
5 2 0
0
2 0 3
8
8 6
P4 0
0
1 4 0
6
5 6 0
6
4 2 3
8
9 10
Sau khị cấp phát ta có chuỗi an tồn là: P0 -> P2 -> P1 -> P4 -> P3 => Có thể cấp phát
được.
Bài 3:
a,
Allocation
A
B
P0 3
0
P1 2
2
P2 3
1
P3 0
5
P4 4
2
C
1
1
2
1
1
Max
D A B
4 5
1
0 3
2
1 3
3
0 4
6
2 6
3
C D A
1 7 2
1 1 1
2 1 0
1 2 4
2 5 2
Need
B
1
0
2
1
1
C D A
0 3 0
0 1 3
0 0 5
0 2 5
1 3
Available
B
3
4
6
11
C
0
2
3
4
D
1
2
2
2
=> Trạng thái khơng an tồn do khơng tìm được giá trị Needi nhỏ hơn Available =
(5,11,4,2)
b,
Allocation
Max
A
B
C D A B C
P0 3
0
1 4 5
1
1
P1 2
2
1 0 3
2
1
P2 3
1
2 1 3
3
2
P3 0
5
1 0 4
6
1
P4 4
2
1 2 6
3
2
=> Chuỗi an toàn: P1 -> P2 -> P3 -> P4 -> P0
=> Trạng thái an toàn
Bài 4:
a,
D A
7 2
1 1
1 0
2 4
5 2
Need
B
1
0
2
1
1
C D
0 3
0 1
0 0
0 2
1 3
Available
A
B
1
0
3
1
6
3
6
4
10
5
C
0
1
3
4
5
D
2
2
3
3
5
Allocation
Max
A
B
C D A B
P0 2
0
0 1 4
2
P1 3
1
2 1 5
2
P2 2
1
0 3 2
3
P3 1
3
1 2 1
4
P4 1
4
3 2 3
6
Chuỗi an toàn: P0->P3->P4->P1->P2
C D A
1 2 2
5 2 2
1 6 0
2 4 0
6 5 2
Need
B
2
1
2
2
2
C D
1 1
3 1
1 3
1 2
3 3
Available
A
B
3
3
5
3
6
6
7
10
10
11
C
2
2
3
6
8
D
1
2
4
6
7
Allocation
Max
Need
Available
A
B
C D A B C D A
B
C D A
B
C
P0 2
0
0 1 4
2
1 2 2
2
1 1 2
2
2
P1 4
2
2 1 5
2
5 2 1
0
3 1 4
2
2
P2 2
1
0 3 2
3
1 6 0
2
1 3 5
5
3
P3 1
3
1 2 1
4
2 4 0
2
1 2 6
9
6
P4 1
4
3 2 3
6
6 5 2
2
3 3 10
11
8
Chuỗi an toàn: P0 -> P3 -> P4 -> P1 -> P2
D
1
2
4
6
7
b,
Ta có: Request1 <= Need1
Request1 <= Available
Giả sử cấp phát tài nguyên cho P1 thành công:
Available = Available – Request1 = (2,2,2,1)
Need1 = Need1 – Request1 = (1,0,3,1)
Allocation1 = Allocation1 + Request1 = (4,2,2,1)