Tin học
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.

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 1 trong tổng số 5 trang 1, 2, 3, 4, 5  Next

Go down

Thảo luận Bài 8 Empty Thảo luận Bài 8

Bài gửi  Admin 17/9/2012, 08:00

Thảo luận những vấn đề liên quan đến Bài 8.

Admin
Admin

Tổng số bài gửi : 294
Join date : 18/02/2009

https://hedieuhanh.forumvi.com

Về Đầu Trang Go down

Thảo luận Bài 8 Empty Re: Thảo luận Bài 8

Bài gửi  phamphihung55 17/9/2012, 10:51

Định nghĩa Deadlock & Điều kiện cần để xảy ra deadlock

Đị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
=>Trường hợp này gọi là deadlock(khóa chết).

Điều kiện cần để xảy ra deadlock :
Bốn điều kiện cần (necessary condition) để xảy ra
deadlock
1. Loại trừ tương hổ (Mutual exclusion): ít nhất một
tài nguyển được giữ trong chế độ không chia sẻ
2. Giữ và chờ cấp thêm tài nguyên (Hold and wait):
một process đang giữ ít nhất một tài nguyên và
đợi thêm tài nguyên do quá trình khác đang giữ
3. Không có ưu tiên (No preemption): tài nguyên không thể bị lấy lại,mà chỉ có thể được trả lại từ process đang giử tài nguyên đó khi nó muốn.
4. Chu trình (Circular wait): tồn tại một chu trình của các yêu cầu tài nguyên và tài nguyên đã được cấp phát.
phamphihung55
phamphihung55

Tổng số bài gửi : 83
Join date : 16/02/2012
Age : 33

Về Đầu Trang Go down

Thảo luận Bài 8 Empty Re: Thảo luận Bài 8

Bài gửi  phamphihung55 17/9/2012, 10:51

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.
phamphihung55
phamphihung55

Tổng số bài gửi : 83
Join date : 16/02/2012
Age : 33

Về Đầu Trang Go down

Thảo luận Bài 8 Empty Định nghĩa Deadlock

Bài gửi  huynhquanghao_I92C 17/9/2012, 11:33


- 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

huynhquanghao_I92C

Tổng số bài gửi : 21
Join date : 15/11/2010

Về Đầu Trang Go down

Thảo luận Bài 8 Empty 4 điều kiện cần dẫn đến deadlock

Bài gửi  vuquoctoan (I13A) 17/9/2012, 12:23

- 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.

vuquoctoan (I13A)

Tổng số bài gửi : 12
Join date : 17/07/2012

Về Đầu Trang Go down

Thảo luận Bài 8 Empty CÁC GIẢI PHÁP XỬ LÝ DEADLOCK

Bài gửi  LePhamTuanVu02 (113A) 17/9/2012, 14:25

1.Phát hiện và phục hồi từ deadlock:
Phát hiện deadlock:
  • Dùng các giải thuật phát hiện vòng chờ các process.
  • Do người quản trị hệ thống.


Phục hồi từ deadlock:
  • Kết thúc các process bị deadlock.
  • Kết thúc tất cả các process bị deadlock.
  • Lần lượt kết thúc các process bị deadlock cho đến khi hết deadlock.


Thông số chọn process để kết thúc:
  • Độ ưu tiên.
  • Thời gian đã thực thi.
  • Thời gian còn lại.
  • Số tài nguyên đã cấp phát.
  • Số tài nguyên đang chờ.
  • Lấy lại tài nguyên từ process.
  • Lần lượt lấy lại các tài nguyên đã cấp phát cho các process cho đến khi hết deadlock.
  • Phụ thuộc bản chất của tài nguyên.
  • Sử dụng công cụ của hệ điều hành.
  • Phục hồi các điểm kiểm tra.
  • Định kỳ tạo các điểm kiểm tra (checkpoint).
  • Lưu trạng thái hệ thống tại điểm kiểm tra.
  • Thực hiện lại (rollback) các process bị deadlock tại các điểm kiểm tra.
  • Lần lượt thực hiện lại các process bị deadlock tại các điểm kiểm tra cho đến khi hết deadlock.


2.Ngăn chặn deadlock: Loại bỏ các điều kiện dẫn đến deadlock.
Các điều kiện xem như không thể loại bỏ:

  • Loại trừ tương hỗ.
  • Không lấy lại tài nguyên từ process.


