목록2024/01/17 (2)
Machineboy空
교착 상태 해결(3) 예방 회피 검출 후 회복 1) 교착 상태 예방 애초에 교착 상태가 발생하지 않도록 교착 상태 발생 조건(상호 배제, 점유와 대기, 비선점, 원형 대기) 중 하나를 없애버리기 상호 배제를 없앤다면? 모든 자원을 공유 가능하게 만든다? 이론적으로는 가능하지만 현실적으로는 불가 점유와 대기를 없앤다면? 특정 프로세스에 자원을 모두 할당하거나, 아예 할당하지 않는 방식으로 배분 단점: 자원의 활용률을 낮출 수 있는 방식 비선점을 없앤다면? 선점이 가능한 자원 (ex.CPU)에 한해 효과적 모든 자원이 선점 가능한 것은 아니다 프린터 등 원형 대기를 없앤다면? 자원에 번호를 붙이고 오름차순으로 할당하면 원형 대기는 발생하지 않는다 한계 자원에 번호를 붙이는 것은 어려운 작업 어떤 자원에 어떤..
프로세스 실행을 위해서는 자원이 필요한데, 두 개 이상의 프로세스가 각각의 자원을 그저 기다리기만 한다면 어떤 프로세스도 실행되지 못하고 꽉 막혀 멈춰버리는 현상이 발생할 것. 교착 상태란? 식사하는 철학자 문제 (Dining Philosopher's Problem) 왜 발생하고 어떻게 해결하는지 힌트를 주는 문제. 모든 철학자가 모두 동시에 이 프로세스를 진행하게 되면, 그 누구도 식사를 할 수 없다. 계속 생각만 하게 될 것. 모두 왼쪽 포크를 들게 되면 놓을 때 까지 오른쪽 포크를 사용할 수 없으니 계속 생각만 하게 될 것. 일어나지 않을 사건을 기다리며 진행이 멈춰 버리는 현상. 철학자 = 프로세스, 스레드 포크 = 실행에 꼭 필요한 자원 식사하는 것 = 실행하는 것 컴퓨터 상황으로 예시를 들어보..