Câu hỏi chương 8
+13
levantrung102 (102C)
phamanhthu94(102C)
NguyenHoangBaoNgan(102C)
NguyenAnhNgoc56 (102C)
nguyenthingoan (i92c)
trantanphat102C
LeNguyenHuuToan-I92c
vongocminhhoang (102C)
NguyenQuocHien(102C)
LuongThiXuanYen (102C)
TranVuLam(102C)
trandinhnghia
TruongThiMinhNgoc57(102C)
17 posters
Trang 1 trong tổng số 1 trang
Câu hỏi chương 8
Các bạn cùng mình soạn câu hỏi chương 8 nha.
Câu 1: Định nghĩa deadlock ( kẹt tiến trình) và nêu ví dụ minh họa
Định nghĩ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ụ: 5 thầy giáo đều cần máy chiếu để dạy ngay trong khi ở phòng thiết bị hiện tại chỉ có 1 máy chiếu => dẫn đến tranh chấp
Câu 2: Trình bày 4 điều kiện cần dẫn đến deadock
-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 ny 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ờ ti nguyn 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 .
Câu 1: Định nghĩa deadlock ( kẹt tiến trình) và nêu ví dụ minh họa
Định nghĩ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ụ: 5 thầy giáo đều cần máy chiếu để dạy ngay trong khi ở phòng thiết bị hiện tại chỉ có 1 máy chiếu => dẫn đến tranh chấp
Câu 2: Trình bày 4 điều kiện cần dẫn đến deadock
-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 ny 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ờ ti nguyn 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 .
Được sửa bởi TruongThiMinhNgoc57(102C) ngày 6/5/2011, 14:35; sửa lần 1.
TruongThiMinhNgoc57(102C)- Tổng số bài gửi : 90
Join date : 17/02/2011
Đến từ : TPHCM
Câu 3: Trình bày thứ tự sử dụng tài nguyên của tiến trình.
Trình bày thứ tự sử dụng tài nguyên của tiến trình.
Giải:
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ện I/O, in ra giấy, ...).
3. Trả lại (Release): Trả tài nguyên cho HĐH quản lý.
Giải:
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ện I/O, in ra giấy, ...).
3. Trả lại (Release): Trả tài nguyên cho HĐH quản lý.
trandinhnghia- Tổng số bài gửi : 47
Join date : 16/04/2009
Câu 4: Trình bày các phương thức xử trí Deadlock.
Trình bày các phương thức xử trí Deadlock.
Giải:
- Sử dụng quy tắc Ngăn chặn (Prevention) hoặc Tránh (Avoidance) để Deadlock không bao giờ xảy ra.
- Cho phép hệ thống bị Deadlock, sau đó Xác định (Detection) và tìm cách Khắc phục (Recover).
- 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).
Giải:
- Sử dụng quy tắc Ngăn chặn (Prevention) hoặc Tránh (Avoidance) để Deadlock không bao giờ xảy ra.
- Cho phép hệ thống bị Deadlock, sau đó Xác định (Detection) và tìm cách Khắc phục (Recover).
- 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).
trandinhnghia- Tổng số bài gửi : 47
Join date : 16/04/2009
Câu 5: Trình bày 4 cách ngăn chặn Deadlock.
Trình bày 4 cách ngăn chặn Deadlock.
Giải:
Để 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.
Giải:
Để 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.
trandinhnghia- Tổng số bài gửi : 47
Join date : 16/04/2009
Câu 6:Thế nào là trạng thái an toàn của hệ thống?
8.9. Thế nào là trạng thái an toàn của hệ thống?
Giải:
- 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.
Giải:
- 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.
trandinhnghia- Tổng số bài gửi : 47
Join date : 16/04/2009
Re: Câu hỏi chương 8
bạn ơi có các câu hỏi tu 1 den 8 luôn không ,tks nhé cố gắng tiếp nhé
TranVuLam(102C)- Tổng số bài gửi : 127
Join date : 16/02/2011
Re: Câu hỏi chương 8
Câu 3: Khái niệm đồ thị cấp phát tài nguyên. Trình bày cách vẽ và giải thích đồ thị cấp phát tài nguyên cho trước.
- Đồ thị cấp phát tài nguyên (Resource allocation graph-RAG) là đồ thị có hướng với tập nút V và tập cung E.
+ Tập nút V gồm 2 loại:
P ={P1, P2, ..., Pn} tập hợp các tiến trình đang vận hành trong hệ thống.
R ={R1, R2, ..., Rm} tất cả các tài nguyên trong hệ thống. Mỗi loại Rj có từ 1 đến nhiều
phiên bản. VD: máy in có 3 phiên bản, ...
+Tập cung E bao gồm:
Cung yêu cầu (Request edge): có hướng từ Pi -> Rj, P1 yêu cầu 1 phiên bản tài nguyên Rj.
Cung ấn định (Assignment edge): có hướng từ Rj->Pi, 1 phiên bản tài nguyên Rj được cấp
phát cho Pi.
Đồ thị cấp phát tài nguyên gồm có: chu trình và không có chu trình.
o Không có chu trình: không tồn tại Deadlock
o Có chu trình: có hoặc không có Deadlock
.Có Deadlock khi mỗi tài nguyên trên chu trình chỉ có duy nhất 1 phiên bản.
.Có thể không có Deadlock khi tài nguyên thuộc chu trình có nhiều phiên bản.
- Cách vẽ:
Hiển thị mỗi tiến trình Pi là một hình tròn, và mỗi loại tài nguyên Rj là hình chữ nhật. Vì loại tài nguyên Rj có thể có nhiều hơn một phiên bản, chúng ta hiển thị mỗi phiên bản là một chấm nằm trong hình vuông. Chú ý rằng một cung yêu cầu trỏ tới chỉ một hình vuông Rj (tới đường viền), trái lại một cung ấn định cũng phải trỏ tới một trong các dấu chấm trong hình vuông(vào trong viền).
- Giải thích:
Hình 1:
Các tập P, R, và E:
P = {P1, P2, P3}
R = {R1, R2, R3, R4}
E = {P1→R1, P2 →R3, R1 →P2, R2→P2, R3→P3}
Tiến trình P1 đang giữ một phiên bản của loại tài nguyên R2 và yêu cầu được cấp phát 1 phiên bản của loại tài nguyên R1. Tiến trình P2 đang giữ 1 phiên bản của loại tài nguyên R1 và 1 phiên bản của R2 và yêu cầu được được tài nguyên R3 cấp cho 1 phiên bản của nó. Tiến trình P3 đang giữ 1 phiên bản của tài nguyên R3. Còn lại tài nguyên R4 với các phiên bản của nó vẫn chưa có tiến trình nào xin được cấp phát. Từ hình vẽ Đồ thị cấp phát tài nguyên cho thấy không tồn tại chu trình cũng như Deadlock.
Hình 2:
Các tập P, R tương tự hình 1, tập E = {P1 → R1, R1 → P2, P2 → R3, R3 → P3, P3 → R2, R2 → P1, R2→P2}
Tiến trình P1 đang giữ một phiên bản của loại tài nguyên R2 và yêu cầu được cấp phát 1 phiên bản của loại tài nguyên R1. Tiến trình P2 đang giữ 1 phiên bản của loại tài nguyên R1 và 1 phiên bản của R2 và yêu cầu được được tài nguyên R3 cấp cho 1 phiên bản của nó. Tiến trình P3 đang giữ 1 phiên bản của tài nguyên R3 và yêu cầu cấp phát 1 phiên bản của tài nguyên R2. 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).
Hình 3:
Các tập P, R, và E:
P = {P1, P2, P3, P4}
R = {R1, R2}
E = {P1 → R1, R1 → P2 , R1 → P3, P3 → R2, R2 → P1, R2→P4}
Tiến trình P1 đang giữ một phiên bản của loại tài nguyên R2 và yêu cầu được cấp phát 1 phiên bản của loại tài nguyên R1. Tiến trình P2 đang giữ 1 phiên bản của loại tài nguyên R1. Tiến trình P3 đang giữ 1 phiên bản của tài nguyên R1 và yêu cầu cấp phát 1 phiên bản của tài nguyên R2. Tiến trình P4 đang giữ 1 phiên bản của tài nguyên R2. Từ hình chúng ta thấy xảy ra 1 chu trình P1 → R1 → P3 → R2 → P1 nhưng không có deadlock vì tiến trình P4 có thể trả lại phiên bản của loại tài nguyên R2. Tài nguyên đó có thể được cấp phát tới P3 sau đó, chu trình sẽ không còn.
"Học xong, Mình hiểu như thế nên trả lời câu hỏi này không biết có đúng không? Nếu có chỗ nào sai hay thiếu, các bạn góp ý giúp mình sửa lại, bổ sung thêm nha để hiểu thì mới nhớ mà ôn tập tốt hơn. Chuẩn bị hành trang cho kỳ thi sắp tới. Cám ơn các bạn nhiều ! Thầy nói bài này cũng quan trọng lắm, mà thật là vậy. giúp mình với nhé ^^ "
- Đồ thị cấp phát tài nguyên (Resource allocation graph-RAG) là đồ thị có hướng với tập nút V và tập cung E.
+ Tập nút V gồm 2 loại:
P ={P1, P2, ..., Pn} tập hợp các tiến trình đang vận hành trong hệ thống.
R ={R1, R2, ..., Rm} tất cả các tài nguyên trong hệ thống. Mỗi loại Rj có từ 1 đến nhiều
phiên bản. VD: máy in có 3 phiên bản, ...
+Tập cung E bao gồm:
Cung yêu cầu (Request edge): có hướng từ Pi -> Rj, P1 yêu cầu 1 phiên bản tài nguyên Rj.
Cung ấn định (Assignment edge): có hướng từ Rj->Pi, 1 phiên bản tài nguyên Rj được cấp
phát cho Pi.
Đồ thị cấp phát tài nguyên gồm có: chu trình và không có chu trình.
o Không có chu trình: không tồn tại Deadlock
o Có chu trình: có hoặc không có Deadlock
.Có Deadlock khi mỗi tài nguyên trên chu trình chỉ có duy nhất 1 phiên bản.
.Có thể không có Deadlock khi tài nguyên thuộc chu trình có nhiều phiên bản.
- Cách vẽ:
Hiển thị mỗi tiến trình Pi là một hình tròn, và mỗi loại tài nguyên Rj là hình chữ nhật. Vì loại tài nguyên Rj có thể có nhiều hơn một phiên bản, chúng ta hiển thị mỗi phiên bản là một chấm nằm trong hình vuông. Chú ý rằng một cung yêu cầu trỏ tới chỉ một hình vuông Rj (tới đường viền), trái lại một cung ấn định cũng phải trỏ tới một trong các dấu chấm trong hình vuông(vào trong viền).
- Giải thích:
Hình 1:
Các tập P, R, và E:
P = {P1, P2, P3}
R = {R1, R2, R3, R4}
E = {P1→R1, P2 →R3, R1 →P2, R2→P2, R3→P3}
Tiến trình P1 đang giữ một phiên bản của loại tài nguyên R2 và yêu cầu được cấp phát 1 phiên bản của loại tài nguyên R1. Tiến trình P2 đang giữ 1 phiên bản của loại tài nguyên R1 và 1 phiên bản của R2 và yêu cầu được được tài nguyên R3 cấp cho 1 phiên bản của nó. Tiến trình P3 đang giữ 1 phiên bản của tài nguyên R3. Còn lại tài nguyên R4 với các phiên bản của nó vẫn chưa có tiến trình nào xin được cấp phát. Từ hình vẽ Đồ thị cấp phát tài nguyên cho thấy không tồn tại chu trình cũng như Deadlock.
Hình 2:
Các tập P, R tương tự hình 1, tập E = {P1 → R1, R1 → P2, P2 → R3, R3 → P3, P3 → R2, R2 → P1, R2→P2}
Tiến trình P1 đang giữ một phiên bản của loại tài nguyên R2 và yêu cầu được cấp phát 1 phiên bản của loại tài nguyên R1. Tiến trình P2 đang giữ 1 phiên bản của loại tài nguyên R1 và 1 phiên bản của R2 và yêu cầu được được tài nguyên R3 cấp cho 1 phiên bản của nó. Tiến trình P3 đang giữ 1 phiên bản của tài nguyên R3 và yêu cầu cấp phát 1 phiên bản của tài nguyên R2. 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).
Hình 3:
Các tập P, R, và E:
P = {P1, P2, P3, P4}
R = {R1, R2}
E = {P1 → R1, R1 → P2 , R1 → P3, P3 → R2, R2 → P1, R2→P4}
Tiến trình P1 đang giữ một phiên bản của loại tài nguyên R2 và yêu cầu được cấp phát 1 phiên bản của loại tài nguyên R1. Tiến trình P2 đang giữ 1 phiên bản của loại tài nguyên R1. Tiến trình P3 đang giữ 1 phiên bản của tài nguyên R1 và yêu cầu cấp phát 1 phiên bản của tài nguyên R2. Tiến trình P4 đang giữ 1 phiên bản của tài nguyên R2. Từ hình chúng ta thấy xảy ra 1 chu trình P1 → R1 → P3 → R2 → P1 nhưng không có deadlock vì tiến trình P4 có thể trả lại phiên bản của loại tài nguyên R2. Tài nguyên đó có thể được cấp phát tới P3 sau đó, chu trình sẽ không còn.
"Học xong, Mình hiểu như thế nên trả lời câu hỏi này không biết có đúng không? Nếu có chỗ nào sai hay thiếu, các bạn góp ý giúp mình sửa lại, bổ sung thêm nha để hiểu thì mới nhớ mà ôn tập tốt hơn. Chuẩn bị hành trang cho kỳ thi sắp tới. Cám ơn các bạn nhiều ! Thầy nói bài này cũng quan trọng lắm, mà thật là vậy. giúp mình với nhé ^^ "
Được sửa bởi LuongThiXuanYen (102C) ngày 6/5/2011, 03:13; sửa lần 2.
LuongThiXuanYen (102C)- Tổng số bài gửi : 39
Join date : 16/02/2011
Re:
trandinhnghia đã viết: Trình bày thứ tự sử dụng tài nguyên của tiến trình.
Giải:
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ện I/O, in ra giấy, ...).
3. Trả lại (Release): Trả tài nguyên cho HĐH quản lý.
Bạn ơi cho mình hỏi 1 tí, mình nhớ là thầy đọc các câu hỏi trên lớp như vầy mà:
Câu 3: Khái niệm đồ thị cấp phát tài nguyên.
Câu 4: Khái niệm trạng thái an toàn và giải pháp tránh deadlock.
Câu 5: Thuật giải tránh deadlock dùng Rag
Câu 6: Thuật giải nhà băng - Banker's Algorithm.
Còn câu 3 này là ???
Được sửa bởi LuongThiXuanYen (102C) ngày 6/5/2011, 03:22; sửa lần 1.
LuongThiXuanYen (102C)- Tổng số bài gửi : 39
Join date : 16/02/2011
Re: Câu hỏi chương 8
LuongThiXuanYen (102C) đã viết:Câu 3: Khái niệm đồ thị cấp phát tài nguyên. Trình bày cách vẽ và giải thích đồ thị cấp phát tài nguyên cho trước.
- Đồ thị cấp phát tài nguyên (Resource allocation graph-RAG) là đồ thị có hướng với tập nút V và tập cung E.
+ Tập nút V gồm 2 loại:
P ={P1, P2, ..., Pn} tập hợp các tiến trình đang vận hành trong hệ thống.
R ={R1, R2, ..., Rm} tất cả các tài nguyên trong hệ thống. Mỗi loại Rj có từ 1 đến nhiều
phiên bản. VD: máy in có 3 phiên bản, ...
+Tập cung E bao gồm:
Cung yêu cầu (Request edge): có hướng từ Pi -> Rj, P1 yêu cầu 1 phiên bản tài nguyên Rj.
Cung ấn định (Assignment edge): có hướng từ Rj->Pi, 1 phiên bản tài nguyên Rj được cấp
phát cho Pi.
Đồ thị cấp phát tài nguyên gồm có: chu trình và không có chu trình.
o Không có chu trình: không tồn tại Deadlock
o Có chu trình: có hoặc không có Deadlock
.Có Deadlock khi mỗi tài nguyên trên chu trình chỉ có duy nhất 1 phiên bản.
.Có thể không có Deadlock khi tài nguyên thuộc chu trình có nhiều phiên bản.
- Cách vẽ:
Hiển thị mỗi tiến trình Pi là một hình tròn, và mỗi loại tài nguyên Rj là hình chữ nhật. Vì loại tài nguyên Rj có thể có nhiều hơn một phiên bản, chúng ta hiển thị mỗi phiên bản là một chấm nằm trong hình vuông. Chú ý rằng một cung yêu cầu trỏ tới chỉ một hình vuông Rj (tới đường viền), trái lại một cung ấn định cũng phải trỏ tới một trong các dấu chấm trong hình vuông(vào trong viền).
- Giải thích:
Hình 1:
Các tập P, R, và E:
P = {P1, P2, P3}
R = {R1, R2, R3, R4}
E = {P1→R1, P2 →R3, R1 →P2, R2→P2, R3→P3}
Tiến trình P1 đang giữ một phiên bản của loại tài nguyên R2 và yêu cầu được cấp phát 1 phiên bản của loại tài nguyên R1. Tiến trình P2 đang giữ 1 phiên bản của loại tài nguyên R1 và 1 phiên bản của R2 và yêu cầu được được tài nguyên R3 cấp cho 1 phiên bản của nó. Tiến trình P3 đang giữ 1 phiên bản của tài nguyên R3. Còn lại tài nguyên R4 với các phiên bản của nó vẫn chưa có tiến trình nào xin được cấp phát. Từ hình vẽ Đồ thị cấp phát tài nguyên cho thấy không tồn tại chu trình cũng như Deadlock.
Hình 2:
Các tập P, R tương tự hình 1, tập E = {P1 → R1, R1 → P2, P2 → R3, R3 → P3, P3 → R2, R2 → P1, R2→P2}
Tiến trình P1 đang giữ một phiên bản của loại tài nguyên R2 và yêu cầu được cấp phát 1 phiên bản của loại tài nguyên R1. Tiến trình P2 đang giữ 1 phiên bản của loại tài nguyên R1 và 1 phiên bản của R2 và yêu cầu được được tài nguyên R3 cấp cho 1 phiên bản của nó. Tiến trình P3 đang giữ 1 phiên bản của tài nguyên R3 và yêu cầu cấp phát 1 phiên bản của tài nguyên R2. 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).
Hình 3:
Các tập P, R, và E:
P = {P1, P2, P3, P4}
R = {R1, R2}
E = {P1 → R1, R1 → P2 , R1 → P3, P3 → R2, R2 → P1, R2→P4}
Tiến trình P1 đang giữ một phiên bản của loại tài nguyên R2 và yêu cầu được cấp phát 1 phiên bản của loại tài nguyên R1. Tiến trình P2 đang giữ 1 phiên bản của loại tài nguyên R1. Tiến trình P3 đang giữ 1 phiên bản của tài nguyên R1 và yêu cầu cấp phát 1 phiên bản của tài nguyên R2. Tiến trình P4 đang giữ 1 phiên bản của tài nguyên R2. Từ hình chúng ta thấy xảy ra 1 chu trình P1 → R1 → P3 → R2 → P1 nhưng không có deadlock vì tiến trình P4 có thể trả lại phiên bản của loại tài nguyên R2. Tài nguyên đó có thể được cấp phát tới P3 sau đó, chu trình sẽ không còn.
"Học xong, Mình hiểu như thế nên trả lời câu hỏi này không biết có đúng không? Nếu có chỗ nào sai hay thiếu, các bạn góp ý giúp mình sửa lại, bổ sung thêm nha để hiểu thì mới nhớ mà ôn tập tốt hơn. Chuẩn bị hành trang cho kỳ thi sắp tới. Cám ơn các bạn nhiều ! Thầy nói bài này cũng quan trọng lắm, mà thật là vậy. giúp mình với nhé ^^ "
bạn trả lời rất đầy đủ, tks bạn nhé. Câu 3 của bạn mới đúng, chắc bạn trandinhnghia bị nhầm
NguyenQuocHien(102C)- Tổng số bài gửi : 33
Join date : 23/02/2011
Re: Câu hỏi chương 8
TruongThiMinhNgoc57(102C) đã viết:Các bạn cùng mình soạn câu hỏi chương 8 nha.
Câu 2: Trình bày 4 điều kiện cần dẫn đến deadock
-Loại trừ lẫn nhau (Mutual Exclusion): Ít nhất có 1 tài nguyên có tính 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ó.
Chỗ này bạn bị lộn rồi, phải là "í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ó." vì nếu các tài nguyên đều chia sẻ thì đã không bị deadlock, và đó là 1 trong những cách xử trí để ngăn chặn deadlock không khả thi "Với Mutual Exclusion: đảm bảo tài nguyên nào cũng dùng chung được cùng 1 lúc bởi nhiều tiến trình".
và câu 2 còn có phần chú ý: 4 điều kiện cần và đủ dẫn đến deadlock không độc lập với nhau, ví dụ đk4 kéo theo đk2
"
vongocminhhoang (102C)- Tổng số bài gửi : 70
Join date : 17/02/2011
Re: Câu hỏi chương 8
Thanks bạn nhiều về tài liệu này, chương này mình không học được vì bị trùng giờ học, nhưng nhờ bạn soạn lại mình đọc và nghiền ngẩm củng hiểu đc chút đỉnh .LuongThiXuanYen (102C) đã viết:Câu 3: Khái niệm đồ thị cấp phát tài nguyên. Trình bày cách vẽ và giải thích đồ thị cấp phát tài nguyên cho trước.
- Đồ thị cấp phát tài nguyên (Resource allocation graph-RAG) là đồ thị có hướng với tập nút V và tập cung E.
+ Tập nút V gồm 2 loại:
P ={P1, P2, ..., Pn} tập hợp các tiến trình đang vận hành trong hệ thống.
R ={R1, R2, ..., Rm} tất cả các tài nguyên trong hệ thống. Mỗi loại Rj có từ 1 đến nhiều
phiên bản. VD: máy in có 3 phiên bản, ...
+Tập cung E bao gồm:
Cung yêu cầu (Request edge): có hướng từ Pi -> Rj, P1 yêu cầu 1 phiên bản tài nguyên Rj.
Cung ấn định (Assignment edge): có hướng từ Rj->Pi, 1 phiên bản tài nguyên Rj được cấp
phát cho Pi.
Đồ thị cấp phát tài nguyên gồm có: chu trình và không có chu trình.
o Không có chu trình: không tồn tại Deadlock
o Có chu trình: có hoặc không có Deadlock
.Có Deadlock khi mỗi tài nguyên trên chu trình chỉ có duy nhất 1 phiên bản.
.Có thể không có Deadlock khi tài nguyên thuộc chu trình có nhiều phiên bản.
- Cách vẽ:
Hiển thị mỗi tiến trình Pi là một hình tròn, và mỗi loại tài nguyên Rj là hình chữ nhật. Vì loại tài nguyên Rj có thể có nhiều hơn một phiên bản, chúng ta hiển thị mỗi phiên bản là một chấm nằm trong hình vuông. Chú ý rằng một cung yêu cầu trỏ tới chỉ một hình vuông Rj (tới đường viền), trái lại một cung ấn định cũng phải trỏ tới một trong các dấu chấm trong hình vuông(vào trong viền).
- Giải thích:
Hình 1:
Các tập P, R, và E:
P = {P1, P2, P3}
R = {R1, R2, R3, R4}
E = {P1→R1, P2 →R3, R1 →P2, R2→P2, R3→P3}
Tiến trình P1 đang giữ một phiên bản của loại tài nguyên R2 và yêu cầu được cấp phát 1 phiên bản của loại tài nguyên R1. Tiến trình P2 đang giữ 1 phiên bản của loại tài nguyên R1 và 1 phiên bản của R2 và yêu cầu được được tài nguyên R3 cấp cho 1 phiên bản của nó. Tiến trình P3 đang giữ 1 phiên bản của tài nguyên R3. Còn lại tài nguyên R4 với các phiên bản của nó vẫn chưa có tiến trình nào xin được cấp phát. Từ hình vẽ Đồ thị cấp phát tài nguyên cho thấy không tồn tại chu trình cũng như Deadlock.
Hình 2:
Các tập P, R tương tự hình 1, tập E = {P1 → R1, R1 → P2, P2 → R3, R3 → P3, P3 → R2, R2 → P1, R2→P2}
Tiến trình P1 đang giữ một phiên bản của loại tài nguyên R2 và yêu cầu được cấp phát 1 phiên bản của loại tài nguyên R1. Tiến trình P2 đang giữ 1 phiên bản của loại tài nguyên R1 và 1 phiên bản của R2 và yêu cầu được được tài nguyên R3 cấp cho 1 phiên bản của nó. Tiến trình P3 đang giữ 1 phiên bản của tài nguyên R3 và yêu cầu cấp phát 1 phiên bản của tài nguyên R2. 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).
Hình 3:
Các tập P, R, và E:
P = {P1, P2, P3, P4}
R = {R1, R2}
E = {P1 → R1, R1 → P2 , R1 → P3, P3 → R2, R2 → P1, R2→P4}
Tiến trình P1 đang giữ một phiên bản của loại tài nguyên R2 và yêu cầu được cấp phát 1 phiên bản của loại tài nguyên R1. Tiến trình P2 đang giữ 1 phiên bản của loại tài nguyên R1. Tiến trình P3 đang giữ 1 phiên bản của tài nguyên R1 và yêu cầu cấp phát 1 phiên bản của tài nguyên R2. Tiến trình P4 đang giữ 1 phiên bản của tài nguyên R2. Từ hình chúng ta thấy xảy ra 1 chu trình P1 → R1 → P3 → R2 → P1 nhưng không có deadlock vì tiến trình P4 có thể trả lại phiên bản của loại tài nguyên R2. Tài nguyên đó có thể được cấp phát tới P3 sau đó, chu trình sẽ không còn.
"Học xong, Mình hiểu như thế nên trả lời câu hỏi này không biết có đúng không? Nếu có chỗ nào sai hay thiếu, các bạn góp ý giúp mình sửa lại, bổ sung thêm nha để hiểu thì mới nhớ mà ôn tập tốt hơn. Chuẩn bị hành trang cho kỳ thi sắp tới. Cám ơn các bạn nhiều ! Thầy nói bài này cũng quan trọng lắm, mà thật là vậy. giúp mình với nhé ^^ "
LeNguyenHuuToan-I92c- Tổng số bài gửi : 24
Join date : 13/10/2010
Câu 3
LuongThiXuanYen (102C) đã viết:Câu 3: Khái niệm đồ thị cấp phát tài nguyên. Trình bày cách vẽ và giải thích đồ thị cấp phát tài nguyên cho trước.
- Đồ thị cấp phát tài nguyên (Resource allocation graph-RAG) là đồ thị có hướng với tập nút V và tập cung E.
+ Tập nút V gồm 2 loại:
P ={P1, P2, ..., Pn} tập hợp các tiến trình đang vận hành trong hệ thống.
R ={R1, R2, ..., Rm} tất cả các tài nguyên trong hệ thống. Mỗi loại Rj có từ 1 đến nhiều
phiên bản. VD: máy in có 3 phiên bản, ...
+Tập cung E bao gồm:
Cung yêu cầu (Request edge): có hướng từ Pi -> Rj, P1 yêu cầu 1 phiên bản tài nguyên Rj.
Cung ấn định (Assignment edge): có hướng từ Rj->Pi, 1 phiên bản tài nguyên Rj được cấp
phát cho Pi.
Đồ thị cấp phát tài nguyên gồm có: chu trình và không có chu trình.
o Không có chu trình: không tồn tại Deadlock
o Có chu trình: có hoặc không có Deadlock
.Có Deadlock khi mỗi tài nguyên trên chu trình chỉ có duy nhất 1 phiên bản.
.Có thể không có Deadlock khi tài nguyên thuộc chu trình có nhiều phiên bản.
- Cách vẽ:
Hiển thị mỗi tiến trình Pi là một hình tròn, và mỗi loại tài nguyên Rj là hình chữ nhật. Vì loại tài nguyên Rj có thể có nhiều hơn một phiên bản, chúng ta hiển thị mỗi phiên bản là một chấm nằm trong hình vuông. Chú ý rằng một cung yêu cầu trỏ tới chỉ một hình vuông Rj (tới đường viền), trái lại một cung ấn định cũng phải trỏ tới một trong các dấu chấm trong hình vuông(vào trong viền).
- Giải thích:
Hình 1:
Các tập P, R, và E:
P = {P1, P2, P3}
R = {R1, R2, R3, R4}
E = {P1→R1, P2 →R3, R1 →P2, R2→P2, R3→P3}
Tiến trình P1 đang giữ một phiên bản của loại tài nguyên R2 và yêu cầu được cấp phát 1 phiên bản của loại tài nguyên R1. Tiến trình P2 đang giữ 1 phiên bản của loại tài nguyên R1 và 1 phiên bản của R2 và yêu cầu được được tài nguyên R3 cấp cho 1 phiên bản của nó. Tiến trình P3 đang giữ 1 phiên bản của tài nguyên R3. Còn lại tài nguyên R4 với các phiên bản của nó vẫn chưa có tiến trình nào xin được cấp phát. Từ hình vẽ Đồ thị cấp phát tài nguyên cho thấy không tồn tại chu trình cũng như Deadlock.
Hình 2:
Các tập P, R tương tự hình 1, tập E = {P1 → R1, R1 → P2, P2 → R3, R3 → P3, P3 → R2, R2 → P1, R2→P2}
Tiến trình P1 đang giữ một phiên bản của loại tài nguyên R2 và yêu cầu được cấp phát 1 phiên bản của loại tài nguyên R1. Tiến trình P2 đang giữ 1 phiên bản của loại tài nguyên R1 và 1 phiên bản của R2 và yêu cầu được được tài nguyên R3 cấp cho 1 phiên bản của nó. Tiến trình P3 đang giữ 1 phiên bản của tài nguyên R3 và yêu cầu cấp phát 1 phiên bản của tài nguyên R2. 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).
Hình 3:
Các tập P, R, và E:
P = {P1, P2, P3, P4}
R = {R1, R2}
E = {P1 → R1, R1 → P2 , R1 → P3, P3 → R2, R2 → P1, R2→P4}
Tiến trình P1 đang giữ một phiên bản của loại tài nguyên R2 và yêu cầu được cấp phát 1 phiên bản của loại tài nguyên R1. Tiến trình P2 đang giữ 1 phiên bản của loại tài nguyên R1. Tiến trình P3 đang giữ 1 phiên bản của tài nguyên R1 và yêu cầu cấp phát 1 phiên bản của tài nguyên R2. Tiến trình P4 đang giữ 1 phiên bản của tài nguyên R2. Từ hình chúng ta thấy xảy ra 1 chu trình P1 → R1 → P3 → R2 → P1 nhưng không có deadlock vì tiến trình P4 có thể trả lại phiên bản của loại tài nguyên R2. Tài nguyên đó có thể được cấp phát tới P3 sau đó, chu trình sẽ không còn.
"Học xong, Mình hiểu như thế nên trả lời câu hỏi này không biết có đúng không? Nếu có chỗ nào sai hay thiếu, các bạn góp ý giúp mình sửa lại, bổ sung thêm nha để hiểu thì mới nhớ mà ôn tập tốt hơn. Chuẩn bị hành trang cho kỳ thi sắp tới. Cám ơn các bạn nhiều ! Thầy nói bài này cũng quan trọng lắm, mà thật là vậy. giúp mình với nhé ^^ "
Câu này bạn làm đầy đủ. Thanks bạn.
trantanphat102C- Tổng số bài gửi : 29
Join date : 13/03/2011
Re: Câu hỏi chương 8
Các bạn cùng góp ý nên đã có được 1 tài liệu chương 8 hoàn chỉnh. GIờ là lo học nữa thui. Cả nhà cùng học nhé.
nguyenthingoan (i92c)- Tổng số bài gửi : 39
Join date : 16/02/2011
Re: Câu hỏi chương 8
Cám ơn sự nhiệt tình của các bạn, tối qua thầy mới dạy xong có 1 số câu mình không biết làm sao, hên là có các bạn giúp đỡ
NguyenAnhNgoc56 (102C)- Tổng số bài gửi : 41
Join date : 17/02/2011
Re: Câu hỏi chương 8
Tối qua câu 4 của thầy là Khái niệm an toàn và giải pháp trách deadlock. Bạn trandinhnghia có nhớ lộn ở đâu khôngtrandinhnghia đã viết: Trình bày các phương thức xử trí Deadlock.
Giải:
- Sử dụng quy tắc Ngăn chặn (Prevention) hoặc Tránh (Avoidance) để Deadlock không bao giờ xảy ra.
- Cho phép hệ thống bị Deadlock, sau đó Xác định (Detection) và tìm cách Khắc phục (Recover).
- 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).
NguyenAnhNgoc56 (102C)- Tổng số bài gửi : 41
Join date : 17/02/2011
Câu 5
Câu 5: Giải thích thuật giải trách deadlock dùng RAG:
- 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.
Sau đó P1 yêu cầu R1 được cấp R1,P2 yêu cầu R1.
Trạng thái không an toàn khi P2 yêu cầu R2 và được cấp.
Xảy ra hiên tượng deadlock khi P1 yêu cầu R1 tạo ra 1 chu trình.
- 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.
Sau đó P1 yêu cầu R1 được cấp R1,P2 yêu cầu R1.
Trạng thái không an toàn khi P2 yêu cầu R2 và được cấp.
Xảy ra hiên tượng deadlock khi P1 yêu cầu R1 tạo ra 1 chu trình.
trantanphat102C- Tổng số bài gửi : 29
Join date : 13/03/2011
Re: Câu hỏi chương 8
Cám ơn sự đóng góp nhiệt tình của các bạn, nhờ vậy mà mình hiểu rõ hơn về Chương 8, Chương 8 là bài quan trọng và rất hay, mình cảm thấy thích môn Hệ Điều Hành hơn.
Phải cố gắng học bài để thi tốt mới được.
Phải cố gắng học bài để thi tốt mới được.
NguyenHoangBaoNgan(102C)- Tổng số bài gửi : 48
Join date : 19/02/2011
Re: Câu hỏi chương 8
cám ơn bạn! Câu trả lời của bạn rất đầy đủ.LuongThiXuanYen (102C) đã viết:Câu 3: Khái niệm đồ thị cấp phát tài nguyên. Trình bày cách vẽ và giải thích đồ thị cấp phát tài nguyên cho trước.
- Đồ thị cấp phát tài nguyên (Resource allocation graph-RAG) là đồ thị có hướng với tập nút V và tập cung E.
+ Tập nút V gồm 2 loại:
P ={P1, P2, ..., Pn} tập hợp các tiến trình đang vận hành trong hệ thống.
R ={R1, R2, ..., Rm} tất cả các tài nguyên trong hệ thống. Mỗi loại Rj có từ 1 đến nhiều
phiên bản. VD: máy in có 3 phiên bản, ...
+Tập cung E bao gồm:
Cung yêu cầu (Request edge): có hướng từ Pi -> Rj, P1 yêu cầu 1 phiên bản tài nguyên Rj.
Cung ấn định (Assignment edge): có hướng từ Rj->Pi, 1 phiên bản tài nguyên Rj được cấp
phát cho Pi.
Đồ thị cấp phát tài nguyên gồm có: chu trình và không có chu trình.
o Không có chu trình: không tồn tại Deadlock
o Có chu trình: có hoặc không có Deadlock
.Có Deadlock khi mỗi tài nguyên trên chu trình chỉ có duy nhất 1 phiên bản.
.Có thể không có Deadlock khi tài nguyên thuộc chu trình có nhiều phiên bản.
- Cách vẽ:
Hiển thị mỗi tiến trình Pi là một hình tròn, và mỗi loại tài nguyên Rj là hình chữ nhật. Vì loại tài nguyên Rj có thể có nhiều hơn một phiên bản, chúng ta hiển thị mỗi phiên bản là một chấm nằm trong hình vuông. Chú ý rằng một cung yêu cầu trỏ tới chỉ một hình vuông Rj (tới đường viền), trái lại một cung ấn định cũng phải trỏ tới một trong các dấu chấm trong hình vuông(vào trong viền).
- Giải thích:
Hình 1:
Các tập P, R, và E:
P = {P1, P2, P3}
R = {R1, R2, R3, R4}
E = {P1→R1, P2 →R3, R1 →P2, R2→P2, R3→P3}
Tiến trình P1 đang giữ một phiên bản của loại tài nguyên R2 và yêu cầu được cấp phát 1 phiên bản của loại tài nguyên R1. Tiến trình P2 đang giữ 1 phiên bản của loại tài nguyên R1 và 1 phiên bản của R2 và yêu cầu được được tài nguyên R3 cấp cho 1 phiên bản của nó. Tiến trình P3 đang giữ 1 phiên bản của tài nguyên R3. Còn lại tài nguyên R4 với các phiên bản của nó vẫn chưa có tiến trình nào xin được cấp phát. Từ hình vẽ Đồ thị cấp phát tài nguyên cho thấy không tồn tại chu trình cũng như Deadlock.
Hình 2:
Các tập P, R tương tự hình 1, tập E = {P1 → R1, R1 → P2, P2 → R3, R3 → P3, P3 → R2, R2 → P1, R2→P2}
Tiến trình P1 đang giữ một phiên bản của loại tài nguyên R2 và yêu cầu được cấp phát 1 phiên bản của loại tài nguyên R1. Tiến trình P2 đang giữ 1 phiên bản của loại tài nguyên R1 và 1 phiên bản của R2 và yêu cầu được được tài nguyên R3 cấp cho 1 phiên bản của nó. Tiến trình P3 đang giữ 1 phiên bản của tài nguyên R3 và yêu cầu cấp phát 1 phiên bản của tài nguyên R2. 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).
Hình 3:
Các tập P, R, và E:
P = {P1, P2, P3, P4}
R = {R1, R2}
E = {P1 → R1, R1 → P2 , R1 → P3, P3 → R2, R2 → P1, R2→P4}
Tiến trình P1 đang giữ một phiên bản của loại tài nguyên R2 và yêu cầu được cấp phát 1 phiên bản của loại tài nguyên R1. Tiến trình P2 đang giữ 1 phiên bản của loại tài nguyên R1. Tiến trình P3 đang giữ 1 phiên bản của tài nguyên R1 và yêu cầu cấp phát 1 phiên bản của tài nguyên R2. Tiến trình P4 đang giữ 1 phiên bản của tài nguyên R2. Từ hình chúng ta thấy xảy ra 1 chu trình P1 → R1 → P3 → R2 → P1 nhưng không có deadlock vì tiến trình P4 có thể trả lại phiên bản của loại tài nguyên R2. Tài nguyên đó có thể được cấp phát tới P3 sau đó, chu trình sẽ không còn.
"Học xong, Mình hiểu như thế nên trả lời câu hỏi này không biết có đúng không? Nếu có chỗ nào sai hay thiếu, các bạn góp ý giúp mình sửa lại, bổ sung thêm nha để hiểu thì mới nhớ mà ôn tập tốt hơn. Chuẩn bị hành trang cho kỳ thi sắp tới. Cám ơn các bạn nhiều ! Thầy nói bài này cũng quan trọng lắm, mà thật là vậy. giúp mình với nhé ^^ "
phamanhthu94(102C)- Tổng số bài gửi : 26
Join date : 18/02/2011
Re: Câu hỏi chương 8
vongocminhhoang (102C) đã viết:N vừa sửa lại. tks H nha! ^^TruongThiMinhNgoc57(102C) đã viết:Các bạn cùng mình soạn câu hỏi chương 8 nha.
Câu 2: Trình bày 4 điều kiện cần dẫn đến deadock
-Loại trừ lẫn nhau (Mutual Exclusion): Ít nhất có 1 tài nguyên có tính 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ó.
Chỗ này bạn bị lộn rồi, phải là "í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ó." vì nếu các tài nguyên đều chia sẻ thì đã không bị deadlock, và đó là 1 trong những cách xử trí để ngăn chặn deadlock không khả thi "Với Mutual Exclusion: đảm bảo tài nguyên nào cũng dùng chung được cùng 1 lúc bởi nhiều tiến trình".
và câu 2 còn có phần chú ý: 4 điều kiện cần và đủ dẫn đến deadlock không độc lập với nhau, ví dụ đk4 kéo theo đk2
"
TruongThiMinhNgoc57(102C)- Tổng số bài gửi : 90
Join date : 17/02/2011
Đến từ : TPHCM
Giải thích đồ thị cấp phát tài nguyên
Sao giải thích dài quá vậy?
Thi chỉ 1 tờ giấy thôi.
Rất tiếc giờ bùn ngủ ròi, mai tính tiếp...
Thông cảm chút nha!
Thi chỉ 1 tờ giấy thôi.
Rất tiếc giờ bùn ngủ ròi, mai tính tiếp...
Thông cảm chút nha!
levantrung102 (102C)- Tổng số bài gửi : 39
Join date : 27/02/2011
Age : 37
Đến từ : Hoai Nhon - Binh Dinh
Re: Câu hỏi chương 8
Cám ơn bạn.trantanphat102C đã viết:Câu 5: Giải thích thuật giải trách deadlock dùng RAG:
- 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.
Sau đó P1 yêu cầu R1 được cấp R1,P2 yêu cầu R1.
Trạng thái không an toàn khi P2 yêu cầu R2 và được cấp.
Xảy ra hiên tượng deadlock khi P1 yêu cầu R1 tạo ra 1 chu trình.
nguyenvandung(i91C)- Tổng số bài gửi : 43
Join date : 06/05/2010
CÂU 4:KHÁI NIỆM TRẠNG THÁI AN TOÀN VÀ GIẢI PHÁP TRÁNH DEADLOCKS
Câu 5: Trình bày 4 cách ngăn chặn Deadlock.
Trình bày 4 cách ngăn chặn Deadlock.
Giải:
Để 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.
Câu 6:Thế nào là trạng thái an toàn của hệ thống?
Thế nào là trạng thái an toàn của hệ thống?
Giải:
- 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
-Hình như câu 5 và câu 6 của bạn Trần Đại Nghĩa nếu gọp lại thì được câu 4(khái niệm trạng thái an toàn và giải pháp tránh Deadlocks )trong kho câu hỏi chuơng 8 của thấy đó các bạn.Thank các bạn đã chia sẽ.Chúc lớp của chúng ta đạt được kết quả tốt.
Trình bày 4 cách ngăn chặn Deadlock.
Giải:
Để 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.
Câu 6:Thế nào là trạng thái an toàn của hệ thống?
Thế nào là trạng thái an toàn của hệ thống?
Giải:
- 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
-Hình như câu 5 và câu 6 của bạn Trần Đại Nghĩa nếu gọp lại thì được câu 4(khái niệm trạng thái an toàn và giải pháp tránh Deadlocks )trong kho câu hỏi chuơng 8 của thấy đó các bạn.Thank các bạn đã chia sẽ.Chúc lớp của chúng ta đạt được kết quả tốt.
TruongVanSon(102C)- Tổng số bài gửi : 31
Join date : 24/02/2011
Re: Câu hỏi chương 8
Minh co chut thac mac nhu sau:
Cau 4: Khai niem trang thai an toan va giai phap tranh deadlock?
Minh thay cau hoi la bien phap tranh ma sao cac ban deu trinh bay phan bien phap ngan chan deadlock? Hay la minh hieu sai cau hoi
//Bo go~ dang bi dien, minh ko go~ TViet duoc, cac ban chiu kho doc du`m
Cau 4: Khai niem trang thai an toan va giai phap tranh deadlock?
Minh thay cau hoi la bien phap tranh ma sao cac ban deu trinh bay phan bien phap ngan chan deadlock? Hay la minh hieu sai cau hoi
//Bo go~ dang bi dien, minh ko go~ TViet duoc, cac ban chiu kho doc du`m
letuananh (102C)- Tổng số bài gửi : 76
Join date : 17/02/2011
câu 4 chương 8
Mình đồng ý với ý kiến của bạn letuananh, hình như lớp mình có 1 chút nhầm lẫn. Trong phần 8.3 Các phương thức xử trí DeadLock Thầy có ghi rõ là: Sử dụng quy tắc Ngăn chặn ( Prevention ) hoặc Tránh ( Avoidance ) để Deadlocks không bao giờ xảy ra.letuananh (102C) đã viết:Minh co chut thac mac nhu sau:
Cau 4: Khai niem trang thai an toan va giai phap tranh deadlock?
Minh thay cau hoi la bien phap tranh ma sao cac ban deu trinh bay phan bien phap ngan chan deadlock? Hay la minh hieu sai cau hoi
//Bo go~ dang bi dien, minh ko go~ TViet duoc, cac ban chiu kho doc du`m
Theo My, nếu cấp phát tài nguyên theo chuỗi an toàn thì sẽ không dẫn đến deadlock. Đó là lý do vì sao chúng ta có 2 thuật giải RAG ( áp dụng cho trường hợp loại tài nguyên chỉ có 1 phiên bản ) và Banker’s Algorithm ( áp dụng cho trường hợp loại tài nguyên chỉ có n phiên bản )
nguyentramy (102c)- Tổng số bài gửi : 22
Join date : 18/02/2011
Similar topics
» Thảo luận Bài 1
» Chương 7: Thiết kế chương trình
» Tại sao phải làm lại những chương trình chat trong khi đã có rất nhiều chương trình chat miễn phí???
» Thảo luận Bài 1
» Thảo luận Bài 1
» Chương 7: Thiết kế chương trình
» Tại sao phải làm lại những chương trình chat trong khi đã có rất nhiều chương trình chat miễn phí???
» Thảo luận Bài 1
» Thảo luận Bài 1
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