Loại bỏ điều kiện loại trừ tương hỗ:

  • 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.


Vd: chỉ 1 printer daemon dùng máy in.
Các process gởi yêu cầu cho printer daemon.

Loại bỏ điều kiện giữ và chờ tài nguyên:
Nguyên tắc: process không được giữ tài nguyên khi yêu cầu tài nguyên mới.
Process khai báo tài nguyên và được cấp phát 1 lần.
Nếu process yêu cầu tài nguyên và không được cấp phát thì phải trả các tài nguyên đang giữ.

Loại bỏ điều kiện không lấy lại tài nguyên:

  • Lấy lại tài nguyên từ process.
  • Không thể với tài nguyên như máy in.


Loại bỏ vòng chờ các process:

  • Có thể quy định số thứ tự tài nguyên.
  • Process chỉ được yêu cầu tài nguyên theo thứ tự tăng.
  • Giả sử có deadlock:
  • P1 giữ Ri, chờ Rj -> i < j.
  • P2 giữ Rj, chờ Rj -> j < i.



3.Tránh deadlock:
- Chấp nhận các điều kiện tạo deadlock.
- Theo dõi và tránh dẫn đến deadlock.

Hai hướng giải quyết:
1/Không tạo process mới nếu có thể dẫn đến deadlock:
- Process cần khai báo số lượng tài nguyên cần sử dụng.
- Không tạo process mới nếu số lượng tài nguyên hệ thống không đủ, có thể dẫn đến deadlock.

2/Không cấp phát thêm tài nguyên cho process:
- Liên quan đến việc sử dụng tài nguyên trong tương lai của các process.
- Định nghĩa trạng thái hệ thống với:
  • Vector E: tổng số các loại tài nguyên.
  • Vector A: số tài nguyên mỗi loại chưa dùng.
  • Ma trận C: số tài nguyên đã cấp phát cho các process.
  • Ma trận R: số lượng tài nguyên các process sẽ tiếp tục yêu cầu.

LePhamTuanVu02 (113A)

Tổng số bài gửi : 9
Join date : 19/07/2012

Về Đầu Trang Go down

Thảo luận Bài 8 Empty Trình bày bốn điều kiện cần để dẫn đến deadlock

Bài gửi  nguyenvanluc(113a) 17/9/2012, 15:08

-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 .
nguyenvanluc(113a)
nguyenvanluc(113a)

Tổng số bài gửi : 43
Join date : 18/07/2012
Age : 35
Đến từ : Bình Thuận

https://www.facebook.com/lucphanthiet

Về Đầu Trang Go down

Thảo luận Bài 8 Empty Khái niệm trạng thái an toàn và giải pháp tranh deadlock

Bài gửi  nguyenvanluc(113a) 17/9/2012, 15:09

• Thế 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.

nguyenvanluc(113a)
nguyenvanluc(113a)

Tổng số bài gửi : 43
Join date : 18/07/2012
Age : 35
Đến từ : Bình Thuận

https://www.facebook.com/lucphanthiet

Về Đầu Trang Go down

Thảo luận Bài 8 Empty Giải pháp ngăn Deadlock

Bài gửi  VuMinhTan (113A) 17/9/2012, 18:34

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.
VuMinhTan (113A)
VuMinhTan (113A)

Tổng số bài gửi : 29
Join date : 30/07/2012

Về Đầu Trang Go down

Thảo luận Bài 8 Empty 4 điều kiện cần dẫn đến deadlock và qua đó trình bày giải pháp ngăn chặn deadlock

Bài gửi  VuMinhTan (113A) 17/9/2012, 18:41

4 Điều cần :
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ải pháp ngăn chặn :

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.
VuMinhTan (113A)
VuMinhTan (113A)

Tổng số bài gửi : 29
Join date : 30/07/2012

Về Đầu Trang Go down

Thảo luận Bài 8 Empty Trình bày 4 cách ngăn chặn Deadlock.

Bài gửi  buidainghia(113A) 17/9/2012, 21:47

Để 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.

buidainghia(113A)

Tổng số bài gửi : 43
Join date : 20/07/2012
Age : 35

Về Đầu Trang Go down

Thảo luận Bài 8 Empty Điều kiện xuất hiện tắc nghẽn

Bài gửi  LeHuynhChiTam (113A) 17/9/2012, 21:48

