Deadlock

Bach khoa toan th? m? Wikipedia

Deadlock (Khoa ch?t) la tr?ng thai x?y ra trong moi tr??ng đa nhi?m (muti-threading) khi hai ho?c nhi?u ti?n trinh đi vao vong l?p ch? tai nguyen mai mai.

Vi d? [ s?a | s?a ma ngu?n ]

Thread 1 Thread 2
Mu?n l?y tai nguyen A va B Mu?n l?y tai nguyen A va B
Chi?m tai nguyen A, ch? Thread 2 b?t đ?u ch?y cho t?i khi Thread 2 đ?i tai nguyen A gi?i phong
Chi?m tai nguyen B
đ?i tai nguyen A gi?i phong
đ?i tai nguyen B gi?i phong
Deadlock

đ?i pho v?i deadlock [ s?a | s?a ma ngu?n ]

đi?u ki?n x?y ra deadlock [ s?a | s?a ma ngu?n ]

Co b?n đi?u ki?n c?n thi?t đ? deadlock co th? x?y ra.

  1. đi?u ki?n lo?i tr? t??ng h? ( Mutual exclusion ): M?t tai nguyen khong th? s? d?ng b?i nhi?u h?n m?t ti?n trinh t?i m?t th?i đi?m
  2. đi?u ki?n gi? va ch? ( Hold and wait ): M?t qua trinh đang gi? it nh?t m?t tai nguyen va đ?i them tai nguyen do qua trinh khac đang gi?
  3. đi?u ki?n khong ?u tien ( No preemption ): Cac tai nguyen khong th? b? đoi l?i, chung ch? co th? đ??c gi?i phong b?i chinh ti?n trinh chi?m gi? chung
  4. đi?u ki?n chu trinh ch? ( Circular wait ): Cac ti?n trinh gi? tai nguyen va ch? cac tai nguyen b? gi? b?i ti?n trinh khac, t?o thanh m?t chu trinh. Vi d?: Ti?n trinh 1, chi?m A1, ch? A2. Ti?n trinh 2 chi?m A2, ch? A3,... Ti?n trinh N chi?m An, ch? A1

Cac cach đ?i pho v?i deadlock [ s?a | s?a ma ngu?n ]

  1. Ng?n ch?n deadlock: ng?n ch?n it nh?t 1 trong 4 đi?u ki?n đ? x?y ra deadlock neu tren. Ch?ng h?n: cho phep chia s? tai nguyen, cho phep tr?ng d?ng,...
  2. Phong tranh deadlock: d? đoan tr??c deadlock co x?y ra hay khong tr??c khi ti?n hanh phan ph?i tai nguyen cho ti?n trinh. Vi d?: gi?i thu?t nha b?ng (Banker's algorithm).
  3. Phat hi?n va kh?c ph?c deadlock: n?u khong th? phong tranh hay ng?n ch?n deadlock, c? đ? deadlock x?y ra va ta s? phat hi?n va đi kh?c ph?c chung. Phu?ng phap nay phu h?p v?i h? th?ng it x?y ra deadlock va h?u qu? c?a deadlock la it nghiem tr?ng.

Tham kh?o [ s?a | s?a ma ngu?n ]

Lien k?t ngoai [ s?a | s?a ma ngu?n ]

Bai vi?t [ s?a | s?a ma ngu?n ]

B?n in [ s?a | s?a ma ngu?n ]

Chung [ s?a | s?a ma ngu?n ]