370 likes | 629 Views
제 4 장 Process Scheduling. Basic Concepts Scheduling Criteria Scheduling Algorithm Multiple-Processor Scheduling Real-Time Scheduling Algorithm Evaluation. Basic Concepts. CPU-I/O Burst Cycle CPU Scheduler Preemptive Scheduling Dispatcher. 다중프로그래밍 (multiprogramming)
E N D
Basic Concepts • Scheduling Criteria • Scheduling Algorithm • Multiple-Processor Scheduling • Real-Time Scheduling • Algorithm Evaluation
Basic Concepts • CPU-I/O Burst Cycle • CPU Scheduler • Preemptive Scheduling • Dispatcher
다중프로그래밍(multiprogramming) • 한 개 이상의 프로세서를 가진 컴퓨터 시스템에서 여러 개의 프로세스들을 동시에 운영하는 기법 • 자원 관리 • 시간 분할 (time sharing) 기법 • 하나의 자원을 여러 프로세스들이 번갈아 사용하는 기법 • 대표적인 대상 : 프로세서 • 프로세스 스케줄링 (process scheduling) 기법 (프로세스들에게 프로세서 자원을 할당해 주는 일) • 공간 분할 (space sharing) 기법 • 하나의 자원을 분할하여 동시에 같이 사용하는 기법 • 대표적인 대상 : 주기억장치
CPU-I/O Burst Cycle • 프로세스 실행 • CPU 실행과 입출력 대기상태의 순환 • 종료: 실행종료를 요구하는 CPU 버스트로 끝남 • CPU 버스트의 수행시간 • 지수형 또는 초지수형(hyper-exponential) 형태 • 입출력 중심작업 • 많은 수의 아주 짧은 CPU 버스트 존재 • CPU 중심작업 • 적은 수의 긴 CPU 버스트 존재 • CPU 스케줄링 알고리즘 선택에 중요한 기준
CPU Scheduler • 단기 스케줄링 (short-term scheduling) • 주기억 장치 내의 준비상태의 작업들 중에서 실행할 작업을 선택하고 CPU를 배당 • 준비상태 큐 • 꼭 Firest-In Firtst-Out일 필요는 없음 • 모든 프로세스들은 준비상태 큐에서 CPU를 사용하여 실행되도록 줄서서 기다림
스케줄링 기법에 영향을 주는 정책 • 선점/비선점 정책 • 비선점 스케줄링(nonpreemptive scheduling) • 프로세스가 할당 받은 자원을 스스로 반납할 때까지 사용 • no preemption • 장점 (프로세스의 종료 시간에 대해 비교적 정확한 예측 가능) • 단점 (일시적으로 우선순위가 지켜지지 않을 수 있음) (평균 응답 시간 길어질 수도 있음) • 선점 스케줄링(preemptive scheduling) • 대화형의 시분할 시스템, 실시간 시스템 등에 적합 • 문맥 교환을 위한 오버헤드 증가
Dispatcher • CPU를 프로세스들 사이에서 switching 시킴 • 일정시간(time slice, time quantum)이 지나면 프로세스에게 인터럽트(interrupt) 발생 • 인터럽트가 발생하면 CPU는 현재 진행중인 작업중단 • 인터럽트 핸들러(interrupt handler)를 실행시킴 • *인터럽트 핸들러는 dispatcher의 일부분 • 진행중인 프로세스에 선점(preemption) • 스케쥴러에게 프로세스 테이블 수정을 요청 • 다른 프로세스를 프로세스 테이블에서 선택하여 CPU에게 실행을 의뢰
Scheduling Criteria • CPU 사용률 • CPU는 가능한 한 놀리지 않아야 함 • 처리율 • 단위 시간당 완료되는 작업 수 • 반환시간 • 작업이 시스템에 맡겨져서 모든 일을 마치고 시스템을 빠져나오는 데 소요되는 시간 • 대기시간 • 준비 상태 큐에서 기다리는 시간 • 반응시간 • 어떤 요구를 의뢰한 시간에서 반응이 시작되는 시간까지의 간격
스케줄링의 목적 • 프로세스 스케줄링의 목적 • 시스템 성능 향상 • 대표적인 시스템 성능 지표 (performance index) 응답 시간 (response time) • 시스템이 사용자의 요구에 응답하는 시간 작업 처리량 (throughput) • 단위 시간 내의 프로세스 처리량 자원 활용도 (utilization) • 주어진 기간 동안의 특정 자원 정도 • OS는 해당 시스템이 사용되는 응용 도메인에 맞는 성능 지표를 고려하여 스케줄링 기법을 선택하게 됨
일반 시스템의 OS에서 고려하게 되는 성능 지표 • 공평성(fairness) • 작업 처리량(throughput) • 일괄 처리 시스템에서 주로 사용 • 평균 응답 시간(mean response time) • 대화형 시스템에서 주로 사용 • 예측성(predictability) • 자원 활용도(resource utilization) • 무기한 연기 방지(no indefinite postponement) • 무기한 연기 • 스케줄링 기법의 편향성에 의해 발생하는 현상 • 특정 프로세스가 계속해서 자원을 사용하지 못하고 무기한 대기 • 에이징(aging) 기법 사용 • 대기 시간이 경과할수록 대기하는 프로세스의 우선순위 높여줌 • 기타
프로세스 스케줄링의 단계 Short-term scheduling terminated exit running dispatch (schedule) sleep (block) timerrunout (preemption) ready asleep wakeup swap-in (resume) swap-in (resume) created swap-out (suspend) swap-out (suspend) Medium-term scheduling suspended ready suspended blocked Long-term scheduling wakeup
Scheduling Algorithms • First-Come First-served Scheduling • Shortest-Job-First Scheduling • Priority Scheduling • Round-Robin Scheduling • Multilevel Queue Scheduling • Multilevel Feedback queue Scheduling • HRN Scheduling • Multi processor Scheduling
FIFO(First-In-First-Out) 스케줄링 • nonpreemptive scheduling • 가장 간단 • 준비 상태에 먼저 도착한 프로세스에게 먼저 프로세서 할당 • 자원의 효율성 높음 • 일괄 처리 시스템 등에 적합 • 대화형 시스템에 부적합 • 단점 • 프로세서를 장시간 독점하는 경우 다른 프로세스들이 오랜 시간 기다려야 함 • 평균 응답 시간이 길어질 수 있음. • Convoy effect • 여러 프로세스들이 하나의 큰 프로세스가 사용을 끝내기를 기다리고 있는 것
FIFO 스케줄링 개념 Processor completion P4 P3 P2 P1
FIFO 스케줄링의 예 Process ID Arrival time Service time (Processing time) P1 P2 P3 P4 P5 0 1 3 5 6 3 7 2 5 3 P1 P2 P3 P4 P5 P1 P2 P3 P4 P5 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 P1 P2 P3 P4 P5
RR (Round-Robin) 스케줄링 • preemptive scheduling • 준비 상태에 먼저 도착한 프로세스에게 먼저 프로세서 할당함 • 각 프로세스들에게 시간 할당량 (time quantum) 지정 • time quantum을 소모한 프로세스는 프로세서를 반납하고 준비상태로 전이 • 한 프로세스에 대한 프로세서 독점 방지 • 프로세서 선점에 따른 문맥 교환 오버헤드 증가 • 대화형 시스템, 시분할 시스템에 적합 • time quantum의 결정이 시스템 성능에 영향을 줌 • 상황교환시간의 영향 • 규정시간량을 상황교환에 소요되는 시간보다 충분희 크게 고려
completion Processor P4 P3 P2 P1 timerrunout RR 스케줄링 개념
RR 스케줄링의 예 Process ID Arrival time Service time (Processing time) P1 P2 P3 P4 P5 0 1 3 5 6 3 7 2 5 3 P1 P2 P3 P4 P5 P1 P2 P1 P3 P2 P4 P5 P2 P4 P5 P2 P4 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 P1 P3 P5 P2 P4
SJF(Shortest Job First) 스케줄링 • 총 실행 시간이 가장 짧은 프로세스부터 스케줄링 하는 기법 • nonpreemptive scheduling • 장점 • 평균 대기 시간(waiting time) 최소화 • 시스템 내의 대기 프로세스 수를 최소화 • 많은 프로세스들에게 빠른 응답 시간 제공 • 준비 큐의 크기 감소, 저장 공간 오버헤드 줄임 • 단점 • 무기한 연기(indefinite postponement) 현상 발생 가능 • 실행 시간이 긴 프로세스들의 무한 대기 가능 • 에이징(aging) 기법으로 해결 가능 • 프로세스 생성시 총 실행 시간에 대한 정확한 계산 불가능 • 각 프로세스의 실행 시간에 대한 추정(estimation) 필요
P1 P2 P3 P4 P5 P1 P3 P4 P5 P2 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 P1 P3 P4 P5 P2 SJF 스케줄링의 예 Process ID Arrival time Service time (Processing time) P1 P2 P3 P4 P5 0 1 3 5 6 3 7 2 5 3
SRTN (Shortest-Remaining-Time-Next) 스케줄링 • SJF 스케줄링의 변형 • 서비스시간이 가장 적게 남은 프로세스에게 먼저 프로세서 할당 • preemptive scheduling • 프로세스 실행 중 남은 실행 시간이 더 적은 프로세스가 준비 상태에 들어올 경우 선점됨 • 단점 • 프로세스 생성시 총 실행 시간 추정 작업 필요 • 잔여 실행 시간에 대한 계속적인 계산 오버헤드 증가 • 실행 시간이 긴 프로세스들의 평균 응답 시간 길어짐 • 잦은 선점으로 문맥 교환 오버헤드 증대 • 구현 및 사용이 비현실적임. • 상기 단점들의 해결 및 보완이 가능하다면 효율적으로 사용 가능
Priority Scheduling • CPU는 우선순위가 가장 높은 프로세스에 할당, 동일 우성순위는 FCFS로 처리 • SJF는 일반적인 우선순위 스케줄링 알고리즘 • 우선순위 • 내부: 제한시간, 기억장소 요구, 사용화일 수, 평균 BURST에 대 한 평균 입출력 버스트의 비율 • 외부: 사용료를 많이 낸 사용자 • 단점 • 무한봉쇄(indefinite blocking)/ 기아(starvation) • 우선순위가 낮은 작업은 준비상태에서 무한정 CPU를 기다림 • 해결책: aging • 어떤 작업이 시스템에 머무르는 시간 증가에 따라 우선 순위를 높임
Multilevel Queue Scheduling • 각 작업들은 서로 다른 큐로 분류될 수 있음 • 준비 상태 큐를 여러 종류로 분할, 작업들은 어느 한 큐에 고정적으로 지정 • 기억장소 크기, 작업의 유형에 따라 분류됨 • 예)서로 다른 큐에 지정 • foreground(대화형 작업): 라운드 로빈 스케줄링 • background(일괄 처리형 작업): FCFS 스케줄링 • 고정 우선순위 선점(preemptive) 스케줄링 • 대화형 작업은 일괄처리형 작업보다 선점 • 큐들간의 시간을 나누어 가짐 • 대화형 작업: CPU를 80%이용 • 일괄처리 작업: CPU를 20% 이용
다단계 피드백 큐(MFQ) • Multi-level feedback queue scheduling • 프로세스들에 대한 사전 정보가 전혀 없는 경우 • 준비 상태의 큐를 여러 개 두어 스케줄링 • 작업이 큐 사이를 이동할 수 있음 • MFQ 스케줄링 기법의 기본 목적 • 짧은 실행 시간을 요구하는 프로세스 선호 • 입출력 위주의 프로세스 선호 • 신속한 프로세스의 성격 분석으로 적응성 있게 스케줄링함 • 피드백(Feedback) • 현재까지 프로세서를 사용한 시간을 근거로 스케줄링함 • 다단계 피드백 큐 (multi-level feedback queue) • 준비 큐를 여러 개 두어 준비 상태로 들어오는 프로세스들이 디스패치될 당시와 다른 큐로 진입할 수 있게 하는 경우
MFQ 스케줄링 기법 • dynamic priority 사용 • preemptive scheduling • I/O-bound process들을 선호 • 실행 시간이 짧은 프로세스들 선호 • 장점 • 매우 적응성 있는 기법임 • 프로세스들에 대한 사전 정보 없이도 SJF, SRTN, 등의 효과 보임
MFQ 스케줄링 개념 RQ0 higher priority RQ1 Processor completion RQ2 RQn lower priority timerrunout
Example of Multilevel Feedback Queue • Three queues: • Q0 – time quantum 8 milliseconds • Q1 – time quantum 16 milliseconds • Q2 – FCFS • Scheduling • A new job enters queue Q0which is servedFCFS. When it gains CPU, job receives 8 milliseconds. If it does not finish in 8 milliseconds, job is moved to queue Q1. • At Q1 job is again served FCFS and receives 16 additional milliseconds. If it still does not complete, it is preempted and moved to queue Q2.
MFQ 스케줄링 기법의 변형 • MFQ 스케줄링 기법의 문제점 • 시스템 부하 증가 • 우선 순위가 낮아진 프로세스의 무기한연기 현상 발생 가능 • MFQ 스케줄링의 변형 • 각 준비 큐마다 시간 할당량을 다르게 배정 • 디스패치된 프로세스는 해당 큐에 할당된 시간 할당량 배정 받음 - 프로세스의 특성에 맞는 형태로 시스템 운영 가능 • 입출력 위주 프로세스들을 상위 단계의 큐로 이동, 우선 순위 높임 - 프로세스가 블럭될 때 상위의 준비 큐로 진입하게 함 - 시스템 전체의 평균 응답 시간 줄임 - 입출력 작업 분산 시킴 • 대기 시간이 지정된 시간을 초과한 프로세스들을 상위 큐로 이동 - 에이징 (aging) 기법 - 특정 프로세스가 오랜 시간 준비 큐에서 대기하는 것 방지
HRN Scheduling • Brinch Hansen이 SJF 스케줄링 기법의 약점인 긴 작업과 짧은 작업의 지나친 불평 등을 보완한 스케줄링 기법. • 우선순위 = (대기시간 + 서비스를 받을 시간) / 서비스 받을 시간 • Nonpreemptive scheduling • 서비스 받을 시간이 분모에 있으므로 짧은 작업의 우선 순위가 높아 진다. • 대기시간이 분자에 있으므로 긴 작업도 대기시간이 큰 경우에 우선 순위가 높아짐.
Multiple-Processor Scheduling • CPU스케줄링은 더욱 복잡해짐 • 처리기의 유형 • 동형(homogeneous system) • 처리기가 같은 종류 • 부하 분담(load sharing) 문제 • 특정 큐만 활성화되는 것을 막기 위해 전체적인 준비 상태 큐를 두어 모든 작업은 이 큐를 통해 각 처리기 큐로 가게 됨 • 이형(heterogeneous system) • 독자적인 큐와 독자적인 알고리즘을 갖음 • 스케줄링 방법 • 각 처리기는 공통의 준비 상태 큐에서 실행시킬 한 프로세스를 선택 • 한 처리기를 다른 모든 처리기의 스케줄러로 지정 • master/slave structure
Real-time Scheduling • 경성 실시간 시스템 (Hard Real-Time System) • 태스크들이 주어진 시간 제한을 위반할 경우 시스템 성능에 심각한 장애를 유발하기 때문에 엄격히 시간 제한을 만족해야 하는 시스템 • 연성 실시간 시스템 (Soft Real-Time System) • 시간 제한을 준수하지 못하더라도 어느 정도의 성능 감소만이 생기는 시스템
실시간 스케줄링 알고리즘 Real-time scheduling Soft hard Static Dynamic Centralized Distributed Centralized Distributed
Algorithm Evaluation • 결정적 모형 • 시스템의 작업 부하를 이용하여 각 알고리즘에 대한 성능 평가 • 예) 어떤 알고리즘이 최소 평균대기 시간을 갖는가? • 정확한 정보를 요구 • 큐잉 모형 • 큐잉 망 분석 • 준비상태 큐에의 작업의 도착률, 작업 처리율을 통하여 시스템의 사용률, 평균 큐의 길이, 대기 시간 등을 알아냄 • 모의 실험