Điều kiện xuất hiện tắc nghẽn :
1 . Có sử dụng tài nguyên không thể chia sẻ .
2. Sự chiếm giữ và yêu cầu tài nguyên thêm .
3. Không thu hồi tài nguyên từ tiến trình đã sử dụng ,
4. Tồn tại 1 chu kỳ trong đồ thị cấp phát tài nguyên .
5. Có 2 tiến trình chờ đợi lẫn nhau : tiến trình này đang chờ được cấp phá tài nguyên đang bị tiến trình kia chiếm giữ và ngược lại .
=> Khi có 4 điều kiện này thì tắc nghẽn xảy ra . Nếu thiếu 1 trong 4 điều kiện trên thì không có tắc nghẽn.

vd : 5 nhà triết học cùng ngồi vào bàn ăn để thưởng hức món mì ý . Để dùng bữa thì mỗi người cần dùng 2 cái nĩa mà trên bàn thì chỉ có 5 nĩa xếp xen kẽ 5 đĩa mì , Vậy nếu 5 người cùng ăn 1 lúc thì sẽ xảy ra hiện tượng tranh chấp gây ra hiện tượng .==> Hiên tượng Deadlock

LeHuynhChiTam (113A)

Tổng số bài gửi : 35
Join date : 16/07/2012

Về Đầu Trang Go down

Thảo luận Bài 8 Empty Định nghĩa Deadlock? Ví Dụ cụ thể?

Bài gửi  LeHuynhChiTam (113A) 17/9/2012, 21:50

Đị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.
vd1: Hiện tượng deadlock xảy ra tại một ngã 4, đèn xanh đèn đỏ bị hỏng. 4 làn xe đều chạy liên tục ( tại điểm cắt ngã 4 sẽ xảy ra hiện tượng kẹt xe). => Xuất hiện deadlock (Trên thực tế chẳng có ai chịu nhường đường cả.)
vd2: 2 con dê đi qua cầu, dê trắng và dê đen đều mún mình qua cầu chẳng ai chịu nhường ai cả, và cả 2 đều mắc kẹt mãi trên cầu....(có thể tranh chấp dẫn đến xảy ra đến cả 2 con đều rơi xuống cầu) ví dụ này đơn giản dể hiểu và dể nhớ.

LeHuynhChiTam (113A)

Tổng số bài gửi : 35
Join date : 16/07/2012

Về Đầu Trang Go down

Thảo luận Bài 8 Empty Định nghĩa deadlock

Bài gửi  ledinhngankhanh (113a) 17/9/2012, 21:53

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.

ledinhngankhanh (113a)

Tổng số bài gửi : 30
Join date : 29/07/2012

Về Đầu Trang Go down

Thảo luận Bài 8 Empty Khái niệm đồ thị cấp phát tài nguyên. Biết cách vẽ và cách giải thích một đồ thị cho trước

Bài gửi  ledinhngankhanh (113a) 17/9/2012, 21:54

Đồ 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.

ledinhngankhanh (113a)

Tổng số bài gửi : 30
Join date : 29/07/2012

Về Đầu Trang Go down

Thảo luận Bài 8 Empty Phương thức xử trí Deadlock

Bài gửi  ledinhngankhanh (113a) 17/9/2012, 21:55

- 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).

ledinhngankhanh (113a)

Tổng số bài gửi : 30
Join date : 29/07/2012

Về Đầu Trang Go down

Thảo luận Bài 8 Empty Sưu tầm về xử lý Deadlock

Bài gửi  ledinhngankhanh (113a) 17/9/2012, 21:56

1. Thủ thuật phát hiện deadlock:
- Khi nào chúng ta cần giải thuật phát hiện deadlock?
- Câu trả lời phụ thuộc vào hai yếu tố:
+ Deadlock có khả năng xảy ra như thế nào?
+ Có bao nhiêu tiến trình sẽ bị ảnh hưởng bởi deadlock khi nó xảy ra ?
- Nếu deadlock xảy ra thường xuyên thì giải thuật phát hiện deadlock sẽ được thực hiện thường xuyên. Tài nguyên được cấp phát cho deadlock sẽ được rảnh rỗi cho đến khi deadlock bị phá vỡ. Ngoài ra, số lượng tiến trình tham gia vào trong chu trình deadlock có thể tăng lên.

