Vấ n đề tắ c nghẽ n
Deadlock




Cả 5 triết gia   Mỗi người chỉ
cùng đồng lọat   lấy được đúng
muốn ăn          1 chiếc nĩa




PTIT, 2012
Deadlock




PTIT, 2012
Deadlock trong tổ chứ c tiế n trình
   Mỗi tiến trình trong nhóm đều chờ được cấp
    phát một tài nguyên.
   Tài nguyên đang tranh chấp bị một tiến trình
    khác cũng ở trạng thái blocked chiếm giữ.
   Không có tiến trình nào có thể tiếp tục xử lý để
    giải phóng tài nguyên.
   Tất cả các tiến trình trong nhóm đều bị khóa
    vĩnh viễn !



PTIT, 2012
Đ iề u kiệ n củ a tắ c nghẽ n
1.      Truy xuất lọai trừ (mutual exclusion): một
        tiến trình duy nhất được truy xuất
2.      Chiếm giữ và yêu cầu thêm (Hold and
        wait)
3.      Tiến trình chiếm giữ tài nguyên theo chế
        độ độc quyền (No preemption)
4.      Tồn tại chu kỳ (Circulation wait)


PTIT, 2012
Đồ thị cấ p phát tài nguyên

                    P đang chiếm R



 P: Tiến trình
 R: Tài nguyên

                 P đang yêu cầu R




PTIT, 2012
Đồ thị cấ p phát tài nguyên




PTIT, 2012
Đồ thị cấ p phát tài nguyên




   Có xảy ra
   deadlock
   không?




PTIT, 2012
Đồ thị cấ p phát tài nguyên

      Có xảy ra
      deadlock
      không?



   Kết luận???



PTIT, 2012
Giả i quyế t vấ n đề tắ t nghẽ n
   Ngăn chặn (Prevention):
            Lọai bỏ 4 điều kiện của tắc nghẽn
   Xử lý (Detection and recovery)
       Chấp     nhận cho tắc nghẽn xảy ra, thực hiện
          các thủ tục để phát hiện tắc nghẽn, nếu có thì
          xử lý.
   Không quan tâm (Ignore)



PTIT, 2012
Ngă n chặ n tắ c nghẽ n
   Loại bỏ các điều kiện tắc nghẽn
       Mutual Exclusion
       Hold and Wait
       No Preemption
       Circular Wait




PTIT, 2012
Trạ ng thái an toàn củ a hệ thố ng


 Trạng thái
 an toàn
 (safe state):
 hệ thống có
 thể cấp phát
 tài nguyên
 cho các tiến
 trình mà
 không bị tắc
 nghẽn.


PTIT, 2012
Trạ ng thái an toàn củ a hệ thố ng

   Chuỗi tiến trình <P1, P2, …, Pn> là an toàn
    đối với từng tiến trình Pi nếu các tài
    nguyên mà Pi cần sẽ được đáp ứng bởi
    các tài nguyên đang có cùng với các tài
    nguyên đang chiếm dụng bởi các tiến
    trình Pj, với j<i.




PTIT, 2012
Xác đị nh trạ ng thái an toàn
 Available [r]: Số tài nguyên sẵn sàng ứng
  với từng loại tài nguyên r.
 Max[p,r]: Nhu cầu tài nguyên của tiến trình
  p đối với tài nguyên r.
 Allocation [p,r]: số tài nguyên loại r đã cấp
  cho tiến trình p;
 Need [p,r]: số tài nguyên loại r mà tiến
  trình p cần sử dụng.
 Finish [p]: tiến trình p đã thực hiện xong


PTIT, 2012
Xác đị nh trạ ng thái an toàn
   B1: Tìm tiến trình i thỏa:
       Finish[i]= false;
       Need[i,j] <= Available[j];
       Nếu không tồn tại qua bước 3.
   B2: Cấp phát tài nguyên cho tiến trình i
       Allocation[i,j]   = Allocation[i,j] + Need[i,j];
       Need[i,j] = 0;
       Available[j] = Available[j] – Need[i,j];
       Finish[i] = true;
       Thu hồi các tài nguyên đã cấp cho Pi và quay lại B1
   B3: Nếu Finish[i] = true với mọi i thì hệ thống an
    toàn.

PTIT, 2012
Thuậ t toán Banker

   Nguyên tắc: Khi tiến trình yêu cầu tài
    nguyên, hệ thống cấp phát “thử”, sau đó
    xác định xem hệ thống có an toàn không.
    Nếu an toàn thì cấp phát “thật”, ngược lại
    thì không cấp phát




