컴퓨터과학/운영체제
-
7. Deadlocks (2) - 2 (Deadlock Avoidance~Banker's Algorithm)컴퓨터과학/운영체제 2024. 6. 20. 14:38
Deadlock Avoidance는 4가지 상황(Mutual Exclusion, No Preemption, Hold and Wait, Circular Wait) 중 한 가지는 무조건 막는 Deadlock Prevention과는 달리, 이들을 전부 허용하되, 동작 과정에서 Deadlock이 발생하지 않도록 제어한다.자원을 할당할지, 말지에 대한 결정은 OS가 한다.Deadlock이 발생할 가능성이 있는 상황이면, 자원을 줄 수 있는 상황임에도 주지 않는 선택을 한다. (위험한 길을 회피해서 안전한 길로 가기)미래에 일어날 Deadlock의 가능성을 과거에 미리 예측하려면, 추가적인 사전정보를 가지고 있어야 한다.제일 간단하고 유용한 방법은, 각 프로세스가 자원마다 최대 몇 개를 사용할 지에 대한 정보를 미..
-
7. Deadlocks (2) - 1 (~Deadlock Prevention)컴퓨터과학/운영체제 2024. 6. 20. 01:05
진행을 못하고 있는(blocked) 프로세스들 각각이, 다른 프로세스가 진행할 때 꼭 필요한 자원들을 움켜쥐고 있으면서 안 놓고, 다른 프로세스가 움켜쥐고 있는 자원을 기다리는 상황이다. 결국 모두가 다같이 옴짝달싹 못하게 된다예시시스템이 2개의 테이프 드라이브를 가지고 있다.(자원)P1과 P2 각각이 하나의 테이프 드라이브를 움켜쥐고 있고, 각각 서로의 테이프 드라이브가 필요한 경우.예시1로 초기화 된 세마포어(동기화 메커니즘) A, B -> P(A)가 호출되면 0이 됨. 다른 프로세스에서 P(A)를 마딱뜨렸는데 0이면 1이 될 때까지 대기해야함.다음 4가지 조건이 동시에 만족해야 Deadlock이 발생할 가능성이 있음(필요조건).Mutual exclusion: 한번에 하나의 프로세스만 해당 자원을 사..