티스토리 뷰

● 도입

https://ko.wikipedia.org/wiki/%EA%B5%90%EC%B0%A9_%EC%83%81%ED%83%9C


- 여러 프로세스가 서로 다른 프로세스의 작업이 끝나기를 기다리다가 아무도 작업을 진행하지 못하는 상태를 교착상태라고 한다.

출처 - 인프런, 그림으로 쉽게 배우는 운영체제
출처 - 인프런, 그림으로 쉽게 배우는 운영체제
출처 - 인프런, 그림으로 쉽게 배우는 운영체제
출처 - 인프런, 그림으로 쉽게 배우는 운영체제

- 교착상태는 일상생활에서도 발생할 수 있다.

- 위와 같은 도로에서 차량 한 대가 꼬리 물기를 해서 교통이 마비되었다고 해보자

- 도로를 원할하게 할려면 앞에서 길을 터줘야 하는데 지금은 그 어느 차선도 이러지도 저지도 못 하는 상태이다.

- 이럴때는 누군가 도로를 통제해서 해결해 줘야한다.


● 교착상태

- 교착상태가 발생하는 이유는 공유자원 때문이다.

- 만약 어떤 자원을 여러 개의 프로세스가 공유하지 않는다면 교착상태는 발생하지 않을 것이다.

cf1) 위의 예시에서 (공유자원 = 도로)이다. 공유되는 도로를 서로 차지하려다 교착상태가 발생한 것이다.

cf2) 교착상태를 설명하는 가장 유명한 예시가 식사하는 철학자이다.


- 교착상태의 필요조건은 아래와 같다.(필요조건 = 어떤 진술이 참이 되기 위해서 반드시 충족되어야 하는 조건)

- 4개의 필요조건 중 1개라도 충족하지 않으면 교착상태는 발생하지 않는다.

 

1. 상호배제

- 어떤 프로세스가 한 리소스를 점유했다면 해당 리소스는 다른 프로세스에게 공유되면 안 된다.

= 프로세스들이 필요로 하는 자원에 대해 배타적인 통제권

= 식사하는 철학자에서 포크가 리소스에 해당한다.

 

2. 비선점

- 프로세스 A가 리소스를 점유하고 있을 때 프로세스B가 리소스를 빼앗을 수 없어야한다.

= 프로세스가 어떤 자원의 사용을 끝낼 때까지 그 자원을 뺏을 수 없다.

= 다른 사람이 이미 들고있는 포크를 빼앗을 수 없다.

 

3. 점유와 대기

- 어떤 프로세스가 리소스A를 가지고 있는 상태에서 리소스B를 원하는 상태여야한다.

= 프로세스가 할당된 자원을 가진 상태에서 다른 자원을 기다린다.

= 오른쪽 포크를 손에 쥔 채로 왼쪽 포크를 기다리고 있는 상태

 

4. 원형대기(순환대기)

- 점유와 대기를 하는 프로세스들의 관계가 원형을 이루고 있다. 

= 각 프로세스는 순환적으로 다음 프로세스가 요구하는 자원을 가지고 있다.

= 서로가 서로의 포크를 원하는 상황이 원형을 이룬다.

출처 - 인프런, 그림으로 쉽게 배우는 운영체제
출처 - 인프런, 그림으로 쉽게 배우는 운영체제

 

https://ko.wikipedia.org/wiki/%EA%B5%90%EC%B0%A9_%EC%83%81%ED%83%9C

 

교착 상태 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 데드락은 여기로 연결됩니다. 다른 뜻에 대해서는 데드락 (동음이의) 문서를 참고하십시오. 교착 상태(膠着狀態) 또는 데드락(영어: deadlock)은 두 개 이상의 작

ko.wikipedia.org

https://ko.wikipedia.org/wiki/%EC%8B%9D%EC%82%AC%ED%95%98%EB%8A%94_%EC%B2%A0%ED%95%99%EC%9E%90%EB%93%A4_%EB%AC%B8%EC%A0%9C

 

식사하는 철학자들 문제 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 원탁에 둘러앉은 다섯 명의 철학자와 다섯 접시의 스파게티, 그리고 다섯 개의 포크 식사하는 철학자들 문제는 전산학에서 동시성과 교착 상태를 설명하는 예

ko.wikipedia.org

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함