PTIT, 2012
Thuậ t toán Banker
   Tiến trình Pi yêu cầu k tài nguyên loại r.
       B1:  Nếu k <= Need[i,r] thì qua B2, ngược lại
        thì báo lỗi.
       B2: Nếu k <= Available[r] thì qua B3, ngược
        lại Pi phải chờ.
       B3:Thử cấp phát tài nguyên cho Pi:
              Available[r] = Available[r] – k;
              Allocation[i,r] = Allocation[i,r] + k;

              Need[i,r] = Need[i,r] – k;

       B4:      Kiểm tra trạng thái an toàn của hệ thống

PTIT, 2012
Ví dụ 1

                Max       Allocation    Available
             R1 R2 R3    R1 R2 R3      R1 R2 R3
      P1     3   2   2   1   0    0     4   1   2
      P2     6   1   3   2   1    1
      P3     3   1   4   2   1    1
      P4     4   2   2   0   0    2



 Nếu tiến trình P2 yêu cầu 4 cho R1, 1 cho R3. Hãy cho
 biết yêu cầu này có thể đáp ứng mà bảo đảm không xảy
 ra tình trạng deadlock hay không ?
PTIT, 2012
Ví dụ 1

               Need      Allocation    Available
             R1 R2 R3   R1 R2 R3      R1 R2 R3
     P1                 1   0   0     4   1   2
     P2                 2   1   1
     P3                 2   1   1
     P4                 0   0   2


   Xác định nhu cầu tài nguyên còn lại của từng
   tiến trình trong bảng Need

PTIT, 2012
Ví dụ 1

                  Need       Allocation    Available
                R1 R2 R3    R1 R2 R3      R1 R2 R3
      P1                                  4     1   2
      P2
      P3
      P4

             Thử cấp tài nguyên theo          Kiểm tra
             yêu cầu của P2 và cập nhật       trạng thái an
              trạng thái hệ thống             toàn

PTIT, 2012
Ví dụ 2

   5 tiến trình (P0 - P4).
   3 loại tài nguyên: A (10), B (5), C (7).
   Tại thời điểm T0:
               Allocation Max          Available
               ABC          ABC        ABC
         P0 0 1 0           753        332
         P1 2 0 0           322
         P2 3 0 2           902
         P3 2 1 1           222
         P4 0 0 2           433
PTIT, 2012
Ví dụ 2
   Xét tình huống
              Need
              ABC
        P0 7 4 3
             P1   122
             P2   600
             P3   011
             P4   431
   Chuỗi truy xuất < P1, P3, P4, P2, P0> có an toàn?
PTIT, 2012
Ví dụ 2
   Request ≤ Available : (1,0,2) ≤ (3,3,2)
               Allocation     Need           Available
               ABC            ABC            ABC
       P0      010            743            230
       P1      302            020
       P2      301            600
       P3      211            011
       P4      002            431
   Chuỗi truy xuất <P1, P3, P4, P0, P2> có an toàn không?
   Nếu P4 yêu cầu tài nguyên (3,3,0) thì có được đáp ứng
    không?
   Nếu P0 yêu cầu tài nguyên (0,2,0) thì có được đáp ứng
    không?
PTIT, 2012

More Related Content

PDF
Tong hop cau hoi trac nghiem hdh
PPT
Dealockheiwjbeisuhfjsjsdnewkhshdjejshdbdjdjs
PPTX
HDH-Chuong6 Ngăn độc quyền truy xuất olie
PDF
Chuong6 deadlock-091006115413-phpapp01
PPT
Os 3 - synchronization
DOC
Ứng Dụng Thuật Toán Lomet Trong Cung Cấp Tài Nguyên Phân Tán Cho Hệ Thống Máy...
PPT
Os 2 - process
PDF
Organization System chapter 4 ptit 1.pdf
Tong hop cau hoi trac nghiem hdh
Dealockheiwjbeisuhfjsjsdnewkhshdjejshdbdjdjs
HDH-Chuong6 Ngăn độc quyền truy xuất olie
Chuong6 deadlock-091006115413-phpapp01
Os 3 - synchronization
Ứng Dụng Thuật Toán Lomet Trong Cung Cấp Tài Nguyên Phân Tán Cho Hệ Thống Máy...
Os 2 - process
Organization System chapter 4 ptit 1.pdf

Similar to Os 4 - deadlock (17)

