CPU Scheduling
- 단계별 처리 스케줄링
- 장기 스케줄링 Long-Term Scheduling
- 어느 프로그램을 먼저 적재할 것인가 하는 수준의 스케줄링
- 잡 스케줄링이라고도 함
- 중기 스케줄링 Medium-Term Scheduling
- 메모리에 적재된 프로그램들 중, 상당기간 동안 처리를 보류하여 자원을 확보하는 차원의 스케줄링
- 대상이 된 프로세스들은 잠시 디스크로 이동하여 기다림 (스와핑)
- 단기 스케줄링 Short-Term Scheduling
- 실행 준비가 된 프로세스들 중, 어느 프로세스에게 CPU를 보낼 것인가 하는 수준의 스케줄링
- 보통 CPU 스케줄링이라 함은 이 수준을 말함 (이후 통일)
- 장기 스케줄링 Long-Term Scheduling
@0411
CPU 스케줄링 전략의 목표 및 기준
- 사용자 관점에서의 기준 (평가 기준)
- 응답 시간 Response Time
- 사용자 입력에 대하여 출력이 이루어질 때까지 소요되는 시간
- 동일한 조건에서 CPU 스케줄링 방법에 따라 달라질 것임
- 반환시간 Turnaround Time
- 프로그램이 제출(혹은 적재)된 후 최종 결과물을 얻을 때까지의 소요시간
- 총 처리시간이라고도 함
- 대기 시간 Waiting Time
- CPU가 주어질 때까지 기다리는 시간들의 합
- CPU는 자주 조금씩 주어짐
- 지표 분석
- 사용자들은 세 가지 지표가 모두 짧아지기를 희망
- 응답 시간 Response Time
- 시스템 관점에서의 기준
- CPU 이용률 CPU Utilization
- CPU가 순수하게 사용자 프로그램을 실행하는데 소요한 시간의 비율
- 쉬는 시간이나 시스템 자체의 내부 처리를 위해 보낸 시간이 많으면 좋지 않음
- @ 문맥 교체 등
- 처리량 Throughput
- 전체적으로 단위 시간당 처리하는 프로그램의 수
- 지표 분석
- 시스템 (컴퓨터 운영자) 입장에서는 두 지표 모두 높이기를 희망
- CPU 이용률 CPU Utilization
- @ ~ 사용자 관점과 시스템 과점의 두 입장이 상충됨
둘 다 잡을 수 없음 = 하나는 조금 희생해야 한다
- 기타
- 가용성 Availability
- 전체 시간 (서비스, 고장, 유지보수, 점검 등) 대비 서비스 시간의 비율 (신뢰성, 가동율)
- 특정 자원에 대하여 즉시 접근할 수 있는 정도 (즉시 접근 가능 빈도 비율)
- 가용성 Availability
CPU 스케줄링이 이루어지는 시기
- 프로세스가 입출력을 요구할 때
- 진행 중이던프로세스가 입출력을 요구하면, OS는 입출력 진행중인 동안 마냥 기다릴 수 없으므로 다른 프로세스를 선택해서 CPU를 보내야한다.← 비선점 CPU 스케줄링
- 프로세스가 종료를 요구할 때
- 프로그램의 진행 절차상 모든 처리가 끝나 종료를 선언하면, OS는 다른 프로세스를 선택하여 CPU를 보내야 한다 ← 비선점 CPU 스케줄링
- 높은 우선 순위의 프로세스가 나타났을 때
- 높은 우선순위의 프로세스가 입출력을 마치고 준비상태로 전환되면, OS는 현재 실행중인 프로세스를 보류하고, 더 높은 우선 순위의 프로세스에게 CPU를 보낼 수 있다. ← 선점 CPU 스케줄링
- 실행시간이 초과되었을 때
- 현재 실행 중인 프로세스에게 허용된 최대 실행 시간이 초과하면, CPU는 다른 프로세스 ~여 CPU를 보낼 수 있다. ← 선점 CPU 스케줄링
- 선입 선처리 FCFS First-Come First-Served 스케줄링
- 개념
- 준비 대기열 Ready Queue 에 도착한 순서대로 처리
- 입출력이나 종료 시까지 계속 실행 ← 비선점형
- 분석
- 개념
- 최단 작업 우선 SJF Shortest Job First 스케줄링
- 개념
- 현재 준비 대기열 Ready Queue에 도착한 프로세스들 중, CPU 버스트 CPU Burst가 짧은 것을 선택하여 실행
- SPN Shortest Process Next 라고도 함
- 즉, 입출력이나 종료 시까지 계속 실행 ← 비선점형
- 분석
- 기아 상태 현상
- CPU 버스트는 어떻게 계산?
- 예측 하는 방법론이 있다 (수업에서 다루지는 않음)
- 개념
@0413
- 최단 잔여 시간 우선 SRTF Shortest Remaining Time First 스케줄링
- 개념
- 실행 중 새로운 프로세스가 도착하면, 현 프로세스의 남은 시간과 새 프로세스의 CPU 버스트 시간을 비교하여 새 프로세스가 더 짧으면 교체 ← 선점형
- 분석
- 평균 대기 시간과 평균 응답 시간을 더욱 개선 → CPU 이용률 저하 현상 발생 억제
- 반면 기아 상태 발생 가능성 더 높음
- 개념
- 최고 응답률 우선 HRRF Highest Response Ratio First 스케줄링
- HRN Highest Response Ratio Next
- 응답률
- CPU 버스트 대비 대기열에서 기다린 정도의 검증 (CPU 버스트가 크면 그만큼 많이 기다려도 무바앟다는 취지)
- 응답률 = (준비큐 대기시간 + CPU버스트 시간) / (CPU 버스트시간) = 1 + (준비큐시간 / CPU 버스트 시간)
- 선점 혹은 비선점 운영 가능
- 개념
- SJF나 SRTF의 기아 Starvation 현상을 해결
- 라운드 로빈 RR Round Robin 스케줄링
- 개념
- 모든 프로세스에게 동일한 최대 실행 허용 시간 (타임 퀀텀 혹은 타임 슬라이스)를 부여하고, 그 시간만큼씩 공평하게 조금씩 CPU를 보냄 ← 선점형
- 분석
- 타임 퀀텀에 따른 문맥 교환 (Context Switching)
- 부담 및 평균대기 시간
- 개념
- 다단계 큐 MQ Multi-Level Queue
- 개념
- 모든 프로세스에게 획일적인 스케줄링 전략을 적용하지 않고, 프로세스들을 특성별로 그룹화하여 각각 독립된 정책을 사용
- 예 -프로세스를 중요도 등에 따라 크게 그룹화하여 별도의 큐 관리
- 계산 위주의 프로세스들은 타임 퀀텀을 길게 주고, 우선 순위는 낮게 부여
- 입출력 위추 프로세서들은 반대로
- 분석
- 더욱 정교한 전략을 적용하기 위해 동일 준비 큐 프로세스들 간에는 다른 스케줄링 전략이 적용
- 개념
- 다단계 피드백 큐 MFQ Multi-level Feedback Queue
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.