교착상태(DeadLock), 자원의 분류

OS/Theory 2016. 4. 13. 10:00

<교착상태(DeadLock)>

자원이 한정적인 상황에서 두 개 이상의 프로세스가 각자 먼저 확보한 자원을 가진 채 상대방의 자원을 필요로 할 경우, 외부로부터의 조치가 없는 한 이들은 아무 일도 못하고 계속 기다려야 할 것이다. 이러한 상황을 컴퓨터 시스템에서는 교착 상태(Deadlock)라고 한다.

다시말해, 둘 이상의 프로세스가 각자가 가지고 있던 자원을 보유한 채로 외부적 조치가 없는 한 영원히 그 상태에서 기다리고 있는 상황

 

[교착 상태의 근본 원인]

- 시스템이 가지고 있는 한정적인 자원보다 사용하고자 하는 프로세스들의 요청이 더 많기 때문

 

[교착 상태의 문제점]

- 해당 프로세스들이 더 이상 실행되지 못하여 사용자들에게 응답해 주지 못한다는 점

- 보유된 자원들이 교착 상태에서 벗어나기 전까지는 전혀 활용되지 못한다는 점=>결국 시스템의 성능 저하로 나타날 수밖에 없음

 


<자원이란?>

교착 상태를 일으키는 원인이 자원(Resource).

운영체제의 중요한 임무 중의 하나가 자원의 관리.

- 하드웨어 자원 : 하드디스크, 테이프 드라이브, 메모리 등

- 소프트웨어 자원 : 데이터나 메시지 등

 


[선점 가능성에 따른 분류]

- 선점 가능(Preemptible) 자원 : CPU나 메모리와 같은 자원처럼 한 프로세스에 의해 사용 도중 선점(Preemption)되어 다른 프로세스에게 할당(Allocation)해 주었다가 이 후 다시 원래의 프로세스에게 돌려주어도 되는 자원

- 선점 불가능한(Nonpreemptible) 자원 : 선점이 될 경우 자원을 뺏긴 프로세스는 정상적인 진행을 포기해야 하는 불이익을 받게 되는 경우의 자원

 


[자원이 사용되어지는 방식에 따른 분류]

한 프로세스에게 할당된 자원을 동시에 다른 프로세스가 할당받아 같이 사용할 수 있는지의 여부에 따라 공유 가능(Sharable) 자원과 배타적 사용(Exclusive Use) 자원으로 분류

- 배타적 사용 자원 : CPU, 메모리, 테이프, 버퍼(Buffer), 키보드와 모니터 등

- 공유 가능 자원 : 공유 가능한 프로그램(시스템 프로그램이나 유틸리티 프로그램 등)과 공유 데이터 등


 

[자원의 속성에 따른 분류]

먼저 할당된 자원이 사용 후 반납(Release)되었을 때 자원 자체는 계속 존재하여 또 다른 프로세스에게 할당이 가능하다면 그 자원은 순차적 재사용 가능(Serially Reusable) 자원 - 시스템에서 프로세스들이 아무리 사용해도 없어지지 않고 영구히 존재하는 자원으로 CPU, 메모리, 테이프, 하드디스크, 버퍼,프로그램 등

사용 후 사라지는 자원은 소모성(Consumable) 자원 - 일시적으로 생성되었다가 사용된 후 없어지는 시그널(Signal)이나 메시지 등




Copyright2014 By 휴먼사이언스

posted by 경원구