PDF
Bai tap ly thuyet He dieu hanhBai tap ly thuyet He dieu hanh.pdf
PDF
Ngân hàng hệ thống phân tán PTIT
PDF
Chapter4_Process_Management_2 OS ptit.pdf
PDF
An toàn hệ điều hành PTIT
PDF
PPT
Os 5 - memory management
PDF
PPT
Bai04 quan ly tien trinh
PDF
PDF
Chuong5 dong bo_hoa
PPTX
Tính chịu lỗi trong hệ thống tệp tin phân tán
PDF
Ứng dụng mạng Petri trong lập trình hướng đối tượng tương tranh, 9đ
PDF
Luận văn: Lý thuyết cơ bản và tính chất điển hình của mạng Petri
PDF
DOC
Giải Pháp Điều Khiển Cung Cấp Tài Nguyên Cho Hệ Phân Tán Trong Máy Ảo Dựa Trê...
PDF
Luận văn Xây dựng giải pháp phân tán chống đăng kí trùng vé trong vận tải đườ...
DOC
Hệ PhâN TáN
 
Bai tap ly thuyet He dieu hanhBai tap ly thuyet He dieu hanh.pdf
Ngân hàng hệ thống phân tán PTIT
Chapter4_Process_Management_2 OS ptit.pdf
An toàn hệ điều hành PTIT
Os 5 - memory management
Bai04 quan ly tien trinh
Chuong5 dong bo_hoa
Tính chịu lỗi trong hệ thống tệp tin phân tán
Ứng dụng mạng Petri trong lập trình hướng đối tượng tương tranh, 9đ
Luận văn: Lý thuyết cơ bản và tính chất điển hình của mạng Petri
Giải Pháp Điều Khiển Cung Cấp Tài Nguyên Cho Hệ Phân Tán Trong Máy Ảo Dựa Trê...
Luận văn Xây dựng giải pháp phân tán chống đăng kí trùng vé trong vận tải đườ...
Hệ PhâN TáN
 
Ad

