1 / 37

제 4 장 Process Scheduling

제 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)

bayle
Download Presentation

제 4 장 Process Scheduling

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 제4장Process Scheduling

  2. Basic Concepts • Scheduling Criteria • Scheduling Algorithm • Multiple-Processor Scheduling • Real-Time Scheduling • Algorithm Evaluation

  3. Basic Concepts • CPU-I/O Burst Cycle • CPU Scheduler • Preemptive Scheduling • Dispatcher

  4. 다중프로그래밍(multiprogramming) • 한 개 이상의 프로세서를 가진 컴퓨터 시스템에서 여러 개의 프로세스들을 동시에 운영하는 기법 • 자원 관리 • 시간 분할 (time sharing) 기법 • 하나의 자원을 여러 프로세스들이 번갈아 사용하는 기법 • 대표적인 대상 : 프로세서 • 프로세스 스케줄링 (process scheduling) 기법 (프로세스들에게 프로세서 자원을 할당해 주는 일) • 공간 분할 (space sharing) 기법 • 하나의 자원을 분할하여 동시에 같이 사용하는 기법 • 대표적인 대상 : 주기억장치

  5. CPU-I/O Burst Cycle • 프로세스 실행 • CPU 실행과 입출력 대기상태의 순환 • 종료: 실행종료를 요구하는 CPU 버스트로 끝남 • CPU 버스트의 수행시간 • 지수형 또는 초지수형(hyper-exponential) 형태 • 입출력 중심작업 • 많은 수의 아주 짧은 CPU 버스트 존재 • CPU 중심작업 • 적은 수의 긴 CPU 버스트 존재 • CPU 스케줄링 알고리즘 선택에 중요한 기준

  6. CPU Scheduler • 단기 스케줄링 (short-term scheduling) • 주기억 장치 내의 준비상태의 작업들 중에서 실행할 작업을 선택하고 CPU를 배당 • 준비상태 큐 • 꼭 Firest-In Firtst-Out일 필요는 없음 • 모든 프로세스들은 준비상태 큐에서 CPU를 사용하여 실행되도록 줄서서 기다림

  7. 스케줄링 기법에 영향을 주는 정책 • 선점/비선점 정책 • 비선점 스케줄링(nonpreemptive scheduling) • 프로세스가 할당 받은 자원을 스스로 반납할 때까지 사용 • no preemption • 장점 (프로세스의 종료 시간에 대해 비교적 정확한 예측 가능) • 단점 (일시적으로 우선순위가 지켜지지 않을 수 있음) (평균 응답 시간 길어질 수도 있음) • 선점 스케줄링(preemptive scheduling) • 대화형의 시분할 시스템, 실시간 시스템 등에 적합 • 문맥 교환을 위한 오버헤드 증가

  8. Dispatcher • CPU를 프로세스들 사이에서 switching 시킴 • 일정시간(time slice, time quantum)이 지나면 프로세스에게 인터럽트(interrupt) 발생 • 인터럽트가 발생하면 CPU는 현재 진행중인 작업중단 • 인터럽트 핸들러(interrupt handler)를 실행시킴 • *인터럽트 핸들러는 dispatcher의 일부분 • 진행중인 프로세스에 선점(preemption) • 스케쥴러에게 프로세스 테이블 수정을 요청 • 다른 프로세스를 프로세스 테이블에서 선택하여 CPU에게 실행을 의뢰

  9. Scheduling Criteria • CPU 사용률 • CPU는 가능한 한 놀리지 않아야 함 • 처리율 • 단위 시간당 완료되는 작업 수 • 반환시간 • 작업이 시스템에 맡겨져서 모든 일을 마치고 시스템을 빠져나오는 데 소요되는 시간 • 대기시간 • 준비 상태 큐에서 기다리는 시간 • 반응시간 • 어떤 요구를 의뢰한 시간에서 반응이 시작되는 시간까지의 간격

  10. 스케줄링의 목적 • 프로세스 스케줄링의 목적 • 시스템 성능 향상 • 대표적인 시스템 성능 지표 (performance index) 응답 시간 (response time) • 시스템이 사용자의 요구에 응답하는 시간 작업 처리량 (throughput) • 단위 시간 내의 프로세스 처리량 자원 활용도 (utilization) • 주어진 기간 동안의 특정 자원 정도 • OS는 해당 시스템이 사용되는 응용 도메인에 맞는 성능 지표를 고려하여 스케줄링 기법을 선택하게 됨

  11. 일반 시스템의 OS에서 고려하게 되는 성능 지표 • 공평성(fairness) • 작업 처리량(throughput) • 일괄 처리 시스템에서 주로 사용 • 평균 응답 시간(mean response time) • 대화형 시스템에서 주로 사용 • 예측성(predictability) • 자원 활용도(resource utilization) • 무기한 연기 방지(no indefinite postponement) • 무기한 연기 • 스케줄링 기법의 편향성에 의해 발생하는 현상 • 특정 프로세스가 계속해서 자원을 사용하지 못하고 무기한 대기 • 에이징(aging) 기법 사용 • 대기 시간이 경과할수록 대기하는 프로세스의 우선순위 높여줌 • 기타

  12. 프로세스 스케줄링의 단계 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

  13. 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

  14. FIFO(First-In-First-Out) 스케줄링 • nonpreemptive scheduling • 가장 간단 • 준비 상태에 먼저 도착한 프로세스에게 먼저 프로세서 할당 • 자원의 효율성 높음 • 일괄 처리 시스템 등에 적합 • 대화형 시스템에 부적합 • 단점 • 프로세서를 장시간 독점하는 경우 다른 프로세스들이 오랜 시간 기다려야 함 • 평균 응답 시간이 길어질 수 있음. • Convoy effect • 여러 프로세스들이 하나의 큰 프로세스가 사용을 끝내기를 기다리고 있는 것

  15. FIFO 스케줄링 개념 Processor completion P4 P3 P2 P1

  16. 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

  17. RR (Round-Robin) 스케줄링 • preemptive scheduling • 준비 상태에 먼저 도착한 프로세스에게 먼저 프로세서 할당함 • 각 프로세스들에게 시간 할당량 (time quantum) 지정 • time quantum을 소모한 프로세스는 프로세서를 반납하고 준비상태로 전이 • 한 프로세스에 대한 프로세서 독점 방지 • 프로세서 선점에 따른 문맥 교환 오버헤드 증가 • 대화형 시스템, 시분할 시스템에 적합 • time quantum의 결정이 시스템 성능에 영향을 줌 • 상황교환시간의 영향 • 규정시간량을 상황교환에 소요되는 시간보다 충분희 크게 고려

  18. completion Processor P4 P3 P2 P1 timerrunout RR 스케줄링 개념

  19. 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

  20. SJF(Shortest Job First) 스케줄링 • 총 실행 시간이 가장 짧은 프로세스부터 스케줄링 하는 기법 • nonpreemptive scheduling • 장점 • 평균 대기 시간(waiting time) 최소화 • 시스템 내의 대기 프로세스 수를 최소화 • 많은 프로세스들에게 빠른 응답 시간 제공 • 준비 큐의 크기 감소, 저장 공간 오버헤드 줄임 • 단점 • 무기한 연기(indefinite postponement) 현상 발생 가능 • 실행 시간이 긴 프로세스들의 무한 대기 가능 • 에이징(aging) 기법으로 해결 가능 • 프로세스 생성시 총 실행 시간에 대한 정확한 계산 불가능 • 각 프로세스의 실행 시간에 대한 추정(estimation) 필요

  21. 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

  22. SRTN (Shortest-Remaining-Time-Next) 스케줄링 • SJF 스케줄링의 변형 • 서비스시간이 가장 적게 남은 프로세스에게 먼저 프로세서 할당 • preemptive scheduling • 프로세스 실행 중 남은 실행 시간이 더 적은 프로세스가 준비 상태에 들어올 경우 선점됨 • 단점 • 프로세스 생성시 총 실행 시간 추정 작업 필요 • 잔여 실행 시간에 대한 계속적인 계산 오버헤드 증가 • 실행 시간이 긴 프로세스들의 평균 응답 시간 길어짐 • 잦은 선점으로 문맥 교환 오버헤드 증대 • 구현 및 사용이 비현실적임. • 상기 단점들의 해결 및 보완이 가능하다면 효율적으로 사용 가능

  23. Priority Scheduling • CPU는 우선순위가 가장 높은 프로세스에 할당, 동일 우성순위는 FCFS로 처리 • SJF는 일반적인 우선순위 스케줄링 알고리즘 • 우선순위 • 내부: 제한시간, 기억장소 요구, 사용화일 수, 평균 BURST에 대 한 평균 입출력 버스트의 비율 • 외부: 사용료를 많이 낸 사용자 • 단점 • 무한봉쇄(indefinite blocking)/ 기아(starvation) • 우선순위가 낮은 작업은 준비상태에서 무한정 CPU를 기다림 • 해결책: aging • 어떤 작업이 시스템에 머무르는 시간 증가에 따라 우선 순위를 높임

  24. Multilevel Queue Scheduling • 각 작업들은 서로 다른 큐로 분류될 수 있음 • 준비 상태 큐를 여러 종류로 분할, 작업들은 어느 한 큐에 고정적으로 지정 • 기억장소 크기, 작업의 유형에 따라 분류됨 • 예)서로 다른 큐에 지정 • foreground(대화형 작업): 라운드 로빈 스케줄링 • background(일괄 처리형 작업): FCFS 스케줄링 • 고정 우선순위 선점(preemptive) 스케줄링 • 대화형 작업은 일괄처리형 작업보다 선점 • 큐들간의 시간을 나누어 가짐 • 대화형 작업: CPU를 80%이용 • 일괄처리 작업: CPU를 20% 이용

  25. Multilevel Queue Scheduling

  26. 다단계 피드백 큐(MFQ) • Multi-level feedback queue scheduling • 프로세스들에 대한 사전 정보가 전혀 없는 경우 • 준비 상태의 큐를 여러 개 두어 스케줄링 • 작업이 큐 사이를 이동할 수 있음 • MFQ 스케줄링 기법의 기본 목적 • 짧은 실행 시간을 요구하는 프로세스 선호 • 입출력 위주의 프로세스 선호 • 신속한 프로세스의 성격 분석으로 적응성 있게 스케줄링함 • 피드백(Feedback) • 현재까지 프로세서를 사용한 시간을 근거로 스케줄링함 • 다단계 피드백 큐 (multi-level feedback queue) • 준비 큐를 여러 개 두어 준비 상태로 들어오는 프로세스들이 디스패치될 당시와 다른 큐로 진입할 수 있게 하는 경우

  27. MFQ 스케줄링 기법 • dynamic priority 사용 • preemptive scheduling • I/O-bound process들을 선호 • 실행 시간이 짧은 프로세스들 선호 • 장점 • 매우 적응성 있는 기법임 • 프로세스들에 대한 사전 정보 없이도 SJF, SRTN, 등의 효과 보임

  28. MFQ 스케줄링 개념 RQ0 higher priority RQ1 Processor completion RQ2 RQn lower priority timerrunout

  29. 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.

  30. MFQ 스케줄링 기법의 변형 • MFQ 스케줄링 기법의 문제점 • 시스템 부하 증가 • 우선 순위가 낮아진 프로세스의 무기한연기 현상 발생 가능 • MFQ 스케줄링의 변형 • 각 준비 큐마다 시간 할당량을 다르게 배정 • 디스패치된 프로세스는 해당 큐에 할당된 시간 할당량 배정 받음 - 프로세스의 특성에 맞는 형태로 시스템 운영 가능 • 입출력 위주 프로세스들을 상위 단계의 큐로 이동, 우선 순위 높임 - 프로세스가 블럭될 때 상위의 준비 큐로 진입하게 함 - 시스템 전체의 평균 응답 시간 줄임 - 입출력 작업 분산 시킴 • 대기 시간이 지정된 시간을 초과한 프로세스들을 상위 큐로 이동 - 에이징 (aging) 기법 - 특정 프로세스가 오랜 시간 준비 큐에서 대기하는 것 방지

  31. HRN Scheduling • Brinch Hansen이 SJF 스케줄링 기법의 약점인 긴 작업과 짧은 작업의 지나친 불평 등을 보완한 스케줄링 기법. • 우선순위 = (대기시간 + 서비스를 받을 시간) / 서비스 받을 시간 • Nonpreemptive scheduling • 서비스 받을 시간이 분모에 있으므로 짧은 작업의 우선 순위가 높아 진다. • 대기시간이 분자에 있으므로 긴 작업도 대기시간이 큰 경우에 우선 순위가 높아짐.

  32. Multiple-Processor Scheduling • CPU스케줄링은 더욱 복잡해짐 • 처리기의 유형 • 동형(homogeneous system) • 처리기가 같은 종류 • 부하 분담(load sharing) 문제 • 특정 큐만 활성화되는 것을 막기 위해 전체적인 준비 상태 큐를 두어 모든 작업은 이 큐를 통해 각 처리기 큐로 가게 됨 • 이형(heterogeneous system) • 독자적인 큐와 독자적인 알고리즘을 갖음 • 스케줄링 방법 • 각 처리기는 공통의 준비 상태 큐에서 실행시킬 한 프로세스를 선택 • 한 처리기를 다른 모든 처리기의 스케줄러로 지정 • master/slave structure

  33. Real-time Scheduling • 경성 실시간 시스템 (Hard Real-Time System) • 태스크들이 주어진 시간 제한을 위반할 경우 시스템 성능에 심각한 장애를 유발하기 때문에 엄격히 시간 제한을 만족해야 하는 시스템 • 연성 실시간 시스템 (Soft Real-Time System) • 시간 제한을 준수하지 못하더라도 어느 정도의 성능 감소만이 생기는 시스템

  34. 실시간 스케줄링 알고리즘 Real-time scheduling Soft hard Static Dynamic Centralized Distributed Centralized Distributed

  35. Algorithm Evaluation • 결정적 모형 • 시스템의 작업 부하를 이용하여 각 알고리즘에 대한 성능 평가 • 예) 어떤 알고리즘이 최소 평균대기 시간을 갖는가? • 정확한 정보를 요구 • 큐잉 모형 • 큐잉 망 분석 • 준비상태 큐에의 작업의 도착률, 작업 처리율을 통하여 시스템의 사용률, 평균 큐의 길이, 대기 시간 등을 알아냄 • 모의 실험

  36. Evaluation of CPU Schedulers by Simulation

More Related