1. 스케쥴링의 개념과 목적
가. 개념
여러 프로세스가 번갈아 사용하는 자원을 어떤 시점에 어떤 프로세스에 할당할지 결정
자원이 프로세서인 경우를 프로세서 스케쥴링이라고 하고, 대부분의 스케쥴링이 프로세서 스케쥴링을 의미
스케쥴링 방법에 따라 프로세서를 할당 받을 프로세스를 결정하므로 스케쥴링이 시스템의 성능에 영향을 미침.
좋은 스케쥴링은 프로세서 효율성을 높이고, 작업(프로세스)의 응답시간을 최소화하여 시스템의 작업 처리 능력을 향상 시킴.
나. 목적
1) 자원 할당의 공정성 보장
2) 단위 시간 당 처리량 최대화
3) 적절한 반환 시간 보장
4) 예측 가능성 보장
5) 오버헤드 최소화
6) 자원 사용의 균형 유지
7) 반환 시간과 자원의 활동 간에 균형 유지
8) 실행 대기 방지
9) 우선순위
10) 서비스 사용 기회 확대
11) 서비스 수 감소 방지
2. 스케쥴링의 결정 기준과 성능 기준
가. 결정 기준
I/O 바운드와 CPU 바운드 프로세스의 적절한 혼용
프로세스의 작업 형태 고려
프로세스 페이지 부재율 고려
프로세스의 자원 선점율 고려
프로세스의 버스트 시간 고려
프로세스의 잔여 실행 시간 고려
나. 성능 기준
1) CPU 이용률
프로세서를 실행 상태로 항상 유지하여 유휴상태가 되지 않도록 함.
2) 처리율
단위 시간 당 완료되는 작업 수가 많도록 짧은 작업을 우선 처리하거나 인터럽트 없이 작업을 실행
3) 반환 시간
작업이 시스템에 맡겨져서 메인 메모리에 들어가기까지의 시간, 준비 큐에 있는 시간, 실행 시간, 입출력 시간 등 작업 제출 후 완료되는 순간까지의 소요 시간이 최소화되도록 일괄 처리 작업을 우선 처리
4) 대기 시간
작업의 실행 시간이나 입출력 시간에는 실제적인 영향을 미치지 못하므로 준비 큐에서 기다리는 시간이 최소화되도록 사용자 수를 제한.
5) 반응 시간
의뢰한 시간에서부터 반응이 시작되는 시간까지의 간격
6) 반환 시간, 대기 시간, 응답 시간의 관계
3. 스케쥴링의 기능별 분류
가. 스케쥴링 수행 단계
1) 작업 스케쥴링: 작업 선택
실제로 시스템 자원을 사용할 작업을 결정하는 작업 스케쥴링
승인 스케쥴링이라고도 함.
작업 스케쥴링에 따라 작업 프로세스들로 나눠 생성 수행 빈도가 적어 장기 스케쥴링에 해당함.
2) 작업 승인과 프로세서 결정 스케쥴링: 사용 권한 부여
프로세서 사용 권한을 부여할 프로세스를 결정하는 작업 승인과 프로세서 할당 스케쥴링
시스템의 오버헤드에 따라 연기할 프로세스를 잠정적으로 결정
1단계 작업 스케쥴링과 3단계 프로세서 할당 스케쥴링의 완충 역할
수행 빈도를 기준으로 하면 중기 스케쥴링에 해당
메모리 사용성도 높이고 작업 효율성도 향상시키는 스와핑(Swapping) 기능의 일부로 이행 가능
3) 프로세서 할당 스케쥴링: 준비 상태의 프로세스에 프로세서 할당(디스패칭)
디스패처(분배기)가 준비 상태에 있는 프로세스 중에서 프로세서를 할당할 프로세스를 결정하는 프로세스 할당 스케쥴링
단기 스케쥴링에 해당
나. 단계별 분류
1) 상위 단계 스케쥴링(Highlevel Scheduling)
작업(Job) 스케쥴링이라고도 불림.
어떤 작업에게 시스템의 자원들을 차지할 수 있도록 할 것인가를 결정
2) 중간 단계 스케쥴링(Intermediate Level Scheduling)
짧은 순간에 프로세스들에 대한 일시적인 활동의 중단 및 재개를 수행
3) 하위 단계 스케쥴링(Low Level Scheduling)
어떤 준비완료 프로세스(Ready process)에게 중앙처리장치를 할당할 것인가를 결정
4) 스케쥴링 단계
5) 프로세스 상태 변화와 스케쥴러의 역할
다. 방법별 분류
1) 선점 스케쥴링
프로세스 하나가 장시간 동안 프로세서의 독점하는 상황을 방지하여 모든 프로세스에 프로세서를 서비스할 기회를 늘림.
따라서 우선순위가 높은 프로세스들이 긴급하게 처리 요청을 할 때 유용함.
실시간 시스템에서 인터럽트를 받아들이지 않으면 결과 예측 불가
대화식 시분할 시스템이나 실시간 시스템에서 빠른 응답시간 유지를 위해 필수
오버헤드가 커질 수 있어 효과적인 이용을 위해서는 메모리에 프로세스가 많은 적재 필요
프로세서를 사용 가능할 때마다 실행할 수 있는 프로세스들이 준비 상태에 있어야 효과적
우선순위라는 개념을 반드시 고려, 우선순위는 의미 있게 부여하지 않으면 효과 없음.
2) 비선점 스케쥴링
실행 시간이 짧은 프로세스(작업)가 실행 시간이 긴 프로세스(작업)를 기다리는 대신 모든 프로세서 공정을 관리
우선순위가 높은 프로세스 중간에 입력해도 대기 중인 프로세스는 영향을 받지 않으므로 응답시간 예측에 용이함.