Os 4 - deadlock

  • 1. Vấ n đề tắ c nghẽ n
  • 2. Deadlock Cả 5 triết gia Mỗi người chỉ cùng đồng lọat lấy được đúng muốn ăn 1 chiếc nĩa PTIT, 2012
  • 4. Deadlock trong tổ chứ c tiế n trình  Mỗi tiến trình trong nhóm đều chờ được cấp phát một tài nguyên.  Tài nguyên đang tranh chấp bị một tiến trình khác cũng ở trạng thái blocked chiếm giữ.  Không có tiến trình nào có thể tiếp tục xử lý để giải phóng tài nguyên.  Tất cả các tiến trình trong nhóm đều bị khóa vĩnh viễn ! PTIT, 2012
  • 5. Đ iề u kiệ n củ a tắ c nghẽ n 1. Truy xuất lọai trừ (mutual exclusion): một tiến trình duy nhất được truy xuất 2. Chiếm giữ và yêu cầu thêm (Hold and wait) 3. Tiến trình chiếm giữ tài nguyên theo chế độ độc quyền (No preemption) 4. Tồn tại chu kỳ (Circulation wait) PTIT, 2012
  • 6. Đồ thị cấ p phát tài nguyên P đang chiếm R P: Tiến trình R: Tài nguyên P đang yêu cầu R PTIT, 2012
  • 7. Đồ thị cấ p phát tài nguyên PTIT, 2012
  • 8. Đồ thị cấ p phát tài nguyên Có xảy ra deadlock không? PTIT, 2012
  • 9. Đồ thị cấ p phát tài nguyên Có xảy ra deadlock không? Kết luận??? PTIT, 2012
  • 10. Giả i quyế t vấ n đề tắ t nghẽ n  Ngăn chặn (Prevention):  Lọai bỏ 4 điều kiện của tắc nghẽn  Xử lý (Detection and recovery)  Chấp nhận cho tắc nghẽn xảy ra, thực hiện các thủ tục để phát hiện tắc nghẽn, nếu có thì xử lý.  Không quan tâm (Ignore) PTIT, 2012
  • 11. Ngă n chặ n tắ c nghẽ n  Loại bỏ các điều kiện tắc nghẽn  Mutual Exclusion  Hold and Wait  No Preemption  Circular Wait PTIT, 2012
  • 12. Trạ ng thái an toàn củ a hệ thố ng Trạng thái an toàn (safe state): hệ thống có thể cấp phát tài nguyên cho các tiến trình mà không bị tắc nghẽn. PTIT, 2012
  • 13. Trạ ng thái an toàn củ a hệ thố ng  Chuỗi tiến trình <P1, P2, …, Pn> là an toàn đối với từng tiến trình Pi nếu các tài nguyên mà Pi cần sẽ được đáp ứng bởi các tài nguyên đang có cùng với các tài nguyên đang chiếm dụng bởi các tiến trình Pj, với j<i. PTIT, 2012
  • 14. Xác đị nh trạ ng thái an toàn  Available [r]: Số tài nguyên sẵn sàng ứng với từng loại tài nguyên r.  Max[p,r]: Nhu cầu tài nguyên của tiến trình p đối với tài nguyên r.  Allocation [p,r]: số tài nguyên loại r đã cấp cho tiến trình p;  Need [p,r]: số tài nguyên loại r mà tiến trình p cần sử dụng.  Finish [p]: tiến trình p đã thực hiện xong PTIT, 2012
  • 15. Xác đị nh trạ ng thái an toàn  B1: Tìm tiến trình i thỏa:  Finish[i]= false;  Need[i,j] <= Available[j];  Nếu không tồn tại qua bước 3.  B2: Cấp phát tài nguyên cho tiến trình i  Allocation[i,j] = Allocation[i,j] + Need[i,j];  Need[i,j] = 0;  Available[j] = Available[j] – Need[i,j];  Finish[i] = true;  Thu hồi các tài nguyên đã cấp cho Pi và quay lại B1  B3: Nếu Finish[i] = true với mọi i thì hệ thống an toàn. PTIT, 2012
  • 16. Thuậ t toán Banker  Nguyên tắc: Khi tiến trình yêu cầu tài nguyên, hệ thống cấp phát “thử”, sau đó xác định xem hệ thống có an toàn không. Nếu an toàn thì cấp phát “thật”, ngược lại thì không cấp phát PTIT, 2012
  • 17. Thuậ t toán Banker  Tiến trình Pi yêu cầu k tài nguyên loại r.  B1: Nếu k <= Need[i,r] thì qua B2, ngược lại thì báo lỗi.  B2: Nếu k <= Available[r] thì qua B3, ngược lại Pi phải chờ.  B3:Thử cấp phát tài nguyên cho Pi:  Available[r] = Available[r] – k;  Allocation[i,r] = Allocation[i,r] + k;  Need[i,r] = Need[i,r] – k;  B4: Kiểm tra trạng thái an toàn của hệ thống PTIT, 2012
  • 18. Ví dụ 1 Max Allocation Available R1 R2 R3 R1 R2 R3 R1 R2 R3 P1 3 2 2 1 0 0 4 1 2 P2 6 1 3 2 1 1 P3 3 1 4 2 1 1 P4 4 2 2 0 0 2 Nếu tiến trình P2 yêu cầu 4 cho R1, 1 cho R3. Hãy cho biết yêu cầu này có thể đáp ứng mà bảo đảm không xảy ra tình trạng deadlock hay không ? PTIT, 2012
  • 19. Ví dụ 1 Need Allocation Available R1 R2 R3 R1 R2 R3 R1 R2 R3 P1 1 0 0 4 1 2 P2 2 1 1 P3 2 1 1 P4 0 0 2 Xác định nhu cầu tài nguyên còn lại của từng tiến trình trong bảng Need PTIT, 2012
  • 20. Ví dụ 1 Need Allocation Available R1 R2 R3 R1 R2 R3 R1 R2 R3 P1 4 1 2 P2 P3 P4 Thử cấp tài nguyên theo Kiểm tra yêu cầu của P2 và cập nhật trạng thái an trạng thái hệ thống toàn PTIT, 2012
  • 21. Ví dụ 2  5 tiến trình (P0 - P4).  3 loại tài nguyên: A (10), B (5), C (7).  Tại thời điểm T0: Allocation Max Available ABC ABC ABC P0 0 1 0 753 332 P1 2 0 0 322 P2 3 0 2 902 P3 2 1 1 222 P4 0 0 2 433 PTIT, 2012
  • 22. Ví dụ 2  Xét tình huống Need ABC P0 7 4 3 P1 122 P2 600 P3 011 P4 431  Chuỗi truy xuất < P1, P3, P4, P2, P0> có an toàn? PTIT, 2012
  • 23. Ví dụ 2  Request ≤ Available : (1,0,2) ≤ (3,3,2) Allocation Need Available ABC ABC ABC P0 010 743 230 P1 302 020 P2 301 600 P3 211 011 P4 002 431  Chuỗi truy xuất <P1, P3, P4, P0, P2> có an toàn không?  Nếu P4 yêu cầu tài nguyên (3,3,0) thì có được đáp ứng không?  Nếu P0 yêu cầu tài nguyên (0,2,0) thì có được đáp ứng không? PTIT, 2012