Tất cả hiện tượng tắc nghẽn đều bắt nguồn từ sự xung đột về tài nguyên của hai hoặc nhiều tiến trình đang hoạt động đồng thời trên hệ thống. Tài nguyên ở đây có thể là một ổ đĩa, một record trong cơ sở dữ liệu, hay một không gian địa chỉ trên bộ nhớ chính. Sau đây là một số ví dụ để minh hoạ cho điều trên. | Procedure Reader Begin Repeat Send Sever Requesread Rece ive seve r va lue Print value Until .F. End Procedure Writer Begin Repeat Tạo dữ liệu Send Sever Requeswrite value Receive sever okwrite Until .F. End ParEnd End. ----------------------------------- I. 18. Tắc nghẽn Deadlock và chống tắc nghẽn II. . Tắc nghẽn Tất cả hiện tượng tắc nghẽn đều bắt nguồn từ sự xung đột về tài nguyên của hai hoặc nhiều tiến trình đang hoạt động đồng thời trên hệ thống. Tài nguyên ở đây có thể là một ổ đĩa một record trong cơ sở dữ liệu hay một không gian địa chỉ trên bộ nhớ chính. Sau đây là một số ví dụ để minh hoạ cho điều trên. Ví dụ 1 Giả sử có hai tiến trình P1 và P2 hoạt động đồng thời trong hệ thống. Tiến trình P1 đang giữ tài nguyên R1 và xin được cấp R2 để tiếp tục hoạt động trong khi đó tiến trình P2 đang giữ tài nguyên R2 và xin được cấp R1 để tiếp tục hoạt động. Trong trường hợp này cả P1 và P2 sẽ không tiếp tục hoạt động được. Như vậy P1 và P2 rơi vào trạng thái tắc nghẽn. Ví dụ này có thể được minh hoạ bởi sơ đồ ở hình 2. Tắc nghẽn thường xảy ra do xung đột về tài nguyên thuộc loại không phân chia được một số ít trường hợp xảy ra với tài nguyên phân chia được. Ví dụ sau đây là trường hợp tắc nghẽn do xung đột về tài nguyên bộ nhớ là tài nguyên thuộc loại phân chia được. Hình Chờ đợi vòng tròn Ví dụ 2 Giả sử không gian bộ nhớ còn trống là 200Kb và trong hệ thống có hai tiến trình P1 và P2 hoạt động đồng thời. P1 và P2 yêu cầu được sử dụng bộ nhớ như sau P1 P Requestl 80Kb Requestl 70Kb Request 30Kb Request 40Kb Tắc nghẽn xảy ra khi cả hai tiến trình cùng yêu cầu thêm bộ nhớ lần thứ hai. Tại thời điểm này không gian bộ nhớ còn trống là 50Kb lớn hơn lượng bộ nhớ mà mỗi tiến trình yêu cầu 30Kb và 40Kb nhưng vì cả hai tiến trình đồng thời yêu cầu thêm bộ nhớ nên hệ thống không để đáp ứng được và tắc nghẽn xảy ra. Ví dụ 3 Trong các ứng dụng cơ sở dữ liệu một chương trình có thể khoá một vài record mà nó sử dụng để dành quyền điều khiển về cho nó. Nếu tiến trình P1 .