먼저 프로세스 상태를 관리하는 스케줄러에 대해 정리해야겠다.
스케줄러는 크게 3가지로 장기, 중기, 단기 스케쥴러가 있다.
- 장기 스케줄러(Job Scheduler): 대용량 메모리(디스크 등)에 있는 적재되어있는 프로세스들 중 일부 프로세스를 골라 메모리를 할당하여 바로 실행시킬 수 있는 상태로 변화시킨다.
*프로세스 상태 new -> ready
- 중기 스케줄러(Swapper): 메모리 여유 공간의 확보를 위해 일부 프로세스에 할당된 메모리를 해제시킨다.
*프로세스 상태 ready -> suspended
- 단기 스케줄러(CPU Scheduler): Ready Queue에 있는 프로세스를 실행시키고, 실행 중인 프로세스에 I/O나 인터럽트 발생 시 잠시 대기 상태로 변경하고 처리가 완료되면 다시 준비 상태로 변화시킨다.
*프로세스 상태 ready -> running / running -> waiting / waiting -> ready
프로세스 상태
new: 프로세스 생성되어 대용량 메모리(disk 등)에 존재하는 상태. PCB가 생성되는 단계
ready: 프로세스가 메모리에 적재된 상태. 프로세스가 CPU 할당을 기다리는 단계
running: 프로세스가 CPU를 할당받아 수행중인 상태.
blocked: 프로세스가 CPU를 할당받아도 바로 수행이 불가능한 상태. I/O 등의 작업을 처리 중.
terminated: 프로세스가 완료되어 종료된 상태.
suspended: 중기 스케줄러에 의해 메모리가 강제로 해제된 상태. 직접 다시 ready 상태로 변경시켜줘야 한다.
'Computer Science > OS' 카테고리의 다른 글
교착상태(Deadlock) (0) | 2021.08.19 |
---|---|
CPU 스케줄링 (0) | 2021.08.18 |
프로세스와 스레드 (0) | 2021.08.18 |
운영체제의 역할 (0) | 2021.08.18 |
[OSTEP] 운영체제 개요 (0) | 2021.01.01 |
댓글