1 / 14

CPU 스케줄링

제 09 강 : CPU 스케줄링. CPU 스케줄링. 스케줄링 (Scheduling) 의 정의 자원의 사용 순서를 결정하는 일이다 . 스케줄링 평가 기준 공정성   ( 특정 프로세스가 불이익을 당하는가 )        Throughput ( 단위시간에 끝나는 작업 수 ) Response time  요청 목적에 맞는가 - 급한 작업 , 여유있는 작업 예측 가능성 ( 요청시마다 시간 편차가 심한가 여부 ) 오버 헤드 최소화 ( 스케줄링에 소요되는 시간과 공간 )

keiki
Download Presentation

CPU 스케줄링

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. 제09강 : CPU스케줄링 CPU 스케줄링

  2. 스케줄링 (Scheduling)의 정의 • 자원의 사용 순서를 결정하는 일이다. • 스케줄링 평가 기준 • 공정성  (특정 프로세스가 불이익을 당하는가)        • Throughput (단위시간에 끝나는 작업 수) • Response time  • 요청 목적에 맞는가 -급한 작업, 여유있는 작업 • 예측 가능성 (요청시마다 시간 편차가 심한가 여부) • 오버 헤드 최소화 (스케줄링에 소요되는 시간과 공간) • 균형적인 자원 이용 (다른 자원의 활용도를 높이는가)

  3. 선점 기법(Preemptive) • 하나의 프로세스가 자원을 점유하고 있을 때 • 다른 프로세스가 이 자원을 빼앗을 수 있는 방식 • 빠른 응답 시간을 요구하는 프로세스들에 적합하다. • 많은 오버헤드를 초래한다. • 비선점 기법(Non-preemptive) • 이미 할당된 자원을 강제로 빼앗지 않고, • 그 프로세스가 자원을 반납해야 스케줄링 하는 방식 • 응답 시간의 예측이 용이하다. • 짧은 작업이 긴 작업 뒤에 기다리게 되면 • 매우 오래 기다리게 된다. • preempt를 할 수 없는 자원들의 예 • printer, tape

  4. 스케줄링의 기본개념 • 스케줄링으로 전체 일감이 줄어드는 경우 • (Throughput이 영향받음) • disk scheduling • 우체부 스케줄링 • 스케줄링으로 전체 일감에는 변화가 없는 경우 • (Throughput 은 영향이 없음) • (Response time의 분포가 달라짐) • CPU scheduling, 식당 줄, 병원 줄 • 이러한 경우  • homogeneous job 들이면 스케줄링이 필요 없다 (같은 종류 job –분포 변화?) • heterogeneous job 들이면 스케줄링이 필요하다 • 예: I/O bound jobs, CPU bound jobs • terminal (foreground) jobs, realtime jobs, batch jobs

  5. P1 P2 P3 0 20 22 23 FIFO(First In First Out) 스케줄링 • 비선점 방식의 스케줄링이다. • 길고 중요하지 않은 작업이 중요한 작업을 오래 기다리게 할 수 있다. • 대화식, 실시간 시스템에 부적합하다. • FCFS(First Come First Served) 스케줄링 방법이라고도 부른다. • 예: Process수행시간 P1 20 P2 2 P3 1

  6. 우선 순위(Priority) 스케줄링 • 작업마다 우선 순위 • 우선 순위가 높은 작업 먼저 • 무한봉쇄(Indefinite blocking), 기아상태(Starvation) • 기다린 시간에 비례하여 우선 순위를 높이는 에이징(Aging) 기법 우선순위 기다리는 시간

  7. Deadline 스케줄링 • 작업의 Deadline 보장 • Hard Realtime 로봇 발 제어 • Soft Realtime MP3 • 여러 작업들의 deadline이 상충되면? • 스케줄링에 많은 오버 헤드가 들 수 있다. • 주로 실시간 시스템에서 사용된다.

  8. Shortest-Job-First (SJF) • 각 프로세스는 자신의 수행시간을 제시 예: Process도착시간예상수행시간 P1 0.0 7 P2 2.0 4 P3 4.0 1 P4 5.0 4 • 비선점 스케줄링 기법이다. • 작업들의 평균 대기시간이 최소가 된다 • 수행시간을 미리 안다? Starvation 문제 P1 P3 P2 P4 0 3 7 8 12 16

  9. SRT(Shortest Remaining Time) • Remaining 시간이 가장 작은 프로세스에게 먼저 할당 • 선점(Preemptive) 스케줄링 기법이다. • SJF 스케줄링 기법보다 많은 오버 헤드가 발생한다. • 역시 • 수행시간을 미리 안다? • Starvation 문제

  10. HRN(Highest Response ratio Next) • SJF 기법의 긴/짧은 작업간의 불평등을 보완 대기시간 + 서비스를 받을 시간 큰 job이 오래 대기하면 유리 서비스를 받을 시간 짧은 job이면 유리 • 긴 작업(분자), 짧은 작업(분모) 모두 공평 • 비선점 스케줄링 기법이다. 우선 순위 =

  11. CPU ready queue 라운드 로빈(RR : Round Robin) 스케줄링 • 시간 할당량(Time Slice, Quantum) 동안만 CPU를 쓴다. • Time slice를 다 써도 끝나지 않으면 CPU를 선점당한다. (timer 인터럽트) • CPU를 빼앗긴 프로세스는 ready 큐의 맨 뒤로 되돌아간다. • 특징 • 선점 스케줄링 기법이다. • 긴 작업이 있어도 N*(time slice) 초 이후에는 CPU를 할당받는다. • (N은 ready 작업의 수) • 따라서 짧은 작업이라면 (시스템의 부하에 관계 없이) 수초 내에 끝이 난다. • 수초 내에 응답해주어야 하는 대화식 시분할 시스템에 적합하다. • time slice를 무한히 크게 하면 FIFO 방식과 같아진다. • time slice를 크게 하면 I/O bound 작업이나 급한 작업에게 불리하다. • time slice를 작게 하면 compute bound 작업에게 불리해진다. • (context switch 오버헤드)

  12. 다단계 피드백 큐(Multilevel feedback queue) 스케줄링 • 여러 단계의 ready 큐로 구성된다. • 위의 큐는 아래 큐를 preempt 한다 • 밑으로 갈수록 큰 time slice를 가진다. • 새 프로세스는 맨 위의 큐로 들어간다. • 위의 큐들은 FIFO방식으로. • 실행 시간이 길어질수록 하위 단계 큐로 • 맨 밑의 큐는 round-robin 방식으로 • compute-bound jobs • 큰 time quantum 사용 Q=1 Q=10 Q=100 Q=1000

  13. 다단계 피드백 큐(Multilevel feedback queue) 스케줄링 • 여러 단계의 ready 큐로 구성된다. • 위의 큐는 아래 큐를 preempt 한다 • 밑으로 갈수록 큰 time slice를 가진다. • 새 프로세스는 맨 위의 큐로 들어간다. • 위의 큐들은 FIFO방식으로. • 실행 시간이 길어질수록 하위 단계 큐로 • 맨 밑의 큐는 round-robin 방식으로 • compute-bound jobs • 큰 time quantum 사용 Q=1 Q=10 Q=100 Q=1000

  14. 다단계 피드백 큐(Multilevel feedback queue) 스케줄링 • 여러 단계의 ready 큐로 구성된다. • 위의 큐는 아래 큐를 preempt 한다 • 밑으로 갈수록 큰 time slice를 가진다. • 새 프로세스는 맨 위의 큐로 들어간다. • 위의 큐들은 FIFO방식으로. • 실행 시간이 길어질수록 하위 단계 큐로 • 맨 밑의 큐는 round-robin 방식으로 • compute-bound jobs • 큰 time quantum 사용 Q=1 Q=10 Q=100 Q=1000

More Related