프로세스 상태 ('생준 실대완'으로 암기!)
- 하나의 프로세스는 여러가지 이벤트에 의해, 서로 구분되는 상태 변화를 겪는다.
- 생성, 준비, 실행, 대기, 완료 상태를 가질 수 있다.
프로세스 상태 |
설명 |
생성(Create) 상태 |
- 사용자에 의해 프로세스가 생성된 상태 |
준비(Ready) 상태 |
- CPU를 할당받을 수 있는 상태 - 준비 리스트(Ready List) : 우선순위를 부여하여 가장 높은 우선순위를 갖는 프로세스가 다음 순서에 CPU를 할당 받음. |
실행(Running) 상태 |
- 프로세스가 CPU를 할당받아, 동작중인 상태 |
대기(Waiting) 상태 |
- 프로세스 실행 중, 입출력 처리 등으로 인해 CPU를 양도하고, 입출력 처리가 완료까지 대기 리스트에서 기다리는 상태. - 대기 리스트(Waiting List) : 우선순위가 존재하지 않음 |
완료(Complete) 상태 |
- 프로세스가 CPU를 할당받아 주어진 시간 내에 완전히 수행을 종료한 상태 |
프로세스 상태 전이 ('디타 블웨스'로 암기!)
- 하나의 작업이 컴퓨터 시스템에 입력되어 완료되기까지 프로세스의 상태가 준비, 실행 및 대기상태로 변하는 활동
- 활동 상태란, 프로세스가 기억장치를 할당받은 상태이다.
- 지연 상태란, 프로세스가 기억장치를 할당받지 못한 상태이다.
프로세스 상태 전이 |
설명 |
디스패치 (Dispatch) |
- 상태 전이 : 준비 -> 실행 - 준비 상태에 있는 여러 프로세스(Ready List) 중, 실행될 프로세스를 선정(Scheduling)하여 CPU 할당(Dispatching) => 문맥교환 발생! (Context switching) cf) 문맥교환 : CPU가 현재 실행하고 있는 프로세스의 문맥 상태를 프로세스 제어블록(PCB)에 저장하고, 다음 프로세스의 PCB로부터 문맥을 복원하는 작업. |
타이머 런 아웃 (Timer run out) |
- 상태 전이 : 실행 -> 준비 - CPU를 할당받은 프로세스는 지정된 시간이 초과되면, 스케줄러에 의해 PCB 저장됨 - CPU 반납 후, 다시 준비 상태로 전이됨 - 타임 슬라이스(Time Slice) 만료, 선점(Preemption) 시 타임아웃 발생 |
블록 (Block) |
- 상태 전이 : 실행 -> 대기 - 실행 상태에 있는 프로세스가 지정된 할당시간을 초과하기 전에, 입출력이나 기타 사건이 발생(block)하면 CPU 스스로 반납 -> 입출력이 완료될 때 까지 대기 상태로 전이 - 즉시 실행 불가능한 시스템 콜, I/O 작업 시작, 프로세스 간 통신 시 Block 발생 |
웨이크 업 (Wake-up) |
- 상태 전이 : 대기 -> 준비 - 입출력이 종료되는 순간에 대기 상태의 프로세스에게 입출력 종료 사실을 wait & signal 등에 의해 알려주고, 준비 상태로 전이 |
Swap-in |
- 프로세스에게 다시 기억장치가 할당될 경우 - 상태 전이 : 지연준비 상태, 지연대기 상태 -> 준비 상태, 대기 상태 |
Swap-out |
- 프로세스가 기억장치를 잃은 경우 - 상태 전이 : 준비 상태, 대기 상태 -> 지연준비 상태, 지연대기 상태 |
'📁 정보처리기사' 카테고리의 다른 글
[운영체제/OS] 프로세스 스케줄링 알고리즘 (0) | 2021.04.04 |
---|---|
[운영체제/OS] 프로세스 스케줄링 (0) | 2021.04.03 |
[운영체제/OS] 메모리 관리 기법 (0) | 2021.04.03 |
[운영체제/OS] 운영체제 핵심 기능 (0) | 2021.04.03 |
[운영체제/OS] 운영체제의 개념과 종류 (0) | 2021.04.02 |