반응형
SMALL
이번 학습 주제는 운영체제의 CPU 스케줄링(Scheduling)입니다.
CPU 스케줄링
- 특정 자원을 요청하고 있는 프로세스들을 대상으로 CPU 자원을 할당해 주는 순서를 정하는 일
- CPU의 유휴 시간을 최소화해 CPU 활용을 극대화
- 프로세스 평균 응답 시간을 단축
- 공평한 자원 활용
- Multi-tasking의 효율화
스케줄러의 역할에 따른 구분
- 장기 스케줄러
- 상위 스케줄링(High level scheduling)
- 작업 스케줄링(Job scheduling)
- 어떤 작업이 시스템의 자원들을 차지할 것인지 결정
- 중기 스케줄러
- 어떤 프로세스들이 CPU를 할당받을 것인지 결정
- CPU를 사용하려는 프로세스 간 중재하여 일시 보류 및 재활성화
- 단기 스케줄러
- 하위 스케줄링(Low level scheduling)
- CPU 스케줄링
- 프로세스 스케줄링
- CPU 스케줄러인 Dispatcher에 의해 동작
스케줄러의 점유 방식에 의한 구분
- 선점(Preemptive)
- 프로세스가 CPU 점유 중에도 다른 프로세스가 CPU 점유 가능
- 빠른 응답, 모바일, RTOS
- 대화식 시분할 적합
- 문맥 교환에 따른 Overhead 발생
- Round-robin, SRT, MLQ, MFQ
- 비선점(Non-preemptive)
- 프로세스가 CPU를 해제할 때가지 다른 프로세스는 대기
- 응답 시간 예상 용이
- Batch Process 적합
- 프로세스에 대한 요구를 공정하게 처리
- 짧은 작업에도 장기간 대기하는 경우가 발생
- FCFS, SJF, HRN, 우선순위, 기한부, MFQ
스케줄링 기법
- FCFS(First Come First Service)
- 대기 큐에 먼저 들어온 잡(Job)을 먼저 수행
- SJF(Shortest Job First)
- 수행 시간이 가장 짧다고 판단된 것을 먼저 수행
- HRN(Highest Response-ratio Next)
- 우선 순위를 계산하여 그 숫자가 가장 큰 것부터 작은 순으로 우선 순위가 부여되며, 우선순위가 높은 것을 먼저 수행
- Round-robin
- FCFS에 의해 프로세스들을 수행하고 같은 크기의 CPU 시간(Time Slice)을 할당
- 할당된 시간 동안 실행이 완료되지 않으면 다음 프로세스에게 CPU를 넘겨주고 대기 큐의 가장 뒤로 배치
- SRT(Shortest Remaining Time)
- SJF에 선점 방식을 도입한 것으로 처리가 완료되는 데까지 가장 짧은 시간이 소요된다고 판단되는 프로세스를 먼저 수행
- MLQ(Multi Level Queue)
- 여러 종류의 그룹으로 나누어 여러 개의 큐를 이용하는 것
- 각 큐의 독자적인 스케줄링 알고리즘에 따라서 CPU를 할당받는 방법
- MFQ(Multi level Feedback Queue)
- 새로운 프로그램이 들어오면 높은 우선순위를 할당해 주어 단계 1에서 즉시 수행하고 점차 낮은 우선순위를 부여하여 단계가 n쯤 되는 나중에는 그 작업이 완료될 때까지 Round-robin으로 순환하는 방식
- 비선점 기법인 우선순위 Queue와 선점 기법인 Round-robin을 모두 사용하므로 Hybrid 스케줄링 기법임
이번 학습은 여기서 마무리하겠습니다. 그럼 이만-_-
반응형
LIST
'Operating System' 카테고리의 다른 글
[Operating System] 운영체제의 병행성 제어(Concurrency Control) (0) | 2021.03.31 |
---|---|
[Operating System] 운영체제(OS) 기본 (0) | 2021.03.31 |