스케줄링
최고의 성능을 내기 위해 자원을 어떤 프로세스에 얼마나 할당하는지 정책을 만드는 것
스케줄링은 한마디로 최대한 평등하게, 효율적으로 자원을 활용하여 작업(프로세스)을 처리하는데 그 목적이 있다.
종류
- Batch System: 가능한 많은 일 수행, 시간보다 처리량이 중요
- Interactive System: 빠른 응답, 적은 대기시간
- Real-Time System: deadline, 기한을 맞추는 것이 중요
선점: 운영체제가 CPU 사용권을 선점할 수 있는 경우. 진행 중인 프로세스가 있을 때, 다른 프로세스로 변경 가능
종류
- 라운드 로빈(Round Robin) 스케줄링
각 프로세스에 Time Quantum을 부여, Time Quantum만큼 수행 후 대기 Queue 맨 뒤로 보내짐.
시분할 방식에 효과적.
TQ가 너무 크면 FCFS와 같아지고, 너무 작으면 Context Switching이 자주 일어나서 Overhead 증가, 적절한 TQ 설정이 중요
*Overhead: 부가적인 작업으로 인해 추가로 더 소요되는 자원, 시간 - SRT(Shortest Remaining Time) 스케줄링
가장 빨리 끝나는 프로세스를 먼저 처리
남은 처리시간이 더 짧은 프로세스가 준비 Queue에 들어오면 바로 교체 - 다단계 큐(multi-level Queue) 스케줄링
프로세스를 여러 종류의 그룹(우선순위 다름)으로 나누어 여러 개의 Queue를 이용(Queue마다 다른 Time Quantum, 스케줄링 부여) *큐간이동 불가 - 다단계 피드백 큐(multi-level feedback Queue) 스케줄링
일단 모든 프로세스는 FCFS로 최상단 준비 Queue에 들어가고 RR처럼 TQ 부여, TQ를 모두 소모한 프로세스는 아래의 Queue로 내려가고 TQ를 다 소모하지 못한 프로세스는 현재 Queue에 남음.
이 특징은 CPU burst와 중요도의 상관관계에서 비롯됨
사용자와 interactive 하지 않은, background 프로세스는 CPU burst가 매우 크다는 특징을 이용.
비선점: 프로세스 종료 또는 IO 등 event가 있을 때까지 실행 보장
종류
- 우선순위(Priority) 스케줄링
각 프로세스에 우선순위를 부여하여 처리 - 기한부(deadline) 스케줄링
프로세스를 명시된 시간 내에 완료되도록 계획 - FIFO==FCFS
대기 Queue에 도착한 순서대로 프로세스를 처리
batch 시스템에 주로 사용 - SJF(Shortest Job First)
소요시간이 짧은 순서대로 처리, 짧은 작업에 유리 - HRN(Highest Response Ratio Next)
SJF의 단점(소요시간이 긴 프로세스가 무한 대기상태)을 보완한 방법.
*우선순위 계산법: (대기시간 + 소요시간) / 소요시간 = 응답 시간
응답 시간이 클수록 우선순위가 높다
반응형
'Computer Science > OS' 카테고리의 다른 글
프로세스 상태 (0) | 2021.11.19 |
---|---|
교착상태(Deadlock) (0) | 2021.08.19 |
프로세스와 스레드 (0) | 2021.08.18 |
운영체제의 역할 (0) | 2021.08.18 |
[OSTEP] 운영체제 개요 (0) | 2021.01.01 |
댓글