CPU 를 잘 사용하기 위해 프로세스를 잘 배정하기
Batch System
: 가능하면 많은 일을 수행. 시간(time) 보단 처리량(throughout)이 중요Interactive System
: 빠른 응답 시간. 적은 대기 시간.Real-time System
: 기한(deadline) 맞추기.Interrupt
, I/O or Event Completion
, I/O or Event Wait
, Exit
I/O or Event Wait
, Exit
프로세스의 상태 전이
✓ 승인 (Admitted) : 프로세스 생성이 가능하여 승인됨.
✓ 스케줄러 디스패치 (Scheduler Dispatch) : 준비 상태에 있는 프로세스 중 하나를 선택하여 실행시키는 것.
✓ 인터럽트 (Interrupt) : 예외, 입출력, 이벤트 등이 발생하여 현재 실행 중인 프로세스를 준비 상태로 바꾸고, 해당 작업을 먼저 처리하는 것.
✓ 입출력 또는 이벤트 대기 (I/O or Event wait) : 실행 중인 프로세스가 입출력이나 이벤트를 처리해야 하는 경우, 입출력/이벤트가 모두 끝날 때까지 대기 상태로 만드는 것.
✓ 입출력 또는 이벤트 완료 (I/O or Event Completion) : 입출력/이벤트가 끝난 프로세스를 준비 상태로 전환하여 스케줄러에 의해 선택될 수 있도록 만드는 것.
비선점 스케줄링
선점 스케줄링
Priority Scheduling
Round Robin
Time Quantum
만큼 CPU를 할달 받음Time Quantum
or Time Slice
: 실행의 최소 단위 시간Time Quantum
)이 크면 FCFS와 같게 되고, 작으면 문맥 교환 (Context Switching) 잦아져서 오버헤드 증가Multilevel-Queue (다단계 큐)
작업들을 여러 종류의 그룹으로 나누어 여러 개의 큐를 이용하는 기법
우선순위가 낮은 큐들이 실행 못하는 걸 방지하고자 각 큐마다 다른 Time Quantum
을 설정 해주는 방식 사용
우선순위가 높은 큐는 작은 Time Quantum
할당. 우선순위가 낮은 큐는 큰 Time Quantum
할당.
Multilevel-Feedback-Queue (다단계 피드백 큐)
Time Quantum
을 다 채운 프로세스는 밑으로 내려가고 자신의 Time Quantum
을 다 채우지 못한 프로세스는 원래 큐 그대로