Thảo luận Bài 8
+46
hoanglam
MaiTrieuHung16 (113A)
TrangSiMinhHai (113A)
VoHoangBaoTran (113A)
ThuyDuong23 (I12A)
NguyenThiNgocPhuong(113A)
voanhvy (113A)
LeThanhNhan45 (113A)
VuNguyenDucMinh (113A)
NguyenThanhHien (113A)
HaHoangCongTien80 (113A)
TranThiTuTrinh89 (113A)
lechaukhoa(113A)
dothanhnhan44 (113A)
MaiThiHongTham70 (113A)
phamanhtuan95(113A)
ngongocdiep06 (113A)
PhanDiecLoi34 (113A)
TranThiThuyHang79 (113A)
TranThiHuyenTrang(113A)
VoHoangTrung (113A)
trantrungnam-HC11TH2A
TranThichThem (113A)
VuongXuongThong (113A)
LeDangBaoNgoc55 (113A)
PhamHuyHoang(I113A)
LeQuocVan (113A)
NgoManhHung (113A)
NguyenVanQuyet57 (113A)
nguyenduchuy19 (113A)
NguyenThiThuThuy (113A)
CaoTheAnh01(113A)
nguyenlehuutai(113A)
PhamQuocAnh02 (113A)
Trannguyenkhoa26 (113A)
NguyenHuuLinh31(113A)
ledinhngankhanh (113a)
LeHuynhChiTam (113A)
buidainghia(113A)
VuMinhTan (113A)
nguyenvanluc(113a)
LePhamTuanVu02 (113A)
vuquoctoan (I13A)
huynhquanghao_I92C
phamphihung55
Admin
50 posters
Trang 2 trong tổng số 5 trang
Trang 2 trong tổng số 5 trang • 1, 2, 3, 4, 5
Re: Thảo luận Bài 8
Ngăn chặn deadlock
Để deadlock xảy ra, một trong bốn điều kiện cần phải xảy ra. Bằng cách đảm bảoít nhất một trong bốn điều kiện này không thể xảy ra, chúng ta có thể ngăn chặn việc xảyra của deadlock. Chúng ta tìm hiểu tỷ mỹ tiếp cận này bằng cách xem xét mỗi điều kiệncần riêng rẻ nhau
Để deadlock xảy ra, một trong bốn điều kiện cần phải xảy ra. Bằng cách đảm bảoít nhất một trong bốn điều kiện này không thể xảy ra, chúng ta có thể ngăn chặn việc xảyra của deadlock. Chúng ta tìm hiểu tỷ mỹ tiếp cận này bằng cách xem xét mỗi điều kiệncần riêng rẻ nhau
nguyenlehuutai(113A)- Tổng số bài gửi : 33
Join date : 18/07/2012
bổ sung thêm ví dụ câu 1
ví dụ : thông tin 8 bạn nữ chết đuối ở huyện mỹ đức hà nội. các bạn nữ này rơi xuống nước do hoảng loạn và kém bình tĩnh bạn này níu lấy bạn kia không ai chịu thả ra dẫn đến 8 bạn đều bị chết đuối ( xảy ra deallock)
PhamQuocAnh02 (113A)- Tổng số bài gửi : 27
Join date : 16/07/2012
Phòng tránh deadlock
Tình trạng an toàn : Nghĩa là system có thể cấp phát tài nguyên cho mỗi Proces mà vẫn tránh được Dead Lock, một System an toàn nếu nó thuộc một chuỗi an toàn .
- Các thuật toán cấp phát tài nguyên :
1. Available: Sẵn có
Gọi m : là số tài nguyên
n : là số tiến trình
Từ đó, toán tử Available sẽ là một véctơ m chỉ ra số tìa nguyên sẵn có của mỗi kiểu
Nếu : (Available(j)=k) nghĩa là có k kiểu tài nguyên sẵn có .
2. Toán tử Max:
Sẽ là một véctơ nxm chỉ ra yêu cầu lớn nhất của mỗi Process nếu Max[I,j] = k, nghĩa là Proces Pi sẽ yêu cầu k mau của kiểu tài nguyên Rj và số yêu cầu này là yêu cầu tài nguyên lớn nhất của Process Pi
3. Toán tử Allocation : Cấp phát
Một ma trận nxm định nghĩa số tài nguyên của mỗi kiểu hiện đang được cấp phát cho mỗi Proces. Nếu Allocation [I,J] = k nghĩa là Process Pi hiện đang được cấp k mẫu của kiểu tài nguyên Rj
4. Toán tử Need
Là một ma trận nxm , llà số yêu cầu cấp phát tài nguyên để 1 Proces kết thúc công việc thuộc nó. Nếu Need [ i,j] = k nghĩa là tiến trình Pi cần được j cấp thêm k mẫu thuộc kiểu tài nguyên Rj để kết thức công việc thuộc nó .
Thuật toán an toàn :
1. Cho work = Available
Finish [i ]= False i = 1,2….n
2. Tìm i thoả mãn
finish [i] = False
need < work
neu i > n goto 4
3. Work = work + Allocation
Finish[i] = true
Go to 2
4. Nếu Finish[i] = true với mỗi i
→ hệ thống an toàn
5. Một ví dụ về thuật toán an toàn :
Process Allocation Max Aoailable Need
A B C A B C A B C A B C
P0 0 1 0 7 5 3 3 3 2 7 4 3
P1 2 0 0 3 2 2 1 2 2
P2 3 0 2 9 0 2 6 0 0
P3 2 1 1 2 2 2 0 1 1
P4 0 0 2 4 3 3 4 3 1
A=10
B= 5
C=7
B1 3 3 2
Worde = ( 3 3 2 )
Finish[ 0] = finish[1] = finish[2] = finish [3] = finish[4] = facse
B2 finish[1] = tone
→ ( P0,P1,P2.P3,P4) hệ thống an toàn
Thuật toán yêu cầu tài nguyên :
- Gọi Request[i] là véctơ yêu cầu của Process Pi
- Nếu Request i [J] = k thì Pi sẽ yêu cầu được mẫu thuộc kiểu tài nguyên R[J]
1. If Request i < = need goto 2
Else→cost
2. If Request i <= Available goto 3
Else Pi doi
3. Available = Available – Request i
Need i = Need - Requesti
Allocation = Allocation + Request i
4. Một ví dụ về thuật toán yêu cầu tài nguyên :
- P1 yêu cầu tài nguyên ( 0 ,1 ,0) A,B,C
- Request1 = ( 0 ,1 ,0)
1. Request1<= need1 → true
2. Request1 <= Available →true
3. vailable = ( 3 ,2 ,2 )
Allocation1= (2 ,1, 0)
Need1 = (1 ,1 ,2)
Sau đó quay lại trạng thái an toàn xem system này có an toàn hay không .
- Các thuật toán cấp phát tài nguyên :
1. Available: Sẵn có
Gọi m : là số tài nguyên
n : là số tiến trình
Từ đó, toán tử Available sẽ là một véctơ m chỉ ra số tìa nguyên sẵn có của mỗi kiểu
Nếu : (Available(j)=k) nghĩa là có k kiểu tài nguyên sẵn có .
2. Toán tử Max:
Sẽ là một véctơ nxm chỉ ra yêu cầu lớn nhất của mỗi Process nếu Max[I,j] = k, nghĩa là Proces Pi sẽ yêu cầu k mau của kiểu tài nguyên Rj và số yêu cầu này là yêu cầu tài nguyên lớn nhất của Process Pi
3. Toán tử Allocation : Cấp phát
Một ma trận nxm định nghĩa số tài nguyên của mỗi kiểu hiện đang được cấp phát cho mỗi Proces. Nếu Allocation [I,J] = k nghĩa là Process Pi hiện đang được cấp k mẫu của kiểu tài nguyên Rj
4. Toán tử Need
Là một ma trận nxm , llà số yêu cầu cấp phát tài nguyên để 1 Proces kết thúc công việc thuộc nó. Nếu Need [ i,j] = k nghĩa là tiến trình Pi cần được j cấp thêm k mẫu thuộc kiểu tài nguyên Rj để kết thức công việc thuộc nó .
Thuật toán an toàn :
1. Cho work = Available
Finish [i ]= False i = 1,2….n
2. Tìm i thoả mãn
finish [i] = False
need < work
neu i > n goto 4
3. Work = work + Allocation
Finish[i] = true
Go to 2
4. Nếu Finish[i] = true với mỗi i
→ hệ thống an toàn
5. Một ví dụ về thuật toán an toàn :
Process Allocation Max Aoailable Need
A B C A B C A B C A B C
P0 0 1 0 7 5 3 3 3 2 7 4 3
P1 2 0 0 3 2 2 1 2 2
P2 3 0 2 9 0 2 6 0 0
P3 2 1 1 2 2 2 0 1 1
P4 0 0 2 4 3 3 4 3 1
A=10
B= 5
C=7
B1 3 3 2
Worde = ( 3 3 2 )
Finish[ 0] = finish[1] = finish[2] = finish [3] = finish[4] = facse
B2 finish[1] = tone
→ ( P0,P1,P2.P3,P4) hệ thống an toàn
Thuật toán yêu cầu tài nguyên :
- Gọi Request[i] là véctơ yêu cầu của Process Pi
- Nếu Request i [J] = k thì Pi sẽ yêu cầu được mẫu thuộc kiểu tài nguyên R[J]
1. If Request i < = need goto 2
Else→cost
2. If Request i <= Available goto 3
Else Pi doi
3. Available = Available – Request i
Need i = Need - Requesti
Allocation = Allocation + Request i
4. Một ví dụ về thuật toán yêu cầu tài nguyên :
- P1 yêu cầu tài nguyên ( 0 ,1 ,0) A,B,C
- Request1 = ( 0 ,1 ,0)
1. Request1<= need1 → true
2. Request1 <= Available →true
3. vailable = ( 3 ,2 ,2 )
Allocation1= (2 ,1, 0)
Need1 = (1 ,1 ,2)
Sau đó quay lại trạng thái an toàn xem system này có an toàn hay không .
CaoTheAnh01(113A)- Tổng số bài gửi : 28
Join date : 16/07/2012
4 đk cần để xảy ra Deadlock trong ví dụ của thầy
- Loại trừ tương hổ: Mỗi thời điểm chỉ có 1 xe chạy trên 1 tuyến đường
- Giữ và chờ: Không có xe nào lùi lại.
- Không tiếm quyền: Không xe nào bị hệ thống (HĐH) "nhấc" lên khỏi mặt đường để giải phóng tài nguyên.
- Chờ xoay vòng: Các xe chờ lẫn nhau
Mình làm theo nhưng j mình hiểu mong mọi ng góp ý thêm. ^^
Trannguyenkhoa26 (113A)- Tổng số bài gửi : 35
Join date : 16/07/2012
Age : 35
Định Nghĩa Deadlocks Và Ví Dụ.
Định nghĩa Deadlock
- Trong hệ thống đa chương, nhiều quá trình có thể
cạnh tranh một số giới hạn tài nguyên.
- Một quá trình yêu cầu tài nguyên, nếu tài nguyên
không sẵn dùng tại thời điểm đó, quá trình đi vào
trạng thái chờ.
-Quá trình chờ có thể không bao giờ chuyển trạng thái
trở lại vì tài nguyên chúng yêu cầu bị giữ bởi những
quá trình khác.
VD: Khi các tiến trình cùng sử dụng tài nguyên chung(tranh chấp tài nguyên). Máy tính có 3 ổ băng từ và có 3 tiến trình đang chạy, mỗi tiến trình đang chạy giữ 1 ổ băng. nếu mỗi tiến trình đang chạy đó xin thêm 1 ổ băng nữa thì sẽ rơi vào tình trạng Deadlocks.
- Trong hệ thống đa chương, nhiều quá trình có thể
cạnh tranh một số giới hạn tài nguyên.
- Một quá trình yêu cầu tài nguyên, nếu tài nguyên
không sẵn dùng tại thời điểm đó, quá trình đi vào
trạng thái chờ.
-Quá trình chờ có thể không bao giờ chuyển trạng thái
trở lại vì tài nguyên chúng yêu cầu bị giữ bởi những
quá trình khác.
VD: Khi các tiến trình cùng sử dụng tài nguyên chung(tranh chấp tài nguyên). Máy tính có 3 ổ băng từ và có 3 tiến trình đang chạy, mỗi tiến trình đang chạy giữ 1 ổ băng. nếu mỗi tiến trình đang chạy đó xin thêm 1 ổ băng nữa thì sẽ rơi vào tình trạng Deadlocks.
LePhamTuanVu02 (113A)- Tổng số bài gửi : 9
Join date : 19/07/2012
Các ví dụ về Deadlock
1. Hôm nay đi học về nhớ bài tiếng việt trong sách giáo khoa cấp 1 có bài hai con dê qua cây cầu không con nào chịu nhường con nào-> đó là hiện tượng deadlock
2. Không vào được trang web đăng ký môn học của trường do có nhiều người đang vào cùng một lúc -> tương tự như deadlock
2. Không vào được trang web đăng ký môn học của trường do có nhiều người đang vào cùng một lúc -> tương tự như deadlock
CaoTheAnh01(113A)- Tổng số bài gửi : 28
Join date : 16/07/2012
Câu 1 : Trình bày khái niệm Deadlocks và nêu các ví dụ minh họa
- Khái niệm Deadlocks :
+ Deadlock: là tình huống kẹt của một nhóm tiens trình do mỗi tiến trình trong nhóm đều chờ một sự kiện (event) có thể chỉ được gây ra bởi một tiến trình khác.
Ví dụ :
+ Ví dụ 1 :
Giả sử hệ thống có 2 file trên đĩa.
P1 và P2 mỗi process đang mở một file và yêu cầu mở file kia.
+ Ví dụ 2 :
Semaphore A và B, khởi tạo bằng 1
P0 P1
wait (A); wait(B)
wait (B); wait(A)
+ Deadlock: là tình huống kẹt của một nhóm tiens trình do mỗi tiến trình trong nhóm đều chờ một sự kiện (event) có thể chỉ được gây ra bởi một tiến trình khác.
Ví dụ :
+ Ví dụ 1 :
Giả sử hệ thống có 2 file trên đĩa.
P1 và P2 mỗi process đang mở một file và yêu cầu mở file kia.
+ Ví dụ 2 :
Semaphore A và B, khởi tạo bằng 1
P0 P1
wait (A); wait(B)
wait (B); wait(A)
NguyenThiThuThuy (113A)- Tổng số bài gửi : 18
Join date : 17/07/2012
Age : 36
Định nghĩa deadlock
Tình huống kẹt của của một nhóm tiến trình do mỗi tiến trình trong nhóm đều chờ một sự kiện (event) có thể chỉ được gây ra bởi một tiến trình khác.
ví dụ: 2 xe đi cùng chiều qua một cây cầu hẹp, mà cầu chỉ có một làn xe, nên khi 2 xe vào đến giữa cầu thì không thể tiếp tục tiến tới nữa, xãy ra kẹt xe (deadlock) vì không xe nào chịu nhường.
ví dụ: 2 xe đi cùng chiều qua một cây cầu hẹp, mà cầu chỉ có một làn xe, nên khi 2 xe vào đến giữa cầu thì không thể tiếp tục tiến tới nữa, xãy ra kẹt xe (deadlock) vì không xe nào chịu nhường.
nguyenduchuy19 (113A)- Tổng số bài gửi : 20
Join date : 17/07/2012
câu 2 : trình bày 4 điều kiện cần dẫn đến deallock và qua đó trình bày giải pháp ngăn chặn deallock ( ngăn chặn nghĩa là phủ định 1 trong 4 điều kiện cần này)
- loại trừ lẫn nhau : + ít nhất có 1 tài nguyên có tính không chia sẻ. mỗi thời điểm chì có 1 tiến trình được sử dụng loại tài nguyên đó.
ví dụ : cây cầu hẹp hoặc yếu có tính không chia sẻ vì tại mỗi thời điểm chỉ có 1 chiếc xe qua cầu
PHỦ ĐỊNH
+ tài nguyên nào cũng được chia sẻ, dùng chung được bởi nhiều tiến trình
- giữ và chờ : + tiến trình giữ tài nguyên này và xin thêm tài nguyên kia.
ví dụ: tiến trình đang sử dụng máy in và xin thêm ổ băng từ.
PHỦ ĐỊNH
+ khi xin thêm 1 tài nguyên thì phải giảm bớt một tài nguyên
+ cấp hết tài nguyên khi tiến trình yêu cầu.
- không có tiếm quyền : + hệ thống không bắt tiến trình phải trả lại tài nguyên, tiến trình không tự nguyện trả lại tài nguyên sau khi sử dụng.
ví dụ : phần mặt đường ai cũng muốn nắm giữ khi đi xe đường qua các ngã tư, không ai chịu lùi lại để thông xe.
ví dụ : thầy và bạn nguyễn văn a đang đậu xe trên mặt đường, lúc này đang kẹt xe. biện pháp lúc này là dùng xe cần cẩu nhất thầy và bạn nguyễn văn a lên cao hơn 2 mét để giải phóng mặt đường cho xe lưu thông đi qua.
PHỦ ĐỊNH
+ khi tiến trình xin thêm tài nguyên, nếu tài nguyên đang được sử dụng bởi tiến trình khác thì tiến trình này sẽ bị tiếm quyền và cấp tài nguyên tiến trình đang sử dụng cho tiến trình đang có nhu cầu xin tài nguyên
- chờ xoay vòng: có n tiến trình chờ tài nguyên, p1 chờ tài nguyên p2, p2 chờ tài nguyên p3,...,pn chờ tài nguyên p1.
PHỦ ĐỊNH :
+ đánh số các tài nguyên theo 1 thứ tự tăng dần và cấp phát theo thứ tự này
ví dụ : ổ băng từ đánh số 1, đĩa cứng đánh số 2, máy in đánh số 3...
ví dụ : cây cầu hẹp hoặc yếu có tính không chia sẻ vì tại mỗi thời điểm chỉ có 1 chiếc xe qua cầu
PHỦ ĐỊNH
+ tài nguyên nào cũng được chia sẻ, dùng chung được bởi nhiều tiến trình
- giữ và chờ : + tiến trình giữ tài nguyên này và xin thêm tài nguyên kia.
ví dụ: tiến trình đang sử dụng máy in và xin thêm ổ băng từ.
PHỦ ĐỊNH
+ khi xin thêm 1 tài nguyên thì phải giảm bớt một tài nguyên
+ cấp hết tài nguyên khi tiến trình yêu cầu.
- không có tiếm quyền : + hệ thống không bắt tiến trình phải trả lại tài nguyên, tiến trình không tự nguyện trả lại tài nguyên sau khi sử dụng.
ví dụ : phần mặt đường ai cũng muốn nắm giữ khi đi xe đường qua các ngã tư, không ai chịu lùi lại để thông xe.
ví dụ : thầy và bạn nguyễn văn a đang đậu xe trên mặt đường, lúc này đang kẹt xe. biện pháp lúc này là dùng xe cần cẩu nhất thầy và bạn nguyễn văn a lên cao hơn 2 mét để giải phóng mặt đường cho xe lưu thông đi qua.
PHỦ ĐỊNH
+ khi tiến trình xin thêm tài nguyên, nếu tài nguyên đang được sử dụng bởi tiến trình khác thì tiến trình này sẽ bị tiếm quyền và cấp tài nguyên tiến trình đang sử dụng cho tiến trình đang có nhu cầu xin tài nguyên
- chờ xoay vòng: có n tiến trình chờ tài nguyên, p1 chờ tài nguyên p2, p2 chờ tài nguyên p3,...,pn chờ tài nguyên p1.
PHỦ ĐỊNH :
+ đánh số các tài nguyên theo 1 thứ tự tăng dần và cấp phát theo thứ tự này
ví dụ : ổ băng từ đánh số 1, đĩa cứng đánh số 2, máy in đánh số 3...
PhamQuocAnh02 (113A)- Tổng số bài gửi : 27
Join date : 16/07/2012
4 điều kiện cần dẫn đến deadlock
- Loại trừ lẫn nhau (Multual Exclusion): Ít nhất có 1 tài nguyên có tính không chia sẻ (non-shareable), nghĩa là mỗi thời điểm chỉ có một tiến trình được sử dụng nó.
- Giữ và chờ (Hold and Wait): Có 1 tiến trình đang giữ tài nguyên và xin thêm tài nguyên đang bị độ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 dung xong.
- Chờ xoay vòng (Circular Wait): Giả sử có n tiến trình đang chờ tài nguyên {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.
- Giữ và chờ (Hold and Wait): Có 1 tiến trình đang giữ tài nguyên và xin thêm tài nguyên đang bị độ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 dung xong.
- Chờ xoay vòng (Circular Wait): Giả sử có n tiến trình đang chờ tài nguyên {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.
nguyenduchuy19 (113A)- Tổng số bài gửi : 20
Join date : 17/07/2012
Giải pháp ngăn Deadlock
Phần lớn, chúng ta có thể giải quyết vấn đề deadlock theo một trong ba cách:
• Chúng ta có thể sử dụng một giao thức để ngăn chặn hay tránh deadlocks, đảm bảo rằng hệ thống sẽ không bao giờ đi vào trạng thái deadlock
• Chúng ta có thể cho phép hệ thống đi vào trạng thái deadlock, phát hiện nó và phục hồi.
• Chúng ta có thể bỏ qua hoàn toàn vấn đề này và giả vờ deadlock không bao giờ xảy ra trong hệ thống. Giải pháp này được dùng trong nhiều hệ điều hành, kể cả UNIX.
• Chúng ta sẽ tìm hiểu vắn tắt mỗi phương pháp. Sau đó, chúng ta sẽ trình bày các giải thuật một cách chi tiết trong các phần sau đây.
Để đảm bảo deadlock không bao giờ xảy ra, hệ thống có thể dùng kế hoạch ngăn chặn hay tránh deadlock. Ngăn chặn deadlock là một tập hợp các phương pháp để đảm bảo rằng ít nhất một điều kiện cần không thể xảy ra. Các phương pháp này ngăn chặn deadlocks bằng cách ràng buộc yêu cầu về tài nguyên được thực hiện như thế nào. Chúng ta thảo luận phương pháp này trong phần sau.
Ngược lại, tránh deadlock yêu cầu hệ điều hành cung cấp những thông tin bổ sung tập trung vào loại tài nguyên nào một quá trình sẽ yêu cầu và sử dụng trong thời gian sống của nó. Với những kiến thức bổ sung này, chúng ta có thể quyết định đối với mỗi yêu cầu quá trình nên chờ hay không. Để quyết định yêu cầu hiện tại có thể được thoả mãn hay phải bị trì hoãn, hệ thống phải xem xét tài nguyên hiện có, tài nguyên hiện cấp phát cho mỗi quá trình, và các yêu cầu và giải phóng tương lai của mỗi quá trình.
Nếu một hệ thống không dùng giải thuật ngăn chặn hay tránh deadlock thì trường hợp deadlock có thể xảy ra. Trong môi trường này, hệ thống có thể cung cấp một giải thuật để xem xét trạng thái của hệ thống để xác định deadlock có xảy ra hay không và giải thuật phục hồi từ deadlock.
Nếu hệ thống không đảm bảo rằng deadlock sẽ không bao giờ xảy ra và cũng không cung cấp một cơ chế để phát hiện và phục hồi deadlock thì có thể dẫn đến trường hợp hệ thống ở trong trạng thái deadlock. Trong trường hợp này, deadlock không được phát hiện sẽ làm giảm năng lực hệ thống vì tài nguyên đang được giữ bởi những quá trình mà chúng không thể thực thi, đi vào trạng thái deadlock. Cuối cùng, hệ thống sẽ dừng các chức năng và cần được khởi động lại bằng thủ công.
Mặc dù phương pháp này dường như không là tiếp cận khả thi đối với vấn đề deadlock nhưng nó được dùng trong một số hệ điều hành. Trong nhiều hệ thống, deadlock xảy ra không thường xuyên; do đó phương pháp này là rẻ hơn chi phí cho phương pháp ngăn chặn deadlock, tránh deadlock, hay phát hiện và phục hồi deadlock mà chúng phải được sử dụng liên tục. Trong một số trường hợp, hệ thống ở trong trạng thái cô đặc nhưng không ở trạng thái deadlock. Như thí dụ, xem xét một quá trình thời thực chạy tại độ ưu tiên cao nhất (hay bất cứ quá trình đang chạy trên bộ định thời biểu không trưng dụng) và không bao giờ trả về điều khiển đối với hệ điều hành. Do đó, hệ thống phải có phương pháp phục hồi bằng thủ công cho các điều kiện không deadlock và có thể đơn giản sử dụng các kỹ thuật đó cho việc phục hồi deadlock.
• Chúng ta có thể sử dụng một giao thức để ngăn chặn hay tránh deadlocks, đảm bảo rằng hệ thống sẽ không bao giờ đi vào trạng thái deadlock
• Chúng ta có thể cho phép hệ thống đi vào trạng thái deadlock, phát hiện nó và phục hồi.
• Chúng ta có thể bỏ qua hoàn toàn vấn đề này và giả vờ deadlock không bao giờ xảy ra trong hệ thống. Giải pháp này được dùng trong nhiều hệ điều hành, kể cả UNIX.
• Chúng ta sẽ tìm hiểu vắn tắt mỗi phương pháp. Sau đó, chúng ta sẽ trình bày các giải thuật một cách chi tiết trong các phần sau đây.
Để đảm bảo deadlock không bao giờ xảy ra, hệ thống có thể dùng kế hoạch ngăn chặn hay tránh deadlock. Ngăn chặn deadlock là một tập hợp các phương pháp để đảm bảo rằng ít nhất một điều kiện cần không thể xảy ra. Các phương pháp này ngăn chặn deadlocks bằng cách ràng buộc yêu cầu về tài nguyên được thực hiện như thế nào. Chúng ta thảo luận phương pháp này trong phần sau.
Ngược lại, tránh deadlock yêu cầu hệ điều hành cung cấp những thông tin bổ sung tập trung vào loại tài nguyên nào một quá trình sẽ yêu cầu và sử dụng trong thời gian sống của nó. Với những kiến thức bổ sung này, chúng ta có thể quyết định đối với mỗi yêu cầu quá trình nên chờ hay không. Để quyết định yêu cầu hiện tại có thể được thoả mãn hay phải bị trì hoãn, hệ thống phải xem xét tài nguyên hiện có, tài nguyên hiện cấp phát cho mỗi quá trình, và các yêu cầu và giải phóng tương lai của mỗi quá trình.
Nếu một hệ thống không dùng giải thuật ngăn chặn hay tránh deadlock thì trường hợp deadlock có thể xảy ra. Trong môi trường này, hệ thống có thể cung cấp một giải thuật để xem xét trạng thái của hệ thống để xác định deadlock có xảy ra hay không và giải thuật phục hồi từ deadlock.
Nếu hệ thống không đảm bảo rằng deadlock sẽ không bao giờ xảy ra và cũng không cung cấp một cơ chế để phát hiện và phục hồi deadlock thì có thể dẫn đến trường hợp hệ thống ở trong trạng thái deadlock. Trong trường hợp này, deadlock không được phát hiện sẽ làm giảm năng lực hệ thống vì tài nguyên đang được giữ bởi những quá trình mà chúng không thể thực thi, đi vào trạng thái deadlock. Cuối cùng, hệ thống sẽ dừng các chức năng và cần được khởi động lại bằng thủ công.
Mặc dù phương pháp này dường như không là tiếp cận khả thi đối với vấn đề deadlock nhưng nó được dùng trong một số hệ điều hành. Trong nhiều hệ thống, deadlock xảy ra không thường xuyên; do đó phương pháp này là rẻ hơn chi phí cho phương pháp ngăn chặn deadlock, tránh deadlock, hay phát hiện và phục hồi deadlock mà chúng phải được sử dụng liên tục. Trong một số trường hợp, hệ thống ở trong trạng thái cô đặc nhưng không ở trạng thái deadlock. Như thí dụ, xem xét một quá trình thời thực chạy tại độ ưu tiên cao nhất (hay bất cứ quá trình đang chạy trên bộ định thời biểu không trưng dụng) và không bao giờ trả về điều khiển đối với hệ điều hành. Do đó, hệ thống phải có phương pháp phục hồi bằng thủ công cho các điều kiện không deadlock và có thể đơn giản sử dụng các kỹ thuật đó cho việc phục hồi deadlock.
nguyenduchuy19 (113A)- Tổng số bài gửi : 20
Join date : 17/07/2012
Câu 2 : Trình bày 4 điều kiện cần dẫn đến Deadlocks và qua đó trình bày giải pháp ngăn chặn Deadlocks
- 4 điều kiện cần dẫn đến Deadlocks :
+ Loại trừ lẫn nhau(Mutual Rxclusion): Í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 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 .
- Giải pháp ngăn chặn Deadlocks :
+ Để 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 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 Rxclusion): Í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 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 .
- Giải pháp ngăn chặn Deadlocks :
+ Để 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 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.
NguyenThiThuThuy (113A)- Tổng số bài gửi : 18
Join date : 17/07/2012
Age : 36
Re: Thảo luận Bài 8
1 .Định Nghĩa Deadlock ?
Tình huống kẹt của của một nhóm tiến trình do mỗi tiến trình trong nhóm đều chờ một sự kiện (event) có thể chỉ được gây ra bởi một tiến trình khác.
vd1: 2 xe đi cùng chiều qua một cây cầu hẹp, mà cầu chỉ có một làn xe, nên khi 2 xe vào đến giữa cầu thì không thể tiếp tục tiến tới nữa, xãy ra kẹt xe (deadlock) vì không xe nào chịu nhường.
vd2: 5 lớp học điều cần máy chiếu . Trong khi đó phòng thiết bị chỉ có 1 máy chiếu .điều này dẫn tới ranh chấp chữa các lớp dùng máy chiếu .
vd3 : giả sử tổng đài 1080 có tất cả 50 điện thoại viên. Cùng 1 lúc có 50 khách gọi đến nhờ phục vụ . Lúc này người thứ 51 gọi vào 1080 phải chờ . Xãy ra hiện tượng deadlock
VD3 - Minh hoạ đời thường:
Tình huống kẹt của của một nhóm tiến trình do mỗi tiến trình trong nhóm đều chờ một sự kiện (event) có thể chỉ được gây ra bởi một tiến trình khác.
vd1: 2 xe đi cùng chiều qua một cây cầu hẹp, mà cầu chỉ có một làn xe, nên khi 2 xe vào đến giữa cầu thì không thể tiếp tục tiến tới nữa, xãy ra kẹt xe (deadlock) vì không xe nào chịu nhường.
vd2: 5 lớp học điều cần máy chiếu . Trong khi đó phòng thiết bị chỉ có 1 máy chiếu .điều này dẫn tới ranh chấp chữa các lớp dùng máy chiếu .
vd3 : giả sử tổng đài 1080 có tất cả 50 điện thoại viên. Cùng 1 lúc có 50 khách gọi đến nhờ phục vụ . Lúc này người thứ 51 gọi vào 1080 phải chờ . Xãy ra hiện tượng deadlock
VD3 - Minh hoạ đời thường:
NguyenVanQuyet57 (113A)- Tổng số bài gửi : 25
Join date : 16/07/2012
Age : 33
4 cách ngăn chặn Deadlock.
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 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.
Để 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 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.
NguyenVanQuyet57 (113A)- Tổng số bài gửi : 25
Join date : 16/07/2012
Age : 33
Trình bày 4 điều kiện cần dẫn đến Deadlocks và qua đó trình bày giải pháp ngăn chặn Deadlocks.
*4 điều kiện cần dẫn đến Deadlocks :
*Giải pháp ngăn chặn Deadlocks :
+ Để 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ể:
- + Loại trừ lẫn nhau(Mutual Rxclusion): Í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 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 .
*Giải pháp ngăn chặn Deadlocks :
+ Để 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 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:
- a) Khi TT yêu cầu TN, nó không được giữ 1 TN nào khác.
- b) 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:
- a) 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.
- b) 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.
NgoManhHung (113A)- Tổng số bài gửi : 8
Join date : 20/07/2012
Deadlock ngay tại cơ sở Ngô Tất Tố Nè.
Ví dụ: Vì lý do gì đó trường nghèo quá nên chỉ sắm được 1 máy chiếu mà đến 3 phòng cần. Vậy hiện tượng Deadlock xảy ra.
Giải quyết: Mỗi phòng chỉ sử dụng được thời gian nào đó được ấn định
Admin
- Thiếu tài nguyên không có nghĩa là Deadlock !
- Các phòng đều có máy chiếu cả. Đâu có "Nghèo" ?
Giải quyết: Mỗi phòng chỉ sử dụng được thời gian nào đó được ấn định
Admin
- Thiếu tài nguyên không có nghĩa là Deadlock !
- Các phòng đều có máy chiếu cả. Đâu có "Nghèo" ?
Thêm 1 ví dụ thường gặp tình trạng Deadlock khi sử dụng máy tính
Ví dụ: Thời sử dụng máy tính PIII máy mình RAM không đủ chạy nhiều ứng dụng cùng 1 lúc thế là bị treo máy. Phải Reboot lại mới được.
Giải quyết: Chạy 1 ứng dụng tại một thời điểm xong rồi tắt mở chương trình khác thể là xong(Sẽ có chương trình cần RAM nhiều(PhotoShop chẳng hạn) mà máy không đủ thì cũng xảy ra hiện tượng Deadlock)
Giải quyết: Chạy 1 ứng dụng tại một thời điểm xong rồi tắt mở chương trình khác thể là xong(Sẽ có chương trình cần RAM nhiều(PhotoShop chẳng hạn) mà máy không đủ thì cũng xảy ra hiện tượng Deadlock)
Định Nghĩa Deadlock
Định nghĩa:
-Deadlock là trạng thái hệ thống, ở đó tiến trình rơi vào tình trạng chờ đợi vô điều kiện -> vô hạn định -> hệ thống bị tắt nghẽn
-Một tập hợp các process được gọi là bị deadlock khi mỗi process trong tập hợp chờ đợi sự kiện từ process khác trong tập hợp
-Sự kiện chờ đợi thường được gọi là tài nguyên đang bị chiếm giữ được trao trả cho hệ thống.
-Khi xảy ra deadlock không có process nào có thể thực thi, giao trả tài nguyên.
-Deadlock là trạng thái hệ thống, ở đó tiến trình rơi vào tình trạng chờ đợi vô điều kiện -> vô hạn định -> hệ thống bị tắt nghẽn
-Một tập hợp các process được gọi là bị deadlock khi mỗi process trong tập hợp chờ đợi sự kiện từ process khác trong tập hợp
-Sự kiện chờ đợi thường được gọi là tài nguyên đang bị chiếm giữ được trao trả cho hệ thống.
-Khi xảy ra deadlock không có process nào có thể thực thi, giao trả tài nguyên.
PhamHuyHoang(I113A)- Tổng số bài gửi : 10
Join date : 16/08/2012
Ưu nhược điểm của Deadlock Prevention
* Ưu điểm Deadlock Prevention: ngăn chặn bế tắc (deadlock
prevention) là phương pháp tránh được bế
tắc bằng cách làm cho điều kiện cần không
được thỏa mãn
* Nhược điểm Deadlock Prevention:
_Giảm khả năng tận dụng tài nguyên và giảm
thông lượng của hệ thống
_Không mềm dẻo
prevention) là phương pháp tránh được bế
tắc bằng cách làm cho điều kiện cần không
được thỏa mãn
* Nhược điểm Deadlock Prevention:
_Giảm khả năng tận dụng tài nguyên và giảm
thông lượng của hệ thống
_Không mềm dẻo
LeDangBaoNgoc55 (113A)- Tổng số bài gửi : 15
Join date : 16/07/2012
Các điều kiện cần thiết để sinh ra deadlock
Trường hợp deadlock có thể phát sinh nếu bốn điều kiện sau xảy ra cùng một lúc trong hệ thống:
1)Loại trừ hỗ tương: ít nhất một tài nguyên phảiđược giữ trong chế độ không chia sẻ; nghĩa là, chỉ một quá trình tại cùng một thờiđiểm có thể sử dụng tài nguyên. Nếu một quá trình khác yêu cầu tài nguyênđó, quá trình yêu cầu phải tạm dừng chođến khi tài nguyên được giải phóng.
2)Giữ và chờ cấp thêm tài nguyên: quá trình phảiđang giữ ít nhất một tài nguyên vàđang chờ để nhận tài nguyên thêm mà hiệnđangđược giữ bởi quá trình khác.
3)Không đòi lại tài nguyên từ quá trình đang giữ chúng: Các tài nguyên không thể bị đòi lại; nghĩa là, tài nguyên có thể được giải phóng chỉ tự ý bởi quá trìnhđang giữ nó, sau khi quá trìnhđó hoàn thành tác vụ.
4)Tồn tại chu trình trong đồ thị cấp phát tài nguyên: một tập hợp các quá trình {P0, P1,…,Pn} đang chờ mà trong đó P0 đang chờ một tài nguyên được giữ bởi P1,P1 đang chờ tài nguyên đang giữ bởi P2,…,Pn-1 đang chờ tài nguyên đang được giữ bởi quá trình P0.
Tất cả bốn điều kiện phải cùng phát sinh để deadlock xảy ra.Điều kiện chờ đợi chương trình đưa đến điều kiện giữ-và-chờ vì thế bốn điều kiện không hoàn toàn độc lập.
- Nếu thiếu 1 trong 4 đk trên thì deadlock sẽ bị ngăn chặn
1)Loại trừ hỗ tương: ít nhất một tài nguyên phảiđược giữ trong chế độ không chia sẻ; nghĩa là, chỉ một quá trình tại cùng một thờiđiểm có thể sử dụng tài nguyên. Nếu một quá trình khác yêu cầu tài nguyênđó, quá trình yêu cầu phải tạm dừng chođến khi tài nguyên được giải phóng.
2)Giữ và chờ cấp thêm tài nguyên: quá trình phảiđang giữ ít nhất một tài nguyên vàđang chờ để nhận tài nguyên thêm mà hiệnđangđược giữ bởi quá trình khác.
3)Không đòi lại tài nguyên từ quá trình đang giữ chúng: Các tài nguyên không thể bị đòi lại; nghĩa là, tài nguyên có thể được giải phóng chỉ tự ý bởi quá trìnhđang giữ nó, sau khi quá trìnhđó hoàn thành tác vụ.
4)Tồn tại chu trình trong đồ thị cấp phát tài nguyên: một tập hợp các quá trình {P0, P1,…,Pn} đang chờ mà trong đó P0 đang chờ một tài nguyên được giữ bởi P1,P1 đang chờ tài nguyên đang giữ bởi P2,…,Pn-1 đang chờ tài nguyên đang được giữ bởi quá trình P0.
Tất cả bốn điều kiện phải cùng phát sinh để deadlock xảy ra.Điều kiện chờ đợi chương trình đưa đến điều kiện giữ-và-chờ vì thế bốn điều kiện không hoàn toàn độc lập.
- Nếu thiếu 1 trong 4 đk trên thì deadlock sẽ bị ngăn chặn
LeDangBaoNgoc55 (113A)- Tổng số bài gửi : 15
Join date : 16/07/2012
Loại bỏ các điều kiện dẫn đến deadlock
Giảm số tài nguyên tranh chấp.
Tăng số lượng tài nguyên.
Cấp phát tài nguyên dạng spool.
Tăng số lượng tài nguyên.
Cấp phát tài nguyên dạng spool.
VuongXuongThong (113A)- Tổng số bài gửi : 20
Join date : 17/07/2012
Trình bày thứ tự sử dụng tài nguyên của tiến trình
Thứ tự sử dụng tài nguyên của tiến trình:
1. Yêu cầu (Request): Nếu không được đáp ứng do bị tiến trình khác giữ => tiến trình phải chờ.
2. Sử dụng (Use): Sau khi được cấp phát, tiến trình thao tác với tài nguyên (thực hiệnI/O, in ra giấy, ...).
3. Trả lại (Release): Trả tài nguyên cho HĐH quản lý.
TranThichThem (113A)- Tổng số bài gửi : 41
Join date : 18/07/2012
Age : 34
ĐỊNH NGHĨA DEADLOCK. VẤN ĐỀ QUAN TRỌNG CỦA NÓ.
Định nghĩa: Là tình huống bị kẹt của một nhóm tiến trình do mỗi tiến trình trong nhóm đều chờ một sự kiện (event) có thể chỉ được gây ra bởi một tiến trình khác.
Ví dụ: Tại ngã 4, 4 xe tại 4 hướng khác nhau cùng đến giao lộ, không xe nào chịu nhường đường cho xe nào nên tất cả đều phải chờ đến khi có đường trống để đi => kết quả là kẹt xe. Như thế tất cả 4 xe đều trong trạng thái chờ hay nói cách khác các tiến trình đang chờ tài nguyên của nhau và cứ xoay vòng và như thế tất cả tiến trình đều kẹt(deadlock).
Deadlock là một vấn đề quan trọng không những lĩnh vực công nghệ(chương trinh vận hành) mà còn ảnh hưởng đến các lĩnh vực khác trong đời sống(như là giao thông).
+ Công nghệ: nếu 1 chương trình đang vận hành một hệ thống gì đó quan trọng phức tạp và nguy hiểm thì tuy deadlock rất hiếm gặp nhưng khi xảy ra thì sẽ mang lại thiệt hại cực kì nghiêm trọng, có thể làm sụp đổ cả 1 hệ thống (vd: nhà máy điện hạt nhân nếu mà bị kẹt tiến trình => hệ thống làm lạnh các thanh nhiên liệu nguyên tử không hoạt động thì nhiệt độ tăng cao gây ra nổ hạt nhân. Chất phóng xạ lan ra ngoài sẽ tàn phá sự sống.)
+ Còn trong giao thông: sẽ gây kẹt xe làm trễ công việc => gây thiệt hại rất lớn về tiền bạc cũng như thời gian.
TranThichThem (113A)- Tổng số bài gửi : 41
Join date : 18/07/2012
Age : 34
Thuật giải tránh deadlock RAG
Thuật giải tránh deadlock RAG (áp dụng cho trường hợp loại tài nguyên chỉ có 1 phiên bản) nếu có nhiều phiên bản thuật giải này không dùng được:
- Trên RAG, lúc đầu tất cả nhu cầu về tài nguyên của tiến trình phải được khai báo trước bằng các Cung Nhu cầu (Claim edge) Pi • • •> Rj chỉ báo rằng Pi có thể sẽ yêu cầu Rj - Cung Nhu cầu Pi • • •> Rj được chuyển thành Cung Yêu cầu (Request edge) Pi • • •> Rj khi Pi thực sự bắt đầu cần đến Rj . - Nếu yêu cầu Pi • • •> Rj được HĐH đáp ứng, cung Pi • • •> Rj chuyển thành Cung Ấn định (Assignment edge) Pi <• • • Rj nối phiên bản duy nhất của Rj với Pi . - Khi HĐH xét yêu cầu Pi • • •>Rj. Hệ chỉ cấp phát Rj cho Pi nếu Cung Ấn định Pi <• • • Rj không tạo ra vòng tròn đồng hướng trong RAG (xét cả các Cung Nhu cầu). - Thuật giải có độ phức tạp o(n²) với n là số tiến trình trong hệ. Ví dụ trách deadlock dùng RAG: Đầu tiên khai báo tất cả các nhu cầu của P1 và P2:P1 và P2 có thể sử dụng R1,R2.
TranThichThem (113A)- Tổng số bài gửi : 41
Join date : 18/07/2012
Age : 34
Định nghĩa Deadlock (Kẹt khóa)
Định nghĩa Deadlock (Kẹt khóa): Tình huống bị kẹt của một nhóm tiến trình do mỗi tiến trình trong nhóm đều chờ một sự kiện (event) có thể chỉ được gây ra bởi một tiến trình khác.
Ví dụ minh họa Deadlock:
Đi Lễ (Chùa Hương,Đền Hùng) khi giữa dòng người đi ra và đi vào trên cùng một tuyến đường gây ra kẹt và chờ nhau
TranThichThem (113A)- Tổng số bài gửi : 41
Join date : 18/07/2012
Age : 34
Trang 2 trong tổng số 5 trang • 1, 2, 3, 4, 5
Similar topics
» Giải giúp bài RRS này nhé
» Thảo luận các vấn đề của Môn học
» Thảo luận Bài 3
» Thảo luận bài 4
» Thảo luận Bài 7
» Thảo luận các vấn đề của Môn học
» Thảo luận Bài 3
» Thảo luận bài 4
» Thảo luận Bài 7
Trang 2 trong tổng số 5 trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết