Cau8 HDH
Tắc nghẽn:
Giả sử có 2 tiến trình p1 và p2 hoạt động đồng thời trên hệ thống.tiến trình p1 đang giữ tài nguyên R1 và cần thêm tài nguyên R2.p2 giữ tài nguyên R2 và cần thêm tài nguyên R1
Để tiếp tục hoạt động trong trường hợp này cả 2 tiến trình p1 và p2 sẽ không hoạt động đc nếu như ko đc cấp phát tài nguyên còn lại.
P1 và p2 sẽ rơi vào tình trạng tắc nghẽn :
Hình vẽ:
Hinh6
Tất cả các hiện tượng tắt nghẽn đều bắt nguồn từ sự xung đột tài nguyên từ 2,nhiều tiến trình đồng thời đang hoạt động trong hệ thống tài nguyên:ổ đĩa,ổ nhớ...
Ví dụ:tại thời điểm t,bộ nhớ còn 250M có 2 tiến trình p1 và p2
Processor p1:
T1:yêu cầu 100KB
....
T2:yêu cầu 30KB
Processor p2:
T1:yêu cầu 100KB
....
T2:yêu cầu 40KB
=>tại t2 xảy ra tắc nghẽn.vì p1 và p2 cùng yêu cầu.
* (ngăn chặn tắc nghẽn)
VD:trong các ứng dụng CSDL,1 chương trình có thể khóa 1 vài record mà nó sử dụng,để giành quyền điều khiển về cho nó.Nếu p1 khóa record R1,P2 khóa record R2 và rồi sau đó mỗi tiến trình lại cố gắng khóa record của 1 tiến trình khác
tắc nghẽn sẽ xảy ra.
Ngăn chặn tắc nghẽn:
-Ngăn chặn tắc nghẽn là 1 thiết kế sao cho hiện tượng tắc nghẽn bị loại trừ ,các phương thức ngăn chặn tắc nghẽn đều tập trung giải quyết 4 điều kiện tắc nghẽn.
-Đối với trường hợp sử dụng độc quyền :trường hợp này ngăn chặn tắc nghẽn là rất khó khăn khi tiến trình đưa vào hệ thống .HDH có nhiệm vụ cấp phát tài nguyên cho nó hoạt động lúc đó tài nguyên bị chiếm giữ trong trạng thái độc quyền ,trừ 1 số trường hợp đặc biệt thì tiến trình đó có thể chuyển sang trạng thái Ready
-Đối với trường hợp giữ và đợi tài nguyên:T.Hợp này có thể ngăn chặn bằng cách yêu cầu tiến trình chuyển sang trạng thái Blocked cho đến khi yêu cầu về tài nguyên cảu nó được HDH đáp ứng
-Đối với T.hợp đợi vòng tròn:có thể ngăn chặn bằng cách phân lớp tài nguyên của hệ thống .theo đó,1 tiến trình được cấp phát tài nguyên ở lớp L thì sau đó chỉ có thể yêu cầu tài nguyên ở các lớp thấp hơn L
-Đối với T.hợp không ưu tiên:ngăn chặn bằng cách khi tiến bị trình rơi vào trạng thái Khóa .HDH có thể thu hồi lại tài nguyên của tiến trình bị khóa để cấp phát cho tiến trình khác,và cấp lại đầy đử tài nguyên cho tiến trình khi tiến trình được đưa ra khỏi trạng thái khóa.
*Phân biệt địa chỉ logic và địa chỉ vật lý:
+Địa chỉ logic:được tạo ra bởi CPU,cũng được gọi là địa chỉ ảo(vitual address)
+Địa chỉ vật lý:địa chỉ đc nhận biết bởi đơn vị bộ nhớ (địa chỉ thực sự của bộ nhớ)
- các cơ chế liên kết địa chỉ:
+ Các địa chỉ logic và vật lý là như nhau với các cơ chế liên kết địa chỉ tại thời điểm complic - times và load time
+Chúng khác với cơ chế execution - time ,vì:
-với comple sau khi biên dịch xong sẽ biết chính xác vị trí chương trình trog bộ nhớ =>địa chỉ logic = địa chỉ vật lý.
-Với Load time: khi tiến trình đc nạp vào vị trí chính xác của nó với bộ nhớ thì tiến trình có vị trí không thay đổi =>địa chỉ logic=địa chỉ vật lý
-Với Execution -time:thì một khi tiến trình đc thực hiện tiến trình có thể nằm tại các vị trí khác với bộ nhớ =>địa chỉ logic=địa chỉ vật lý
Bạn đang đọc truyện trên: Truyen247.Pro