티스토리 뷰

[한빛아카데미] 운영체제 책으로 학습한 내용을 정리한 것입니다.

 

* 교착 상태(Deadlock)

- 시스템 자원에 요구가 뒤엉킨 상태로, 두 프로세스가 사용하는 자원(비공유)을 서로 기다리고 있을 때 발생함

- 다른 하나를 완료하지 않으면 프로세스를 더 이상 진행할 수 없고, 진행하지 않으면 프로세스를 완료할 수 없음

-> 따라서 둘 이상의 작업이 중단되고 프로세스들은 서로 사용할 자원을 기다리고만 있게 됨

출처 : https://eun-jeong.tistory.com/16

 

* 프로세스 자원 사용 순서

- 자원 요청 : 프로세스가 필요한 자원을 요청하는데, 해당 자원을 사용할 수 있으면 요청을 즉시 수락하지만 해당 자원을 다른 프로세스가 사용 중이면 요청을 수락할 때까지 기다려야 함

- 자원 사용 : 프로세스가 요청한 자원을 획득하여 사용함. 예를 들어, 요청한 자원이 프린터라면 프로세스는 프린터를 이용하여 출력함

- 자원 해제 : 프로세스가 자원 사용을 마친 후 해당 자원을 되돌려줌(해제) 

 

* 교착 상태 발생 조건

- 상호배제 : 자원을 최소 하나 이상 비공유해야 함. 한 번에 프로세스 하나만 해당 자원을 사용할 수 있어야 하며, 사용 중인 자원을 다른 프로세스가 사용하려면 요청한 자원이 해제될 때 까지 기다려야 함

- 점유와 대기 : 자원을 최소한 하나 정도는 보유하고, 다른 프로세스에 할당된 자원을 얻으려고 기다리는 프로세스가 있어야 함

- 비선점 : 자원은 선점할 수 없음. 자원은 강제로 빼앗을 수 없고, 자원을 점유하고 있는 프로세스가 끝나야 해제됨

- 순환(환형) 대기 : 프로세스 Pn이 Pn+1이 보유한 자원을 각각 얻으려고 기다리는 것

 

* 선점 자원과 비선점 자원

- 선점 자원 : 부작용 없이 소유한 프로세스에서 빼앗아 선점할 수 있는 자원

ex. 메모리, 버퍼, 프로세서 등

- 비선점 자원 : 하나의 프로세스에서 빼앗아 선점할 수 없고, 부작용 없이 다른 프로세스에 할당할 수 없는 자원 

ex. 프린터, CD, 드라이브, 스캐너, 디스크 드라이브, 임계 영역 등

 

* 교착 상태 해결 방법

1) 교착 상태 예방 -> 자원 낭비가 큼

 - 자원의 상호배제 조건 방지 : 여러 프로세스는 프린터를 동시에 공유할 수 없음

 - 점유와 대기 조건 방지 : 프로세스 실행 전 모든 자원을 할당함

 - 비선점 조건 방지 : 자원 점유 중인 프로세스가 다른 자원을 요구할 때 가진 자원을 반납

 - 순환(환형) 대기 조건 방지 : 자원에 고유번호 할당 후 순서대로 자원 요구

 

2) 교착 상태 회피

 - 프로세스 시작 중단 : 현재 수행 중인 모든 프로세스의 최대 자원 요청량과 새로운 프로세스의 최대 요청량을 합한 자원 요청량을 수용할 수 있으면 새로운 프로세스를 수용함 -> 이 경우 프로세스에 최대 요청량이 필요한 최악의 상황임

 - 자원 할당 거부(은행가 알고리즘, Banker's Algorithm) : 프로세스가 요청한 자원을 할당했을 때 교착 상태가 발생할 수 있다면 요청한 자원을 할당하지 않음

 

3) 교착 상태 회복/탐지 

 - 교착 상태 탐지 알고리즘 : 자주 실행 시 시스템 성능 떨어지지만, 교착 상태에 빠진 프로세스를 빨리 발견하여 자원의 유휴 상태를 방지할 수 있음 (자주 실행하지 않으면 반대의 상황 발생)

 - 교착 상태 회복 방법 : 순환 대기에서 벗어난다는 것으로, 단순하게 프로세스를 한 개 이상 중단하는 방법과 교착 상태의 프로세스들에서 자원을 선점하는 방법 존재

 

* 기아 상태(Starvation)

- 특정 프로세스의 우선 순위가 낮아서 원하는 자원을 계속 할당받지 못하는 상태

- 작업이 결코 사용할 수 없는 자원을 계속 기다리는 결과(교착 상태)를 예방하려고 자원을 할당할 때 발생(기다림)하는 결과

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/07   »
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
글 보관함