Thảo luận Bài 8: Thuật giải Nhà băng
+28
nguyenlehuutai(113A)
ngongocdiep06 (113A)
huynhquanghao_I92C
TranThichThem (113A)
TranVanTien (I12A)
TranThiHuyenTrang(113A)
TranThiThuyQuyen (113A)
VuMinhTan (113A)
nguyenvantinh (11a3)
DangThiKimKhanh (113A)
PhamHoangQuan (113A)
voanhvy (113A)
trantrungnam-HC11TH2A
TranMinhNhat61 (102c)
VuNguyenDucMinh (113A)
ThuyDuong23 (I12A)
vutanthanh68 (113A)
LeThanhTan66 (113A)
NguyenThiNgocPhuong(113A)
NguyenThanhHien (113A)
HaHoangCongTien80 (113A)
TranTuanVu (113A)
LeHuynhChiTam (113A)
VoHoangTrung (113A)
LePhamTuanVu02 (113A)
phamanhtuan95(113A)
nguyenduchuy19 (113A)
Admin
32 posters
Trang 2 trong tổng số 2 trang
Trang 2 trong tổng số 2 trang • 1, 2
Re: Thảo luận Bài 8: Thuật giải Nhà băng
thầy ơi em sửa vậy được chưa thầy
vutanthanh68 (113A)- Tổng số bài gửi : 64
Join date : 17/07/2012
Re: Thảo luận Bài 8: Thuật giải Nhà băng
dùng thuật giải nhà băng chứng minh trạng thái này an toàn
tiến trình---- Được cấp(ổ đĩa) ---tối đa cần(ổ đĩa)
P1 ------------ 5------------------------- 10
P2------------- 2-------------------------- 4
P3-------------2--------------------------- 9
-Available=12-9=3
-Need=Max-Allocation
P1=10-5=5
P2=4-2=2
P3=9-2=7
work ≥ Need--- Pi ----- Allocation(i)
3 -------- 2------- P2-----2
5--------- 5------- P1----- 5
10--------7------- P3------2
-Tồn tại chuỗi an toàn T0={P2,P1,P3}
Vậy trạng thái tại thời điểm T0 là an toàn.
tiến trình---- Được cấp(ổ đĩa) ---tối đa cần(ổ đĩa)
P1 ------------ 5------------------------- 10
P2------------- 2-------------------------- 4
P3-------------2--------------------------- 9
-Available=12-9=3
-Need=Max-Allocation
P1=10-5=5
P2=4-2=2
P3=9-2=7
work ≥ Need--- Pi ----- Allocation(i)
3 -------- 2------- P2-----2
5--------- 5------- P1----- 5
10--------7------- P3------2
-Tồn tại chuỗi an toàn T0={P2,P1,P3}
Vậy trạng thái tại thời điểm T0 là an toàn.
ThuyDuong23 (I12A)- Tổng số bài gửi : 35
Join date : 17/02/2012
Age : 34
Đến từ : DakLak
Công thức thuật giải nhà băng
Work0 = hệ có
Work1 = Work0 + Allocation0
Work2 = Work1 + Allocation1
................
Workn = Work(n-1) + Allocation(n-1)
Work1 = Work0 + Allocation0
Work2 = Work1 + Allocation1
................
Workn = Work(n-1) + Allocation(n-1)
TranMinhNhat61 (102c)- Tổng số bài gửi : 55
Join date : 16/07/2012
Re: Thảo luận Bài 8: Thuật giải Nhà băng
hế nào là trạng thái an toàn của hệ thống?
Một trạng thái được gọi là an toàn “safe” nếu tồn tại ít nhất một cách mà trong một
khoảng thời gian hữu hạn nào đó, hệ thống có thể cấp phát tài nguyên thỏa mãn cho tất cả process thực thi hoàn tất .
Khi đó hệ thống tồn tại một Chuỗi an toàn {P1, P2, … , Pn } bao gồm tất cả các tiến trình sao cho với mỗi Pi, các tài nguyên mà nó yêu cầu có thể được đáp ứng bởi số lượng hiện có cộng thêm của tất cả các Pj mà j < i.
Nếu các TN yêu cầu không có đủ, Pi phải chờ cho đến khi tất cả các Pj trả lại các TN mà chúng chiếm giữ.
Khi Pi nhận được đủ TN cần thiết, nó sử dụng và trả lại HĐH để Pi+1 có thể vận hành, cứ như thế cho đến Pn
Khi một process yêu cầu một tài nguyên đang sẵn có, hệ thống sẽ kiểm tra: nếu việc cấp phát này không dẫn đến tình trạng unsafe thì sẽ cấp phát ngay.
Trình bày 4 cách ngăn chặn Deadlock.
Để ngăn chặn Deadlock ta phải làm sao cho ít nhất 1 trong 4 điều kiện dẫn đến Deadlock không xảy ra. Cụ thể:
- Với Mutual Exclusion: Đảm bảo TN(tai nguyên) nào cũng dùng chung được cùng một lúc bởi nhiều tiến trình.
- Với Hold and Wait:
1- Khi TT yêu cầu TN, nó không được giữ 1 TN nào khác.
2- TT phải yêu cầu và được cấp tất cả các TN mà nó cần ngay đầu công việc.
- Với No Preemption:
1- Khi TT giữ TN mà xin thêm nhưng không được, các TN mà nó giữ phải bị tiếm quyền sử dụng và trả lại HĐH.
2- Khi TT xin thêm TN, nếu TN này đang được giữ bởi TT khác đang ở trạng thái chờ, TN của TT khác này bị tiếm quyền sử dụng để cấp cho TT đang xin.
- Với Circular Wait: Cấp TN theo một thứ tự nào đấy.
Một trạng thái được gọi là an toàn “safe” nếu tồn tại ít nhất một cách mà trong một
khoảng thời gian hữu hạn nào đó, hệ thống có thể cấp phát tài nguyên thỏa mãn cho tất cả process thực thi hoàn tất .
Khi đó hệ thống tồn tại một Chuỗi an toàn {P1, P2, … , Pn } bao gồm tất cả các tiến trình sao cho với mỗi Pi, các tài nguyên mà nó yêu cầu có thể được đáp ứng bởi số lượng hiện có cộng thêm của tất cả các Pj mà j < i.
Nếu các TN yêu cầu không có đủ, Pi phải chờ cho đến khi tất cả các Pj trả lại các TN mà chúng chiếm giữ.
Khi Pi nhận được đủ TN cần thiết, nó sử dụng và trả lại HĐH để Pi+1 có thể vận hành, cứ như thế cho đến Pn
Khi một process yêu cầu một tài nguyên đang sẵn có, hệ thống sẽ kiểm tra: nếu việc cấp phát này không dẫn đến tình trạng unsafe thì sẽ cấp phát ngay.
Trình bày 4 cách ngăn chặn Deadlock.
Để ngăn chặn Deadlock ta phải làm sao cho ít nhất 1 trong 4 điều kiện dẫn đến Deadlock không xảy ra. Cụ thể:
- Với Mutual Exclusion: Đảm bảo TN(tai nguyên) nào cũng dùng chung được cùng một lúc bởi nhiều tiến trình.
- Với Hold and Wait:
1- Khi TT yêu cầu TN, nó không được giữ 1 TN nào khác.
2- TT phải yêu cầu và được cấp tất cả các TN mà nó cần ngay đầu công việc.
- Với No Preemption:
1- Khi TT giữ TN mà xin thêm nhưng không được, các TN mà nó giữ phải bị tiếm quyền sử dụng và trả lại HĐH.
2- Khi TT xin thêm TN, nếu TN này đang được giữ bởi TT khác đang ở trạng thái chờ, TN của TT khác này bị tiếm quyền sử dụng để cấp cho TT đang xin.
- Với Circular Wait: Cấp TN theo một thứ tự nào đấy.
trantrungnam-HC11TH2A- Tổng số bài gửi : 68
Join date : 21/02/2012
Age : 34
Đến từ : binh phuoc
Re: Thảo luận Bài 8: Thuật giải Nhà băng
Thanks nhiều nhé mấy bạn
voanhvy (113A)- Tổng số bài gửi : 31
Join date : 17/07/2012
Age : 35
Re: Thảo luận Bài 8: Thuật giải Nhà băng
VoHoangTrung (113A) đã viết:a)VoHoangTrung (113A) đã viết:Bài Tập : 1 hệ thống có 12 ổ băng từ và 3 tiến trình với bảng cấp phát tài nguyên như sau:
Tiến Trình Đã được cấp ( Số Ổ) Tối Đa cần số ổ
P1 5 10
P2 2 4
P3 2 9
Dùng Thuật giải nhà băng để:
a) Chứng minh trạng thái này là an toàn
b) Xác định có nên đáp ứng hay không yêu cầu xin thêm 1 ổ nữa của P3 ?
Các bạn giải bài này thử mình k hiểu lắm
-Hệ có :Available=12-(5+2+2)=3
-Need=Max-Allocation
P1=10-5=5
P2=4-2=2
P3=9-2=7
work Needi Pi Allocation
3 2 P2 2
5 5 P1 5
10 7 P3 2
-Tồn tại chuỗi an toàn T0={P2,P1,P3}
Vậy trạng thái tại thời điểm T0 là an toàn.
k biết đúng hem
Chưa theo kịp lớp nhưng hi vọng từ nay tới thi sẽ nắm hết đễ pass qua môn này
Re: Thảo luận Bài 8: Thuật giải Nhà băng
Cảm ơn sự hướng dẫn của thầy và bài làm của bạn .!!!!vutanthanh68 (113A) đã viết:chúng ta có 12 ổ băng từcâu 1:dùng giải thuật nhà băng để chứng minh trạng thái này là an toàn.
Tiến Trình Đã Cấp Tối Đa Cần(MAX) P1 5 10 P2 2 4 P3 2 9
câu 2:xác định có nên đáp ứng hay không khi P3 xin thêm 1 ổ nữa
Giải
Câu 1:
Tiến Trình Đang Giữ MAX Need Hệ Có P1 5 10 (MAX- ĐangGiữ)=10-5=5 12-(5+2+2)=3 P2 2 4 (MAX- ĐangGiữ)=4-2=2 P3 2 9 (MAX- ĐangGiữ)=9-2=7 chuỗi an toàn là:{P2,P1,P3}
Work >= Need Pi Allocation 3 2 P2 2 5 5 P1 5 10 7 P3 2
vậy trạng thái này là an toàn(điều cần chứng minh)
Câu 2:
giả sử P3 xin thêm một ổ nữa
thỏa 2 điều kiện:
request3<= Need vì 1< 7
request3<= Available vì 1< 3
Trạng thái mới
Tiến Trình Đang Giữ MAX Need Hệ Có P1 5 10 (MAX- ĐangGiữ)=10-5=5 12-(5+2+3)=2 P2 2 4 (MAX- ĐangGiữ)=4-2=2 P3 3 9 (MAX- ĐangGiữ)=9-3=6
Work >= Need Pi Allocation 2 >= 2 P2 2 4 < 5 P1 5 //không đáp ứng được 4<5 4< 6 P3 3 //không đáp ứng được [/tr]
không xác định được chuỗi an toàn.trạng thái này không an toàn.nên không thể cấp thêm cho P3
thầy và các bạn nhận xét dùm em ạ
Admin (góp ý trước khi bạn Thành sửa)
- Đề bài không đầy đủ: Thiếu số lượng tài nguyên ban đầu là 12.
- Với Câu 2:
Đúng phải là: request3<= Available vì 1< 3
Sau khi xác định được P2 đầu tiên trong chuỗi, thấy P1 không đáp ứng được thì phải xét thêm P3 chứ?
DangThiKimKhanh (113A)- Tổng số bài gửi : 32
Join date : 18/07/2012
Re: Thảo luận Bài 8: Thuật giải Nhà băng
Cảm ơn thầy và bài làm của bạn .!!!!DangThiKimKhanh (113A) đã viết:Cảm ơn sự hướng dẫn của thầy và bài làm của bạn .!!!!vutanthanh68 (113A) đã viết:chúng ta có 12 ổ băng từcâu 1:dùng giải thuật nhà băng để chứng minh trạng thái này là an toàn.
Tiến Trình Đã Cấp Tối Đa Cần(MAX) P1 5 10 P2 2 4 P3 2 9
câu 2:xác định có nên đáp ứng hay không khi P3 xin thêm 1 ổ nữa
Giải
Câu 1:
Tiến Trình Đang Giữ MAX Need Hệ Có P1 5 10 (MAX- ĐangGiữ)=10-5=5 12-(5+2+2)=3 P2 2 4 (MAX- ĐangGiữ)=4-2=2 P3 2 9 (MAX- ĐangGiữ)=9-2=7 chuỗi an toàn là:{P2,P1,P3}
Work >= Need Pi Allocation 3 2 P2 2 5 5 P1 5 10 7 P3 2
vậy trạng thái này là an toàn(điều cần chứng minh)
Câu 2:
giả sử P3 xin thêm một ổ nữa
thỏa 2 điều kiện:
request3<= Need vì 1< 7
request3<= Available vì 1< 3
Trạng thái mới
Tiến Trình Đang Giữ MAX Need Hệ Có P1 5 10 (MAX- ĐangGiữ)=10-5=5 12-(5+2+3)=2 P2 2 4 (MAX- ĐangGiữ)=4-2=2 P3 3 9 (MAX- ĐangGiữ)=9-3=6
Work >= Need Pi Allocation 2 >= 2 P2 2 4 < 5 P1 5 //không đáp ứng được 4<5 4< 6 P3 3 //không đáp ứng được [/tr]
không xác định được chuỗi an toàn.trạng thái này không an toàn.nên không thể cấp thêm cho P3
thầy và các bạn nhận xét dùm em ạ
Admin (góp ý trước khi bạn Thành sửa)
- Đề bài không đầy đủ: Thiếu số lượng tài nguyên ban đầu là 12.
- Với Câu 2:
Đúng phải là: request3<= Available vì 1< 3
Sau khi xác định được P2 đầu tiên trong chuỗi, thấy P1 không đáp ứng được thì phải xét thêm P3 chứ?
nguyenvantinh (11a3)- Tổng số bài gửi : 13
Join date : 17/07/2012
Age : 37
Re: Thảo luận Bài 8: Thuật giải Nhà băng
VoHoangTrung (113A) đã viết:Bài Tập : 1 hệ thống có 12 ổ băng từ và 3 tiến trình với bảng cấp phát tài nguyên như sau:
Tiến Trình Đã được cấp ( Số Ổ) Tối Đa cần số ổ
P1 5 10
P2 2 4
P3 2 9
Dùng Thuật giải nhà băng để:
a) Chứng minh trạng thái này là an toàn
b) Xác định có nên đáp ứng hay không yêu cầu xin thêm 1 ổ nữa của P3 ?
Các bạn giải bài này thử mình k hiểu lắm
Hệ thống có 12 ổ băng.
-Có 3 tiến trình P1,P2,P3.
Tiến trình Được cấp (đang giữ) Max
P1 5 10
P2 2 4
P3 2 9
a) Chứng minh trạng thái là an toàn.
-Hệ có (Available)=Tổng- (P1+ P2 + P3)= 12- (5+2+2)=3.
-Need= Max- Allocation(đang giữ).
Need
P1 10-5 =5
P2 4-2 =2
P3 9-2= 7
Work Need(i) P(i) Allocation
3 >= 2 P2 2
5 >= 4 P1 5
10 >= 7 P3 2
- Kết luận :
+Tồn tại một chuỗi an toàn= {P2,P1,P3}
+Vậy trạng thái hệ thống ở thời điểm To là an toàn.
b) Xác định có nên đáp ứng nhu cầu cần thêm một ổ băng nữa của P3?
-Xét điều kiện :
+ Request(1) <= Need(i) thỏa vì 1<=7.
+Request(1) <= Available thỏa vì 1<=3.
Available = Tổng - (P1+P2+P3) = 12- (5+2 +3)=2.
Trạng thái mới là
Đang giữ Need Hệ có
P1 5 5 2
P2 2 2 2
P3 3 6 2
[tr]
Work Need(i) P(i) Allocation
2 >= 2 P2 2
4 < 5 P1 5
Kết luận:
+ Không tồn tại chuỗi an toàn nào vì Work < P1 và nếu thay cho P3 thì Work < P3
+Vậy trạng thái ở thời điểm T1 là không an toàn
+ Không thể cấp thêm cho P3 thêm một máy nữa vỉ có thể gây ra deadlock.
VuMinhTan (113A)- Tổng số bài gửi : 29
Join date : 30/07/2012
Re: Thảo luận Bài 8: Thuật giải Nhà băng
Cám ơn Thầy và các bạn, hôm trước trên lớp còn nhiều thắc mắc nhưng đã được giải đáp. Đã hiểu được vấn đề ^.^
TranThiThuyQuyen (113A)- Tổng số bài gửi : 25
Join date : 18/07/2012
Age : 34
Đến từ : Lâm Đồng
Re: Thảo luận Bài 8: Thuật giải Nhà băng
Mình chọn cái nào trước cũng đựoc vì trong mot bài toán xét trạng thái an toàn khi dùng thuật giải nhà băng thì có thể co nhiều chuỗi an toàn chứ khong phải chỉ co mot chuoi
Khi làm bài thi thì cũng chỉ cần tìm mot chuoi an toàn là đủ
Khi làm bài thi thì cũng chỉ cần tìm mot chuoi an toàn là đủ
TranThiHuyenTrang(113A)- Tổng số bài gửi : 22
Join date : 27/07/2012
Age : 38
TranVanTien (I12A)- Tổng số bài gửi : 11
Join date : 22/02/2012
Re: Thảo luận Bài 8: Thuật giải Nhà băng
Admin
- Trình bày tốt !
- Kết luận chưa "trúng". Thử nêu lại xem sao !
TranVanTien (I12A)- Tổng số bài gửi : 11
Join date : 22/02/2012
TranVanTien (I12A)- Tổng số bài gửi : 11
Join date : 22/02/2012
Kiểm tra đáp án ví dụ thuật giải Nhà Băng trong giáo trình của thầy !
Ví dụ : – có 5 tiến trình : P0,……,P4 (Ví dụ là : 5 công ty khác nhau cần vay )
- 3 loại tài nguyên : A(10 phiên bản), B(5 phiên bản), C(7 phiên bản)
.............
a) Thời điểm T0 :
Hệ thống an toàn (P3,P1,P2,P4,P0)
b)Thời điểm T1 : P1 yêu cầu (1,0,2)
Hệ thống an toàn (P3,P1,P2,P4,P0)
c)Thời điểm T2 : P4 yêu cầu (3,3,0)
Hệ thống không an toàn do Request4 (3,3,0) > Available (2,3,0)(ở thời điểm T1)
d)Thời điểm T3 : P0 yêu cầu (0,2,0)
Hệ thống không an toàn do P2 : Work(2,4,1) < Need(6,0,2)(ở thời điểm T1)
->Chỉ tồn tại chuỗi (P3,P1,P4,P0)
Bạn nào làm ví dụ theo hướng xét P3(ở thời điểm T0) trước thì cho mình kiểm tra lại đáp án nhé !
Thanks !
- 3 loại tài nguyên : A(10 phiên bản), B(5 phiên bản), C(7 phiên bản)
.............
a) Thời điểm T0 :
Hệ thống an toàn (P3,P1,P2,P4,P0)
b)Thời điểm T1 : P1 yêu cầu (1,0,2)
Hệ thống an toàn (P3,P1,P2,P4,P0)
c)Thời điểm T2 : P4 yêu cầu (3,3,0)
Hệ thống không an toàn do Request4 (3,3,0) > Available (2,3,0)(ở thời điểm T1)
d)Thời điểm T3 : P0 yêu cầu (0,2,0)
Hệ thống không an toàn do P2 : Work(2,4,1) < Need(6,0,2)(ở thời điểm T1)
->Chỉ tồn tại chuỗi (P3,P1,P4,P0)
Bạn nào làm ví dụ theo hướng xét P3(ở thời điểm T0) trước thì cho mình kiểm tra lại đáp án nhé !
Thanks !
TranThichThem (113A)- Tổng số bài gửi : 41
Join date : 18/07/2012
Age : 34
Re: Thảo luận Bài 8: Thuật giải Nhà băng
nguyenvantinh (11a3) đã viết:Cảm ơn thầy và bài làm của bạn .!!!!DangThiKimKhanh (113A) đã viết:Cảm ơn sự hướng dẫn của thầy và bài làm của bạn .!!!!vutanthanh68 (113A) đã viết:chúng ta có 12 ổ băng từcâu 1:dùng giải thuật nhà băng để chứng minh trạng thái này là an toàn.
Tiến Trình Đã Cấp Tối Đa Cần(MAX) P1 5 10 P2 2 4 P3 2 9
câu 2:xác định có nên đáp ứng hay không khi P3 xin thêm 1 ổ nữa
Giải
Câu 1:
Tiến Trình Đang Giữ MAX Need Hệ Có P1 5 10 (MAX- ĐangGiữ)=10-5=5 12-(5+2+2)=3 P2 2 4 (MAX- ĐangGiữ)=4-2=2 P3 2 9 (MAX- ĐangGiữ)=9-2=7 chuỗi an toàn là:{P2,P1,P3}
Work >= Need Pi Allocation 3</SUB> 2 P2 2 5 5 P1 5 10 7 P3 2
vậy trạng thái này là an toàn(điều cần chứng minh)
Câu 2:
giả sử P3 xin thêm một ổ nữa
thỏa 2 điều kiện:
request3<= Need vì 1< 7
request3<= Available vì 1< 3
Trạng thái mới
Tiến Trình Đang Giữ MAX Need Hệ Có P1 5 10 (MAX- ĐangGiữ)=10-5=5 12-(5+2+3)=2 P2 2 4 (MAX- ĐangGiữ)=4-2=2 P3 3 9 (MAX- ĐangGiữ)=9-3=6
Work >= Need Pi Allocation 2 >= 2 P2 2 4 < 5 P1 5 //không đáp ứng được 4<5 4< 6 P3 3 //không đáp ứng được [/tr]
không xác định được chuỗi an toàn.trạng thái này không an toàn.nên không thể cấp thêm cho P<sub>3</sub>
thầy và các bạn nhận xét dùm em ạ
Admin (góp ý trước khi bạn Thành sửa)
- Đề bài không đầy đủ: Thiếu số lượng tài nguyên ban đầu là 12.
- Với Câu 2:
Đúng phải là: request3<= Available vì 1< 3
Sau khi xác định được P2 đầu tiên trong chuỗi, thấy P1 không đáp ứng được thì phải xét thêm P3 chứ?
huynhquanghao_I92C- Tổng số bài gửi : 21
Join date : 15/11/2010
cố lên
2 bài tâp 4 điểm cố lên
VoHoangTrung (113A)- Tổng số bài gửi : 51
Join date : 17/07/2012
Age : 35
Đến từ : Gia lai
Trường hợp cụ thể
NguyenThanhHien (113A) đã viết:Thưa Thầy! Em có chỗ này chưa rõ lắm mong thầy giúp em với ạ.
Giả sử bài toán có 5 tiến trình là P0, P1, P2, P3, P4
Và em bắt đầu xét chuỗi có an toàn hay không từ P1 nhưng P0, P2, P3, P4 đều không thỏa điều kiện thì em có thể kết luận là không tồn tại chuỗi an toàn được không ạ. Hay là em phải xét chuỗi lại từ đầu với P0 hoặc P2 hoặc P3 hay P4 gì ạ?
Em xin cảm ơn Thầy!
Admin
- Cái gì cũng nên cụ thể: Nêu bài toán cụ thể và bắt tay vào giải rồi đưa lên, vướng đâu hỏi đấy !
- Nếu chọn được P1 ở đầu chuỗi mà không tìm tiếp được nữa thì khẳng định ngay là không tồn tại chuỗi an toàn ! Vì đi theo hướng khác cũng sẽ bị "tắc" ! Thuật giải Nhà băng hay chính ở chỗ này !
Trường hợp cụ thể:
Một hệ thống có 10 máy quét và 3 tiến trình P1, P2, P3 với trạng thái cấp phát tài nguyên ở thời điểm Ti thể hiện bằng các vector Allocation (3,1,1) và Max (9,4,8 ).
Dùng thuật giả nhà băng để
a. Chứng minh trạng thái này an toàn?
b. Xác định có nên đáp ứng hay không yêu cầu cấp thêm 1 máy cho tiến trình P3?
Giải
a.
Allocation = (3,1,1)
Max = (9,4,8 )
Avaible = 10 - (3+1+1) = 5
Process | Allocation | Max | Need | Available |
P1 | 3 | 9 | 6 | 5 |
P2 | 1 | 4 | 3 | |
P3 | 1 | 8 | 7 |
Bảng trợ giúp:
Work >= | Needi | Pi | Allocation |
5 | 3 | P2 | 1 |
6 | 6 | P1 | 3 |
9 | 7 | P3 | 1 |
Do đó trạng thái hệ thống ở thời điểm Ti là an toàn
b.Xác định có nên đáp ứng hay không yêu cầu cấp thêm 1 máy cho tiến trình P3
Gọi yêu cầu là Request3. Ta cáo Request3 = 1
Request3 =< Need3 (vì 1 =<7)
Request3 =< Available (vì 1 =<5)
Trạng thái mới của hệ thống
Allocation = (3,1,2)
Max = (9,4,8 )
Avaible = 10 - (3+1+2) = 4
Process | Allocation | Max | Need | Available |
P1 | 3 | 9 | 6 | 4 |
P2 | 1 | 4 | 3 | |
P3 | 2 | 8 | 6 |
Bảng trợ giúp:
Work >= | Needi | Pi | Allocation |
4 | 3 | P2 | 1 |
5 | ? | ? | ? |
Vậy ta không nên đáp ứng yêu cầu Request3 vì hệ thông sẽ không còn an toàn
NguyenThanhHien (113A)- Tổng số bài gửi : 65
Join date : 16/07/2012
Age : 34
Đến từ : Quảng Ngãi
Thuật giải Nhà băng
Đề bài:
Một hệ thống có 12 ổ băng từ và 3 tiến trình P1, P2, P3 với trạng thái cấp phát tài nguyên ở thời điểm Ti thể hiện bằng các vectơ Allocation=(5,2,2) Max=(10,4,9). Dùng thuật giải Nhà băng để:
a) Chứng minh trạng thái này an toàn
b) Xác định có nên đáp ứng hay không yêu cầu xin thêm 1 ổ nữa của P3?
Bài giải:
a) Chứng minh trạng thái này an toàn:
Tính Available = 12 - (5+2+2) = 12 - 9 = 3
Trạng thái của hệ thống:
Bảng trợ giúp:
Tìm được chuỗi an toàn: {P2,P1,P3}.
Do đó trạng thái hệ thống ở thời điểm Ti là an toàn.
b) Xác định có nên đáp ứng hay không yêu cầu xin them 1 ổ nữa của P3:
Gọi yêu cầu là Request3 ta có:
Request3 = 1
Request3 <= Need3 (vì 1 <=7 )
Request3 <= Available (vì 1 <= 3)
Tràng thái mới của hệ:
Bảng trợ giúp:
Không nên đáp ứng yêu cầu Request3 vì hệ thống sẽ không an toàn (không tìm thấy chuỗi an toàn).
Admin
Trước khi kết luận là không nên đáp ứng yêu cầu Request3, cần khẳng định là không tồn tại chuỗi an toàn nào (chỉ tìm được 1 chuỗi không đầy đủ bắt đầu từ P2) !
Một hệ thống có 12 ổ băng từ và 3 tiến trình P1, P2, P3 với trạng thái cấp phát tài nguyên ở thời điểm Ti thể hiện bằng các vectơ Allocation=(5,2,2) Max=(10,4,9). Dùng thuật giải Nhà băng để:
a) Chứng minh trạng thái này an toàn
b) Xác định có nên đáp ứng hay không yêu cầu xin thêm 1 ổ nữa của P3?
Bài giải:
a) Chứng minh trạng thái này an toàn:
Tính Available = 12 - (5+2+2) = 12 - 9 = 3
Trạng thái của hệ thống:
Process | Allocation | Max | Need | Available |
P1 | 5 | 10 | 5 | 3 |
P2 | 2 | 4 | 2 | |
P3 | 2 | 9 | 7 |
Bảng trợ giúp:
Work >= | Needi | Pi | Allocation |
3 | 2 | P2 | 2 |
5 | 5 | P1 | 5 |
10 | 7 | P3 | 2 |
Tìm được chuỗi an toàn: {P2,P1,P3}.
Do đó trạng thái hệ thống ở thời điểm Ti là an toàn.
b) Xác định có nên đáp ứng hay không yêu cầu xin them 1 ổ nữa của P3:
Gọi yêu cầu là Request3 ta có:
Request3 = 1
Request3 <= Need3 (vì 1 <=7 )
Request3 <= Available (vì 1 <= 3)
Tràng thái mới của hệ:
Process | Allocation | Max | Need | Available |
P1 | 5 | 10 | 5 | 2 |
P2 | 2 | 4 | 2 | |
P3 | 3 | 9 | 6 |
Bảng trợ giúp:
Work >= | Needi | Pi | Allocation |
2 | 2 | P2 | 2 |
4 | ? | ? | ? |
Không nên đáp ứng yêu cầu Request3 vì hệ thống sẽ không an toàn (không tìm thấy chuỗi an toàn).
Admin
Trước khi kết luận là không nên đáp ứng yêu cầu Request3, cần khẳng định là không tồn tại chuỗi an toàn nào (chỉ tìm được 1 chuỗi không đầy đủ bắt đầu từ P2) !
ngongocdiep06 (113A)- Tổng số bài gửi : 23
Join date : 16/07/2012
Re: Thảo luận Bài 8: Thuật giải Nhà băng
Cam on bai giai cua ban
phamanhtuan95(113A) đã viết:
Thuật giải nhà băng
Trạng thái mới:
Đang giữ Need Hệ có
A B C A B C A B C
P0 0 1 0 7 4 3 2 3 0
P1 3 0 2 0 2 0
P2 3 0 2 6 0 0
P3 2 1 1 0 1 1
P4 0 0 2 4 3 1
Available=(10,5,7)-(8,2,7)=(2,3,0)
WORK NEED Pi ALLOCATION
A B C A B C A B C
2 3 0 0 2 0 P1 3 0 2
5 3 2 0 1 1 P3 2 1 1
7 4 3 7 4 3 P0 0 1 0
7 5 3 6 0 0 P2 3 0 2
10 5 5 4 3 1 P4 0 0 2
Tồn tại một chuỗi an toàn {P1,P3,P0,P2,P4}
Vậy trạng thái hệ thống ở thời điểm t0 an toàn
P/S : Không biết mình post ảnh các bạn có thấy ko? reply cho mình biết nhé
nguyenlehuutai(113A)- Tổng số bài gửi : 33
Join date : 18/07/2012
Re: Thảo luận Bài 8: Thuật giải Nhà băng
ngongocdiep06 (113A) đã viết:Đề bài:
Một hệ thống có 12 ổ băng từ và 3 tiến trình P1, P2, P3 với trạng thái cấp phát tài nguyên ở thời điểm Ti thể hiện bằng các vectơ Allocation=(5,2,2) Max=(10,4,9). Dùng thuật giải Nhà băng để:
a) Chứng minh trạng thái này an toàn
b) Xác định có nên đáp ứng hay không yêu cầu xin thêm 1 ổ nữa của P3?
Bài giải:
a) Chứng minh trạng thái này an toàn:
Tính Available = 12 - (5+2+2) = 12 - 9 = 3
Trạng thái của hệ thống:
Process Allocation Max Need Available P1 5 10 5 3 P2 2 4 2 P3 2 9 7
Bảng trợ giúp:
Work >= Needi Pi Allocation 3 2 P2 2 5 5 P1 5 10 7 P3 2
Tìm được chuỗi an toàn: {P2,P1,P3}.
Do đó trạng thái hệ thống ở thời điểm Ti là an toàn.
b) Xác định có nên đáp ứng hay không yêu cầu xin them 1 ổ nữa của P3:
Gọi yêu cầu là Request3 ta có:
Request3 = 1
Request3 <= Need3 (vì 1 <=7 )
Request3 <= Available (vì 1 <= 3)
Tràng thái mới của hệ:
Process Allocation Max Need Available P1 5 10 5 2 P2 2 4 2 P3 3 9 6
Bảng trợ giúp:
Work >= Needi Pi Allocation 2 2 P2 2 4 ? ? ?
Không nên đáp ứng yêu cầu Request3 vì hệ thống sẽ không an toàn (không tìm thấy chuỗi an toàn).
Admin
Trước khi kết luận là không nên đáp ứng yêu cầu Request3, cần khẳng định là không tồn tại chuỗi an toàn nào (chỉ tìm được 1 chuỗi không đầy đủ bắt đầu từ P2) !
Cảm ơn thầy đã hướng dẫn thêm cho em
ngongocdiep06 (113A)- Tổng số bài gửi : 23
Join date : 16/07/2012
Re: Thảo luận Bài 8: Thuật giải Nhà băng
Cảm ơn thầy và các bạn đã giúp em hiểu rõ hơn bài tập này
Được sửa bởi MaiThiHongTham70 (113A) ngày 11/10/2012, 02:59; sửa lần 1.
MaiThiHongTham70 (113A)- Tổng số bài gửi : 32
Join date : 07/08/2012
Re: Thảo luận Bài 8: Thuật giải Nhà băng
Một hệ thống có 10 máy quét và 3 tiến trình P1, P2, P3 với trạng thái cấp phát tài nguyên ở thời điểm Ti thể hiện bằng các vector Allocation (3,1,1) và Max (9,4,8 ).
Dùng thuật giả nhà băng để
a. Chứng minh trạng thái này an toàn
b. Xác định có nên đáp ứng hay không yêu cầu cấp thêm 1 máy cho tiến trình P3?
Giải
a.
Allocation = (3,1,1)
Max = (9,4,8 )
Avaible = 10 - (3+1+1) = 5
Process Allocation Max Need Available
P1 3 9 6 5
P2 1 4 3
P3 1 8 7
Bảng trợ giúp:
Work >= Needi Pi Allocation
5 3 P2 1
6 6 P1 3
9 7 P3 1
Tìm được chuỗi an toàn P2, P1, P3
Do đó trạng thái hệ thống ở thời điểm Ti là an toàn
b.
Xác định có nên đáp ứng hay không yêu cầu cấp thêm 1 máy cho tiến trình P3
Gọi yêu cầu là Request3. Ta cáo Request3 = 1
Request3 =< Need3 (vì 1 =<7)
Request3 =< Available (vì 1 =<5)
Trạng thái mới của hệ thống
Allocation = (3,1,2)
Max = (9,4,8 )
Avaible = 10 - (3+1+2) = 4
Process Allocation Max Need Available
P1 3 9 6 4
P2 1 4 3
P3 2 8 6
Bảng trợ giúp:
Work >= Needi Pi Allocation
4 3 P2 1
5 ? ? ?
Cả 2 tiến trình P1 và P3 điều không thỏa điều kiện Work >= Needi (vì Need2 = 6, Need3 = 6)
Vậy ta không nên đáp ứng yêu cầu Request3 vì hệ thông sẽ không còn an toàn
Dùng thuật giả nhà băng để
a. Chứng minh trạng thái này an toàn
b. Xác định có nên đáp ứng hay không yêu cầu cấp thêm 1 máy cho tiến trình P3?
Giải
a.
Allocation = (3,1,1)
Max = (9,4,8 )
Avaible = 10 - (3+1+1) = 5
Process Allocation Max Need Available
P1 3 9 6 5
P2 1 4 3
P3 1 8 7
Bảng trợ giúp:
Work >= Needi Pi Allocation
5 3 P2 1
6 6 P1 3
9 7 P3 1
Tìm được chuỗi an toàn P2, P1, P3
Do đó trạng thái hệ thống ở thời điểm Ti là an toàn
b.
Xác định có nên đáp ứng hay không yêu cầu cấp thêm 1 máy cho tiến trình P3
Gọi yêu cầu là Request3. Ta cáo Request3 = 1
Request3 =< Need3 (vì 1 =<7)
Request3 =< Available (vì 1 =<5)
Trạng thái mới của hệ thống
Allocation = (3,1,2)
Max = (9,4,8 )
Avaible = 10 - (3+1+2) = 4
Process Allocation Max Need Available
P1 3 9 6 4
P2 1 4 3
P3 2 8 6
Bảng trợ giúp:
Work >= Needi Pi Allocation
4 3 P2 1
5 ? ? ?
Cả 2 tiến trình P1 và P3 điều không thỏa điều kiện Work >= Needi (vì Need2 = 6, Need3 = 6)
Vậy ta không nên đáp ứng yêu cầu Request3 vì hệ thông sẽ không còn an toàn
nguyenchithuc(113A)- Tổng số bài gửi : 30
Join date : 02/08/2012
Age : 34
Re: Thảo luận Bài 8: Thuật giải Nhà băng
chúng ta có 12 ổ băng từ
câu 1:dùng giải thuật nhà băng để chứng minh trạng thái này là an toàn.
câu 2:xác định có nên đáp ứng hay không khi P3 xin thêm 1 ổ nữa
Giải
Câu 1:
chuỗi an toàn là:{P2,P1,P3}
vậy trạng thái này là an toàn(điều cần chứng minh)
Câu 2:
giả sử P3 xin thêm một ổ nữa
thỏa 2 điều kiện:
request3<= Need vì 1< 7
request3<= Available vì 1< 3
Trạng thái mới
không xác định được chuỗi an toàn.trạng thái này không an toàn.nên không thể cấp thêm cho P3
Tiến Trình | Đã Cấp | Tối Đa Cần(MAX) |
P1 | 5 | 10 |
P2 | 2 | 4 |
P3 | 2 | 9 |
câu 2:xác định có nên đáp ứng hay không khi P3 xin thêm 1 ổ nữa
Giải
Câu 1:
Tiến Trình | Đang Giữ | MAX | Need | Hệ Có |
P1 | 5 | 10 | (MAX- ĐangGiữ)=10-5=5 | 12-(5+2+2)=3 |
P2 | 2 | 4 | (MAX- ĐangGiữ)=4-2=2 | |
P3 | 2 | 9 | (MAX- ĐangGiữ)=9-2=7 |
Work >= | Need | Pi | Allocation |
3 | 2 | P2 | 2 |
5 | 5 | P1 | 5 |
10 | 7 | P3 | 2 |
vậy trạng thái này là an toàn(điều cần chứng minh)
Câu 2:
giả sử P3 xin thêm một ổ nữa
thỏa 2 điều kiện:
request3<= Need vì 1< 7
request3<= Available vì 1< 3
Trạng thái mới
Tiến Trình | Đang Giữ | MAX | Need | Hệ Có |
P1 | 5 | 10 | (MAX- ĐangGiữ)=10-5=5 | 12-(5+2+3)=2 |
P2 | 2 | 4 | (MAX- ĐangGiữ)=4-2=2 | |
P3 | 3 | 9 | (MAX- ĐangGiữ)=9-3=6 |
Work >= | Need | Pi | Allocation |
2 >= | 2 | P2 | 2 |
4 < | 5 | P1 | 5 //không đáp ứng được 4<5 | 4< | 6 | P3 | 3 //không đáp ứng được | [/tr]
không xác định được chuỗi an toàn.trạng thái này không an toàn.nên không thể cấp thêm cho P3
NguyenNgocThuan76_113A- Tổng số bài gửi : 17
Join date : 19/07/2012
Age : 34
Đến từ : Ho Chi Minh City
4 điều kiện dẫn đến deadlock và giải pháp ngăn chặn
4 Điều kiện:
+ Loại trừ lẫn nhau (Mutual Exclusion): Ít nhất có 1 tài nguyên có tính không chia sẻ (non-sharable), nghĩa là: Mỗi thời điểm chỉ có 1 tiến trình được sử dụng nó.
+ Giữ và chờ (Hold and Wait): Có 1 tiến trình đang giữ 1 tài nguyên và xin thêm tài nguyên đang độc chiếm bởi tiến trình khác.
+ Không có tiếm quyền (No Preemption): Tài nguyên đang giữ bởi tiến trình không thể bị tiếm quyền mà phải được tiến trình này tự nguyện trả lại hệ thống sau khi sử dụng xong.
+ Chờ xoay vòng (Circular Wait): Giả sử có n tiến trình đang chờ tài nguyên là { P1 , P2, ... , Pn }, khi đó P1 chờ TN giữ bởi P2 , tiến trình P2 chờ TN giữ bởi P3 , ... , Pn chờ P1 .
* Bốn điều kiện này không hoàn toàn độc lập với nhau: ví dụ, Điều kiện 4 kéo theo Điều kiện 2.
Giải pháp xử lý:
1. Sử dụng quy tắc Ngăn chặn (Prevention) hoặc Tránh (Avoidance) để Deadlock không bao giờ xảy ra.
2. Cho phép hệ thống bị Deadlock, sau đó Xác định (Detection) và tìm cách Khắc phục (Recover).
3. Không xét vấn đề Deadlock, coi như không bao giờ xảy ra, còn nếu xảy ra thì Khởi động lại hệ thống (Cách này có thể có ý nghĩa thực tế vì không cần đưa vào HĐH các phương tiện xử trí thường trực).
Biện pháp ngăn chặn:
Bằng cách sao cho ít nhất 1 trong 4 điều kiện cần kể trên không xảy ra.
° Với Mutual Exclusion: Đảm bảo TN nào cũng dùng chung được cùng một lúc bởi nhiều tiến trình.
° Với Hold and Wait:
1- Khi TT yêu cầu TN, nó không được giữ 1 TN nào khác.
2- TT phải yêu cầu và được cấp tất cả các TN mà nó cần ngay đầu công việc.
° Với No Preemption:
1- Khi TT giữ TN mà xin thêm nhưng không được, các TN mà nó giữ phải bị tiếm quyền sử dụng và trả lại HĐH.
2- Khi TT xin thêm TN, nếu TN này đang được giữ bởi TT khác đang ở trạng thái chờ, TN của TT khác này bị tiếm quyền sử dụng để cấp cho TT đang xin.
° Với Circular Wait: Cấp TN theo một thứ tự nào đấy.
+ Loại trừ lẫn nhau (Mutual Exclusion): Ít nhất có 1 tài nguyên có tính không chia sẻ (non-sharable), nghĩa là: Mỗi thời điểm chỉ có 1 tiến trình được sử dụng nó.
+ Giữ và chờ (Hold and Wait): Có 1 tiến trình đang giữ 1 tài nguyên và xin thêm tài nguyên đang độc chiếm bởi tiến trình khác.
+ Không có tiếm quyền (No Preemption): Tài nguyên đang giữ bởi tiến trình không thể bị tiếm quyền mà phải được tiến trình này tự nguyện trả lại hệ thống sau khi sử dụng xong.
+ Chờ xoay vòng (Circular Wait): Giả sử có n tiến trình đang chờ tài nguyên là { P1 , P2, ... , Pn }, khi đó P1 chờ TN giữ bởi P2 , tiến trình P2 chờ TN giữ bởi P3 , ... , Pn chờ P1 .
* Bốn điều kiện này không hoàn toàn độc lập với nhau: ví dụ, Điều kiện 4 kéo theo Điều kiện 2.
Giải pháp xử lý:
1. Sử dụng quy tắc Ngăn chặn (Prevention) hoặc Tránh (Avoidance) để Deadlock không bao giờ xảy ra.
2. Cho phép hệ thống bị Deadlock, sau đó Xác định (Detection) và tìm cách Khắc phục (Recover).
3. Không xét vấn đề Deadlock, coi như không bao giờ xảy ra, còn nếu xảy ra thì Khởi động lại hệ thống (Cách này có thể có ý nghĩa thực tế vì không cần đưa vào HĐH các phương tiện xử trí thường trực).
Biện pháp ngăn chặn:
Bằng cách sao cho ít nhất 1 trong 4 điều kiện cần kể trên không xảy ra.
° Với Mutual Exclusion: Đảm bảo TN nào cũng dùng chung được cùng một lúc bởi nhiều tiến trình.
° Với Hold and Wait:
1- Khi TT yêu cầu TN, nó không được giữ 1 TN nào khác.
2- TT phải yêu cầu và được cấp tất cả các TN mà nó cần ngay đầu công việc.
° Với No Preemption:
1- Khi TT giữ TN mà xin thêm nhưng không được, các TN mà nó giữ phải bị tiếm quyền sử dụng và trả lại HĐH.
2- Khi TT xin thêm TN, nếu TN này đang được giữ bởi TT khác đang ở trạng thái chờ, TN của TT khác này bị tiếm quyền sử dụng để cấp cho TT đang xin.
° Với Circular Wait: Cấp TN theo một thứ tự nào đấy.
NguyenVanQuan105- Tổng số bài gửi : 12
Join date : 13/08/2012
Trang 2 trong tổng số 2 trang • 1, 2
Similar topics
» Thảo luận Bài 8
» Chương 3: Quy nạp - Đệ quy
» Một số bài tập về thuật giải nhà băng(Các bạn thảo luận và xem giúp mình nhé)
» Thảo luận Bài 7
» Thuật giải Round - Robin (Thảo luận bài 4 - Đề thi lần 2 (I83C))
» Chương 3: Quy nạp - Đệ quy
» Một số bài tập về thuật giải nhà băng(Các bạn thảo luận và xem giúp mình nhé)
» Thảo luận Bài 7
» Thuật giải Round - Robin (Thảo luận bài 4 - Đề thi lần 2 (I83C))
Trang 2 trong tổng số 2 trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết