
CS/OS
[운영체제/OS] 데드락(Deadlock) 핸들링하기
0. 들어가면서 지난 시간에 데드락이란 무엇이며, 어떤 상황에서 발생할 수 있는지에 대한 필요조건에 대해 공부했습니다. 데드락이 발생하기 위한 필요조건 네 가지는 다음과 같았는데요. 1. 상호배제(Mutual Exclusion): Non-sharable한 resource가 존재해야 한다. 2. 점유대기(Hold and Wait): 프로세스는 Resource를 점유하고 있는 동시에 다른 프로세스가 들고 있는 Resource를 Wait하고 있다. 3. 비선점(No preemption): Resource는 자신을 점유하고있는 프로세스에 의해서만 release될 수 있다. 4. 순환대기(Circular wait): 2번 내용을 포함하고 있는데, 그래프에 Cycle이 있어야 한다는 것이다. 이 조건들을 설명하면서..