2014년 5월 17일 토요일

프로세스의 스케줄링과 교착상태

1. 프로세스
관리하는 최소 단위의 작업으로 주기억장치에 저장된 프로그램, 즉 실행 중인 프로그램을 말한다.

2. 스케줄링
시스템은 프로세스에게 CPU를 할당해야 하는데, CPU는 한 순간에 한가지 작업만이 가능하기 때문에 이를 분할하여 여러 프로세스에게 나누어 주어야 한다. 시스템의 성능을 높이기 위해선느 CPU 사용 순서를 결정하기 위한 정책을 스케줄링이라 한다. 스케줄링 종류는 선점형, 비선점형이 있다.

3. 교착상태의 정의
다중 프로그래밍 시스템 하에서 서로 다른 프로세스가 일어날 수 없는 사건을 무한정 기다리거나, 자신의 자원은 놓아주지 않으면서 상대 프로세스의 자원을 요구하는 등 더 이상 진행되지 못하는 상태를 말한다.

4. 교착상태의 4가지 조건
상호배제(Mutual Exclusion) : 프로세스들이 자원을 해제하지 않아, 다른 프로세스들이 자원을 사용할 수 없도록 만든다(자원의 베타적 제어권). 한번에 한 프로세스만이 자원을 사용할 수 있으며, 다른 프로세스가 그 자원을 요구하면, 자원을 요구한 다른 프로세스는 자원이 해제될 때까지 임계구역 밖에서 대기한다.
점유와 대기(Hold & Wait) : 프로세스가 다른 자원을 요구하면서, 자신에게 할당된 자원을 해제하지 않을 때 발생. 최소한 하나의 자원을 점유하고 있는 프로세스가 존재해야 하며, 이 프로세스는 다른 프로세스에 할당된 자원을 추가로 점유하기 위해 대기한다.
비선점(Non-preemption) : 비선점 자원들은 그들을 점유하는 프로세스로부터 벗어나지 못한다(도중에 해제될 수 없다). 단지 프로세스들 자신만이 점유한 자원을 해제할 수 있다. 즉, 프로세스에게 일단 할당된 자원을 모두 사용하기 전에는 그 프로세스로부터 도중에 회수할 수 없다.
환형 대기(Circular Wait) : 프로세스와 자원들이 원형을 이루며, 각 프로세스는 자신에게 할당된 자원을 가지면서 상대방 프로세스의 자원을 상호 요청하는 경우이다.

5. 교착상태의 해결방안
예방, 회피, 탐지, 복구

댓글 없음:

댓글 쓰기