교착상태 2

식사하는 철학자 문제(Dining Philosopher Problem)

목표 식사하는 철학자 문제를 해결할 수 있다. 식사하는 철학자 문제란? 철학자 다섯 명이 원형 식탁에 앉아 밥을 먹으려고 합니다. 그들의 양쪽엔 각각 젓가락 한 짝씩 놓여 있고, 밥을 먹으려 할 땐 다음의 과정을 따릅니다. 왼쪽 젓가락부터 집어 듭니다. 다른 철학자가 이미 왼쪽 젓가락을 쓰고 있다면 그가 내려놓을 때까지 대기합니다. 왼쪽을 들었으면 오른쪽 젓가락을 듭니다. 들 수 없다면 대기합니다. 두 젓가락을 모두 들었다면 일정 시간 동안 식사를 합니다. 식사를 마쳤으면 오른쪽 젓가락을 내려 놓은 후 왼쪽 젓가락을 내려놓습니다. 다시 배고프면 1번부터 진행합니다. 철학자는 프로세스 젓가락은 자원으로 가정한 후 모든 철학자가 왼쪽 젓가락을 들은 상황을 가정해봅시다. 그렇다면 모든 철학자는 오른쪽 젓가락을..

CS/운영체제 2021.01.05

교착 상태(Deadlock)

목표 교착 상태 개념을 설명할 수 있다. 교착 상태가 발생하기 위한 필요충분조건을 이해할 수 있다. 교착 상태 해결 방법을 설명할 수 있다. 교착 상태란? 교착 상태란 두 개 이상의 프로세스들이 자원을 점유한 상태에서 서로 다른 프로세스가 점유하고 있는 자원을 요구하며 무한정 기다리는 현상을 의미합니다. 결과적으로 아무것도 완료되지 못하는 상태를 가리킵니다. 교착 상태 필요충분조건 상호배제(Mutual Exclustion) 한번에 한개의 프로세스만 공유 자원을 사용할 수 있어야 한다. 점유와 대기(Hold and Wait) 최소한 하나의 자원을 점유한 상태에서 이미 다른 프로세스에 할당되어 있는 자원을 추가로 점유하기 위해 대기하는 프로세스가 있어야합니다. 비선점(Non-preemption) 다른 프로세..

CS/운영체제 2021.01.05