- Deadlock xảy ra khi một tiến trình thực hiện yêu cầu mà không được cấp phát tài nguyên tức thì. Yêu cầu này có thể là yêu cầu cuối cùng hoàn thành một chuỗi các tiến trình chờ. Trong trường hợp này chúng ta có thể gọi giải thuật phát hiện deadlock mỗi khi yêu cầu cấp phát không được cấp phát tức thì. Chúng ta không chỉ biết được tập hợp các tiến trình bị deadlock mà còn xác định tiến trình đã gây ra deadlock (Trong thực tế, mỗi tiến trình trong suốt quá trình bị deadlock là một liên kết trong chu trình của đồ thị tài nguyên vì thế tất cả chúng gây ra deadlock). Nếu có nhiều loại tài nguyên khác nhau, một yêu cầu tạo ra một chu trình trong đồ thị tài nguyên, mỗi chu trình hoàn thành bởi các yêu cầu gần đây nhất và “gây ra” bởi một tiến trình có thể xác định.

- Tất nhiên, nếu thuật toán phát hiện deadlock được gọi cho mọi yêu cầu tài nguyên điều này có thể gây ra chi phí lớn trong thời gian tính toán. Một phương pháp để giảm chi phí là ta gọi giải thuật trong thời điểm ít thường xuyên hơn - ví dụ mỗi giờ hoặc bất cứ khi nào CPU sử dụng dưới 40%. Nếu giải thuật phát hiện deadlock được gọi vào thời điểm bất kỳ, có thể có nhiều chu trình trong đồ thị tài nguyên. Chúng ta không thể xác định được tiến trình nào “gây ra” deadlock.
2. Phục hồi deadlock:
- Khi giải thuật phát hiện deadlock xác định tồn tại một deadlock, có 2 cách để giải quyết:
+ Một là thông báo cho người điều hành biết deadlock xảy ra và để cho người điều hành khắc phục bằng tay.
+ Hai là để cho hệ thống phục hồi tự động. Có hai tùy chọn để phá vỡ deadlock. Một giải pháp đơn giản là hủy một hay nhiều tiến trình để phá vỡ tồn tại chu trình trong đồ thị cấp phát tài nguyên. Lựa chọn thứ hai là lấy lại một hay nhiều tài nguyên từ tiến trình deadlock.

ledinhngankhanh (113a)

Tổng số bài gửi : 30
Join date : 29/07/2012

Về Đầu Trang Go down

Thảo luận Bài 8 Empty Phân tích khái niệm tài nguyên hệ thống

Bài gửi  ledinhngankhanh (113a) 17/9/2012, 21:57

- Các tài nguyên hệ thống được chia thành nhiều Loại, mỗi loại có 1 hoặc nhiều Phiên bản (Instances). Các tài nguyên hệ thống này cấp phát cho các tiến trình theo yêu cầu.
- Tài nguyên cùng loại: Giả sử máy có 3 ổ băng từ và có 3 tiến trình đang chạy. Mỗi tiến trình đang giữ 1 ổ băng.
- Tài nguyên khác loại: Giả sử có 1 máy in, 1 ổ băng từ. Tiến trình P1 đang giữ ổ băng, P2 giữ máy in.

ledinhngankhanh (113a)

Tổng số bài gửi : 30
Join date : 29/07/2012

Về Đầu Trang Go down

Thảo luận Bài 8 Empty Thế nào là trạng thái an toàn của hệ thống

Bài gửi  ledinhngankhanh (113a) 17/9/2012, 22:23

- 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.

ledinhngankhanh (113a)

Tổng số bài gửi : 30
Join date : 29/07/2012

Về Đầu Trang Go down

Thảo luận Bài 8 Empty 4 cách ngăn chặn Deadlock.

Bài gửi  NguyenHuuLinh31(113A) 17/9/2012, 22:25

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.

NguyenHuuLinh31(113A)

Tổng số bài gửi : 33
Join date : 19/07/2012

Về Đầu Trang Go down

Thảo luận Bài 8 Empty Re: Thảo luận Bài 8

Bài gửi  Trannguyenkhoa26 (113A) 17/9/2012, 22:38

phamphihung55 đã viết:
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.

Hầu hết các cách này đều không khả thi. Tuần sau thầy sẽ dạy cách tránh deadlock.

Trannguyenkhoa26 (113A)

Tổng số bài gửi : 35
Join date : 16/07/2012
Age : 34

Về Đầu Trang Go down

Thảo luận Bài 8 Empty Re: Thảo luận Bài 8

Bài gửi  Trannguyenkhoa26 (113A) 17/9/2012, 22:41

LeHuynhChiTam (113A) đã viết:Đị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.

Cái này còn thiế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 trong nhóm

Admin
Góp ý đúng. Tuy nhiên, trong thực tế người ta thường dùng quy tắc "Im lặng (mặc định)" (Default) cho gọn !

Trannguyenkhoa26 (113A)

Tổng số bài gửi : 35
Join date : 16/07/2012
Age : 34

Về Đầu Trang Go down

Thảo luận Bài 8 Empty Phát hiện deadlock

Bài gửi  vuquoctoan (I13A) 17/9/2012, 22:50

Là xác định sự kiện xuất hiện trạng thái deadlock, xác định các quá trình và tài nguyên nằm trong tình trạng deadlock. Các thuật toán xác định deadlock thường được áp dụng trong các hệ thống có xuất hiện 3 điều kiện đầu tiên trong số các điều kiện làm xuất hiện deadlock. Và sau đó mới xác định xem có tồn tại trạng thái "chờ vòng" hay không.

Tất nhiên sử dụng các thuật toán phát hiện deadlock cũng phải trả giá, đó là chi phí về thời gian máy. Và chúng ta lại gặp vấn đề phải xác định giải pháp trung hòa: các chi phí thực hiện thuật toán phát hiện deadlock có tiệt kiệm hơn hẳn so với khi dùng các biện pháp cô lập, loại bỏ deadlock hay không.

vuquoctoan (I13A)

Tổng số bài gửi : 12
Join date : 17/07/2012

Về Đầu Trang Go down

Thảo luận Bài 8 Empty câu 1 : trình bày khái niệm deallock và nêu các ví dụ minh họa

Bài gửi  PhamQuocAnh02 (113A) 17/9/2012, 22:54

deallock là tình huống, hay trạng thái của 1 nhóm tiến trình rơi vào trạng thái deadlock, khi nhóm tiến trình đó chờ đợi lẫn nhau gây ra. yêu cầu chỉ được đáp ứng khi các tiến trình trong nhóm tạo ra.
ví dụ1: xe qua cầu chỉ đi được một làng khi qua cầu, 2 xe cùng một lúc lên cầu dẫn tới 2 xe kẹt trên mặt cầu, khi xe nào cũng chờ xe kia dẫn đến bị kẹt trên mặt cầu (deadllock).
ví dụ 2: kẹt xe tại ngã tư. mỗi chiếc xe là 1 tiến trình và rơi vào trạng thái kẹt xe ở giữa ngã tư(deallock)
ví dụ 3: + sử dụng tài nguyên cùng loại: giả sử máy có 3 ổ băng từ và có 3 tiến trình đang chạy. mỗi tiến trình đang giữ 1 ổ băng từ. nếu mỗi tiến trình xin thêm 1 ổ băng nữa sẽ dẫn đến deallock xảy ra.
+ sử dụng tài nguyên cùng loại : giả sử có 1 máy in, 1 ổ băng từ. tiến trình p1 đang giữ ổ băng, p2 đang giữ máy in.
nếu p1 xin thêm máy in và p2 xin thêm ổ băng từ để hoàn tất công việc thì deallock xảy ra

PhamQuocAnh02 (113A)

Tổng số bài gửi : 27
Join date : 16/07/2012

Về Đầu Trang Go down

Thảo luận Bài 8 Empty Định nghĩa Deadlocks

Bài gửi  vuquoctoan (I13A) 17/9/2012, 22:56

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 hay 1 tài nguyên có thể chỉ được gây ra bởi một tiến trình khác.
ví dụ:
Có hai xe đi ngược chiều cùng qua 1 cây cầu hẹp, mà cầu thì chỉ có một làm xe nên khi hai xe vào đến giữa cầu thì không thể tiếp tục tiến đi được nữa xảy ra kẹt xe(deadlock) vì không người nào chịu nhường đường.

Thảo luận Bài 8 22777523

vuquoctoan (I13A)

Tổng số bài gửi : 12
Join date : 17/07/2012

Về Đầu Trang Go down

Thảo luận Bài 8 Empty Re: Thảo luận Bài 8

Bài gửi  Sponsored content


Sponsored content


Về Đầu Trang Go down

Trang 1 trong tổng số 5 trang 1, 2, 3, 4, 5  Next

Về Đầu Trang

- Similar topics

 
Permissions in this forum:
Bạn không có quyền trả lời bài viết