Ví dụ về RAD
+3
Lethanhtruc
mymy
buuhuynh
7 posters
Trang 1 trong tổng số 1 trang
Ví dụ về RAD
Mình gửi các bạn ví dụ về rad. Các bạn xem rồi cùng thảo luận nhé.
Khách vi- Khách viếng thăm
Re: Ví dụ về RAD
Bạn cho mình hỏi Deadlock xảy ra ở tại chổ nào? ai bít giải thíck dùm thanks!
buuhuynh- Tổng số bài gửi : 148
Join date : 06/05/2009
Re: Ví dụ về RAD
Cac ban co the giai thich ro hon khong? cai nay minh cung chua hieu lam, co chu trinh cung co the co hoac khong co Deadlock ma.
mymy- Tổng số bài gửi : 49
Join date : 11/03/2009
Re: Ví dụ về RAD
Theo mình hiểu như thế này.
RAD ở trên xảy ra deadlock tại R2 tức là khi P3 xin phiên bản từ R2. R2 chỉ có 2 phiên bản nhưng đã cấp cho P1 và P2, trong khi đó P3 lại xin phiên bản của R2. Vì vậy để được cấp phiên bản, P3 phải đợi cho đến khi P1 hoặc P2 tự nguyện trả lại phiên bản cho R2 khi đó R2 mới có thể cấp cho P3. Và chính tại thời điểm chờ đó đã xảy ra deadlock (kẹt tiến trình).
Hay bạn có thể hiểu như sau: Deadlock xảy ra khi các tiến trình có dạng mũi tên đuổi nhau đồng hướng tạo thành chu trình. Và cũng tuỳ trường hợp có chu trình xảy ra hay không xảy ra deadlock, với ví dụ trên có chu trình --> deadlock.
Mong có sự góp ý của thầy và các bạn.
Thân!
RAD ở trên xảy ra deadlock tại R2 tức là khi P3 xin phiên bản từ R2. R2 chỉ có 2 phiên bản nhưng đã cấp cho P1 và P2, trong khi đó P3 lại xin phiên bản của R2. Vì vậy để được cấp phiên bản, P3 phải đợi cho đến khi P1 hoặc P2 tự nguyện trả lại phiên bản cho R2 khi đó R2 mới có thể cấp cho P3. Và chính tại thời điểm chờ đó đã xảy ra deadlock (kẹt tiến trình).
Hay bạn có thể hiểu như sau: Deadlock xảy ra khi các tiến trình có dạng mũi tên đuổi nhau đồng hướng tạo thành chu trình. Và cũng tuỳ trường hợp có chu trình xảy ra hay không xảy ra deadlock, với ví dụ trên có chu trình --> deadlock.
Mong có sự góp ý của thầy và các bạn.
Thân!
Lethanhtruc- Tổng số bài gửi : 64
Join date : 24/03/2009
Re: Ví dụ về RAD
Thanks bạn Lethanhtruc nhiều.
phamvietthanh- Tổng số bài gửi : 32
Join date : 19/02/2009
Age : 44
RAG
bạn thanhtruc trả lời giống ý kiến của mình. bài bạn hỏi giống y hệt bài giảng của thầy trên lớp. bạn xem lại slide của thầy ở bài 8 trang 10 nhé.
hongchien- Tổng số bài gửi : 19
Join date : 02/04/2009
Age : 42
Đến từ : Long An
Re: Ví dụ về RAD
Theo bạn thanhtruc thì deadlock xảy ra trên R2 nhưng theo minh nghĩ thì deadlock xảy ra trên toàn hệ thống . Giải thích dựa vào 4 điều kiện dẫn đến deadlocl ! Mong thanhtruc và cac bạn nhận xét và góp ý !thanks người đã post topic này!
buuhuynh- Tổng số bài gửi : 148
Join date : 06/05/2009
RAG
mình đồng ý với bạn thanh truc. đã nêu ra được vì sao gây ra Deadlock, để muốn ngăn chặn Deadlock thì mình sẽ sử dụng cách nào. theo mình cách ngăn chặn Deadlock là khi P2 yêu cầu TN R3 thì P2 phải trả lại TN đang giữ cho R2. khi đó R2 đáp ứng được yêu cầu từ P3. kẹt tạm thời, P2 sau 1 khỏang thời gian thì trả lại tài nguyên cho R2.
hongchien- Tổng số bài gửi : 19
Join date : 02/04/2009
Age : 42
Đến từ : Long An
RAG
Theo như ví dụ trên:R2 có 2 phiên bản,R1 có 1 phiên bản và R3 cũng có 1 phiên bản
Tức là: P1 đang giữ 1 phiên bản của R2 và P1 xin thêm 1 phiên bản của R1 đang độc chiếm bởi tiến trình P2.
Tương tự P2 đang giữ 1 phiên bản của R2 và P2 xin thêm 1 phiên bản của R3 đang độc chiếm bởi tiến trình P3,
P3 đang giữ 1 phiên bản của R3 và P3 xin thêm 1 phiên bản của R2 đang độc chiếm bởi tiến trình P1 và P2.
Do các tiến trình đang giữ tài nguyên và xin thêm tài nguyên đang độc chiếm bởi các tiến trình khác ->chờ xoay vòng. Hơn nữa không có tiến trình nào tự nguyện trả lại tài nguyên cho hệ thống nên Deadlock xảy ra.
Theo mình nghĩ ở ví dụ này Deadlock xảy ra trên cả hệ thống.
Tức là: P1 đang giữ 1 phiên bản của R2 và P1 xin thêm 1 phiên bản của R1 đang độc chiếm bởi tiến trình P2.
Tương tự P2 đang giữ 1 phiên bản của R2 và P2 xin thêm 1 phiên bản của R3 đang độc chiếm bởi tiến trình P3,
P3 đang giữ 1 phiên bản của R3 và P3 xin thêm 1 phiên bản của R2 đang độc chiếm bởi tiến trình P1 và P2.
Do các tiến trình đang giữ tài nguyên và xin thêm tài nguyên đang độc chiếm bởi các tiến trình khác ->chờ xoay vòng. Hơn nữa không có tiến trình nào tự nguyện trả lại tài nguyên cho hệ thống nên Deadlock xảy ra.
Theo mình nghĩ ở ví dụ này Deadlock xảy ra trên cả hệ thống.
nguyenthiphuongchi- Tổng số bài gửi : 57
Join date : 24/02/2009
Re: Ví dụ về RAD
Để tránh trường hợp dẫn đến deadlock không phải quan tâm đến trường hợp nào mà phải quan tâm đến cả 4 trường hợp.Nghĩa là Đối với người lập trình phải kiểm tra không tồn tại 1 hoặc hơn trong 4 điều kiện đó nếu sẽ dẫn đến deadlock .Ví dụ Khi một tiến trình đang giữ 1 tài nguyên trong 1 hệ thông thì không được quyền xin thêm tài nguyên (Limited Hold and wait)
buuhuynh- Tổng số bài gửi : 148
Join date : 06/05/2009
Re: Ví dụ về RAD
Theo ý mình cũng giống ý bạn nguyenthiphuongchi, nhưng cũng chưa chắc chắn lắm, mong các bạn góp ý và đưa ra câu trả lời chính xác nhất.
Thanks!
Thanks!
mymy- Tổng số bài gửi : 49
Join date : 11/03/2009
Trang 1 trong tổng số 1 trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết