CPU를 잘 사용하기 위해 프로세스를 잘 배정하는 것
처리율
과 CPU 이용률
↑오버헤드
, 응답시간
, 반환시간
, 대기시간
, 기아 현상
↓선점 스케줄링: 하나의 프로세스가 CPU를 차지하고 있을 때, 우선순위가 높은 다른 프로세스가 현재 프로세스를 중단시키고 CPU를 점유하는 스케줄링 방식 (I/O or Event wait
)
비선점 스케줄링: 한 프로세스가 CPU를 할당받으면 작업 종료 후 CPU 반환 시까지 다른 프로세스는 CPU 점유가 불가능한 스케줄링 방식 (Interrupt
, Scheduler Dispatch
)
RR (Round Robin)
SRT (Shortest Remaining Time)
다단계 큐 (Multi Level Queue)
다단계 피드백 큐 (Multi Level Feedback Queue)
FCFS (First Come First Served)
SJF (Shortest Job First)
HRN (Hightest Response-ratio Next)
💡 현재 컴퓨터 시스템이 사용하는 방법은 '우선순위 + 라운드 로빈' 방식이다!
New
: 프로세스 생성 중
프로세스를 생성하고 있는 단계로, 커널 공간에 PCB가 만들어진 상태이다.
Ready
: 프로세스가 CPU를 기다리는 상태
프로세스가 메모리에 적재된 상태로, 실행하는데 필요한 자원을 모두 얻은 상태이다.
Running
: 프로세스가 CPU를 할당받아 명령어를 수행 중인 상태
일반적으로 CPU가 하나이기 때문에 여러 프로세스가 동시에 실행되어도 실제로 실행 중인 프로세스는 매 시점 하나뿐이다.
Waiting
: 프로세스가 어떤 사건(event)이 완료되기를 기다리는 상태
프로세스가 실행되다가 할당받은 CPU를 반납하고 특별한 event가 완료되길 기다린다. (ex. I/O 작업)
Terminated
: 프로세스의 실행 종료
프로세스의 실행이 완료되고 할당된 CPU를 반납한다.
승인 (Admitted)
: 프로세스 생성이 가능하여 승인받는 것
스케줄러 디스패치 (Scheduler Dispatch)
: 준비 상태에 있는 프로세스 중 하나를 선택하여 실행시키는 것
인터럽트 (Interrupt)
: 예외, 입출력, 이벤트 등이 발생하여 현재 실행 중인 프로세스를 Ready 상태로 바꾸고, 해당 작업을 먼저 처리하는 것
입출력 또는 이벤트 대기 (I/O or Event wait)
: 실행 중인 프로세스가 입출력이나 이벤트를 처리해야 하는 경우, 입출력/이벤트가 모두 끝날 때까지 Waiting 상태로 만드는 것
입출력 또는 이벤트 완료 (I/O or Event Completion)
: 입출력/이벤트가 끝난 프로세스를 준비 상태로 전환하여 스케줄러에 의해 선택될 수 있도록 만드는 것
https://github.com/haewon-park/csStudy/blob/main/OS/CPU%20%EC%8A%A4%EC%BC%80%EC%A4%84%EB%A7%81.md