- 교착상태란 어떤 상태입니까?
deadlock이라고 불리는데 프로세서들이 자원을 요구하고 있을 때 어떤 프로세서들도 자원을 가져갈 수 없어 프로세스가 발생할 수 없는 상태를 deadlock 상태에 빠진다고 합니다.
- 운영체제에서 자원이란 어떤 의미입니까?
하드웨어와 소프트웨어 자원으로 분류할 수 있는데 데드락에 입장에서는 선점가능한가, 할당 단위에 따라 사용할 수 있는가, 동시 사용이 가능한가, 재사용이 가능한가로 분류할 수 있다.
- 비선점할 수 있는 자원이 deadlock을 발생시킬 수 있는 이유는 무엇인가?
비선점하는 자원은 우선순위에 따라 자원의 사용이 바뀌지 않기 때문에 다른 프로세스가 자원을 요청하면 못 쓰게 되니깐 deadlock을 발생시키리 수 있습니다.
- 데드락은 직관적으로 확인이 가능한가?
그래프 모델이나 status transitional model로 확인이 가능합니다.
- 데드락은 언제 발생합니까?
자원 자체가 비선점형 자원이고 독립적으로 사용될때, 프로세스가 선형구조로 돌고 있으며 자원이 아무것도 없거나 완전히 가지고 있는 상태가 아니라 하나를 가지고 다른 자원을 필요로할 때 데드락이 발생합니다.
- 데드락은 어떻게 해결할 수 있습니까?
데드락을 예방할 수 있습니다. 4개의 조건 중 하나를 없애주면 됩니다.
6-1. 모든 자원을 공유하도록 허용해야 합니다. -> 현실적으로 불가능합니다.
6-2. 모든 자원에 선점을 허용합니다. -> 이것도 현실적으로 불가능합니다.
6-3. 필요한 자원을 모두 한번에 할당합니다. -> 무한 대기 현상이 발생할 수 있습니다.
6-4. 순환 대기를 끊어줍니다. -> 어떻게 할 수 있습니까?
6-4-1. 자원들의 순서를 부여해서 순서 증가 방향으로(한 방향으로만 )자원을 요청하면 순환대기는 되지 않는다고 합니다)
- 데드락을 회피하기 위한 알고리즘이 있습니다. 무엇입니까?
7-1. 다익스트라 알고리즘 중에 은행원 알고리즘이 있습니다. - 무조건적인 신뢰상태가 있어야 합니다.
- 데드락을 허용하고 복구할 수 있습니까?
8-1. 시스템이 데드락 상태인지 주기적으로 확인합니다(resource allocation graph를 사용해서)
- swapping
프로세서 할당이 끝나고 수행완료된 프로세스는 SWAP-DEVICE로 보내고(swap-out) 새롭게 시작하는 프로세스는 메모리에 적재하는 과정(swap-in)을 스와핑이라고 한다.