본문 바로가기

it관련

프로세스의 상태

반응형



프로세스 상태 개념

하나의 프로세스가 시스템 내에 존재하는 동안 그 프로세스는 여러 가지 사건들에 의해 상태 변화를

거치게 된다. 이러한 상태에는 보류 상태, 준비 상태, 실행 상태, 대기 상태, 완료 상태 등이 있다. 단일

프로세서 시스템에서는 단지 하나의 프로세스만이 실행 상태에 있을 수 있고 준비 상태나 대기 상태의

프로세스들은 여러 개가 있을 수 있다. 따라서 준비 상태와 대기 상태에 있는 프로세스들에 대하여 각각

준비 리스크와 대기 리스크를 작성하여 이들을 관리한다.


준비 리스크에 있는 프로세스들은 각각 우선순위를 부여하여 가장 높은 우선순위를 갖는 프로세스가

다음번에 CPU를 할당받을 수 있다. 그러나 대기 리스트에는 우선순위가 없다. 이유는 프로세스가 대기

상태를 벗어나는 것은 미리 정해진 순서에 의하여 이루어지는 것이 아니라 이들 프로세스가 기다리는

어떤 조건이 만족되는 순서에 의하여 준비 상태로 전환되기 때문이다.


프로세스의 상태 전환

사용자에 의해 작업이 시스템에 제출되면 보류 상태로 스풀러에 의해 디스크에 수룩된 후 작업 스케줄러에

의해 실행될 작업을 선정하여 대응되는 프로세스로 만들어 준비 리스크의 맨 뒤에 삽입한다. CPU

스케줄러는 준비 상태에 있는 여러 프로세스 중 실행될 프로세스를 선정하여 CPU를 할당하는데 이를

디스패치라고 하며 프로세스는 준비 상태에서 실행 상태로 전환된다.


운영체제에서는 각각의 프로세스에게 지정된 시간 동안 CPU를 점유할 수 있도록 하며 이 시간을 타임

슬라이스 또는 시간 할당량이라 한다. 타임 슬라이스를 지정하는 이유는 특정 프로세스가 CPU를

계속하여 독점하는 현상을 방지하고 시분할과 다중 프로그래밍을 CPU를 계속하여 독점하는 현상을

방지하고 시분할과 다중 프로그래밍을 원할 하게 하기 위한 것이다. 따라서 CPU를 할당받은 프로세스는

지정된 시간이 초과하게 되면 시스템 클록에 의한 외부 인터럽트가 발생하여 CPU를 양도하고 프로세스

자신은 준비 리스트의 맨 뒤로 들어감으로써 상태 전환이 일어난다. 이때 스케줄러는 준비 상태의 준비

리스크에서 다시 CPU를 할당할 프로세스를 선정하여 할당 시간을 배정한 후 그 프로세스에게 CPU를

디스패치 함으로써 실행 상태로 전환하게 한다. 이와 같이 한 프로세스에서 다른 프로세스로 CPU가

할당 시간이 길면 CPU가 프로세스에게 독점되고 할당 시간이 짧을수록 문맥 교환에 따른 오버헤드가

발생한다.


실행 상태에 있는 프로세스가 지정된 할당 시간을 초과하기 전에 입출력이나 기타 사건이 발생하면

CPU를 스스로 반납하고 입출력이 완료될 때까지 대기 상태로 전환된다. 입출력이 완료되면 대기 상태의

프로세스에게 입출력 완료 사실을 알려 준비 상태로 전환되면 대기 상태의 프로세스에게 입출력 완료

사실을 알려 준비 상태로 전환시켜야 한다. 이러한 여러 가지 프로세스의 상태에 대한 추적과 관리는

트래픽 제어기가 담당한다.

반응형

'it관련' 카테고리의 다른 글

RepRap 프로젝트  (0) 2017.05.13
프로세스의 개요  (0) 2017.05.12
운영체제의 종류  (0) 2017.05.11
운영체제에 대하여  (0) 2017.05.11
분산 처리 시스템의 계층 구조  (0) 2017.05.10