1 / 48

운영체제

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

keefe
Télécharger la présentation

운영체제

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. 제3장프로세스 스케줄링 OS 운영체제 Operating Systems

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

  3. 다중 프로그래밍

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

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

  6. Terminologies • CPU burst vs. I/O burst • Process execution consists of a cycle of CPU execution and I/O wait • CPU burst • Each cycle of CPU execution • I/O burst • Each cycle of I/O wait • Burst time is an important factor(criteria) for scheduling algorithms CPU burst I/O burst CPU burst I/O burst CPU burst

  7. 스케줄링 기준 • 스케줄링 기법이 고려하게 되는 항목 • 프로세스 속성 • 입출력-위주(I/O-bound) / 연산-위주(compute-bound) • 시스템 속성 • 일괄 처리 시스템 / 대화형 시스템 • 신속한 응답 시간의 중요성 • 특정 프로세스의 응답 시간이 상대적으로 중요한 경우 우선 순위 기법 제공 • 프로세스 우선순위 • 우선순위 개념을 사용하는 경우 • 프로세스의 총 실행 시간 • 프로세스의 활용 목적 • 응용 프로그램의 중요도 또는 활용 분야에 따른 스케줄링

  8. a CPU-bound process • an I/O bound process

  9. 스케줄링의 단계 • 프로세스 스케줄링 • 장기 스케줄링 (long-term scheduling) • job scheduling, admission scheduling, high-level scheduling • 시스템에 입력되는 작업이나 명령 등의 커널 등록 순서 결정 • 다중프로그래밍 정도(multiprogramming degree) 고려 • 중기 스케줄링 (medium-term scheduling) • intermediate-level scheduling • 프로세스들에 대해 주기억장치 할당 순서 결정 • swap-in/swap-out • OS의 기억장치 관리 기법에 의존 • 수행 단계에 따라

  10. 스케줄링의 단계 • 프로세스 스케줄링 • 단기 스케줄링 (short-term scheduling) • process scheduling, low-level scheduling • 준비 상태의 프로세스들에 대해 프로세서 할당 순서 결정 • 프로세스 스케줄러 또는 디스패처(dispatcher)에 의해 수행 • 인터럽트가 발생하거나 실행중인 프로세스에 의해 system call이 발생하는 경우 수행됨 • 수행 단계에 따라

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

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

  13. 우선 순위 • 프로세스의 중요도를 숫자로 표현 • 분류 • 정적 우선 순위 (static priority) • 프로세스 생성 당시에 부여되고, 실행 중 불변 • 구현 단순, 적은 오버헤드 • 시스템 환경의 변화에 적절한 대응 곤란 • 동적 우선 순위 (dynamic priority) • 프로세스 생성 당시에 초기 우선순위 부여 • 시스템과 프로세스의 상태 변화에 따라 우선 순위 변경 • 구현 복잡, 우선순위를 수시로 조정하는 오버헤드 큼 • 환경 변화에 유연한 대응 가능 • 매입 우선 순위 (purchased priority) • 고급 서비스를 제공 받기 위해 우선순위 매입 • 정적/동적 우선 순위와 합성되는 부가 기능

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

  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의 결정이 시스템 성능에 영향을 줌 매우 크면 : FCFS와 동일 매우 작으면 : 문맥 교환 오버헤드가 커진다.

  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. SPN (Shortest-Process-Next) 스케줄링 • SJF(Shortest Job First) scheduling • Next burst time 이 가장 짧은 프로세스부터 스케줄링 • nonpreemptive scheduling • 장점 • 평균 대기 시간(waiting time) 최소화 • 시스템 내의 대기 프로세스 수를 최소화 • 많은 프로세스들에게 빠른 응답 시간 제공 • 준비 큐의 크기 감소, 저장 공간 오버헤드 줄임 • 단점 • 무기한 연기(indefinite postponement) 현상 발생 가능 • burst time이 긴 프로세스들의 무한 대기 가능 • 에이징(aging) 기법으로 해결 가능 • 프로세스 생성시 burst time에 대한 정확한 계산 불가능 • 각 프로세스의 burst time에 대한 추정(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 SPN 스케줄링의 예 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) 스케줄링 • SPN 스케줄링의 변형 • burst time이 가장 적게 남은 프로세스에게 먼저 프로세서 할당 • preemptive scheduling • CPU burst time이 더 적게 남은 process가 올 경우 current process를 preemption 단점 • burst time 추정 작업 필요 • 잔여 실행 시간에 대한 계속적인 계산 오버헤드 증가 • burst time이 긴 프로세스들의 평균 응답 시간 길어짐 • 잦은 선점으로 문맥 교환 오버헤드 증대 • 구현 및 사용이 비현실적임. • 상기 단점들의 해결 및 보완이 가능하다면 효율적으로 사용 가능

  23. Process Arrival TimeBurst Time P1 0.0 7 P2 2.0 4 P3 4.0 1 P4 5.0 4 • Average waiting time = (9 + 1 + 0 +2)/4 = 3 P1 P2 P3 P2 P4 P1 11 16 0 2 4 5 7

  24. HRRN (High-Response-Ratio-Next) 스케줄링 • burst time이 긴/짧은 프로세스들간의 불평등 심화 방지 기법 • 응답률이 가장 높은 프로세스에게 우선권을 주는 방식 • 응답률(response ratio) • Burst time(service time)에 대한 waiting time 비율 응답률 = 대기 시간 + 서비스 시간 서비스 시간 • 특정 프로세스의 장시간 대기 방지 • 준비상태에서 기다리는 시간이 길어질수록 우선 순위 향상됨 • SPN 스케줄링 기법의 효과 얻음 • 단점 • 프로세스의 burst time 추정 오버헤드 발생

  25. MLQ(Multi-level Queue) scheduling • ready queue를 여러 개의 큐로 분할 • Process들을 그 특성에 따라 하나의 queue에 할당함 • 각 queue 별 scheduling 기법 필요 • 전체 queue 들간 scheduling 기법 필요 Higher priority System processes Interactive processes Batch processes Student processes Lower priority

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

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

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

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

  30. Parameters for MFQ scheduling • 큐의 갯수 • 각 큐의 scheduling algorithm • 더 상위의 큐로 이동시키는 시기 결정 방법 • 더 하위의 큐로 이동시키는 시기 결정 방법 • 프로세스가 처음 시작할 때 시작하는 큐 결정방법

  31. 유닉스 운영체제의 스케줄링 기법 • 개요 • Unix OS • 대화형 사용자들에게 적절한 응답 시간 제공 • 우선순위 기반 스케줄링 사용 • 우선순위 조정 • 프로세스의 우선순위 • 커널 우선순위(kernel priority) • 커널 모드에 있는 프로세스가 배정받는 우선순위 • interruptible/uninterruptible priority • 사용자 우선순위(user priority) • 사용자 모드에 있는 프로세스가 배정받는 우선순위 • 클럭 핸들러 (clock handler) • 주기적으로 인터럽트 발생, 모든 프로세스들의 우선순위 조정함

  32. Swapper Waiting for disk I/O not interruptible Waiting for buffer Waiting for inode kernel mode priorities Waiting for tty input Processes interruptible Waiting for tty output Waiting for child exit Threshold priority User level 0 User level 1 user mode priorities User level n Unix 환경에서의 프로세스 우선순위

  33. 유닉스 운영체제의 스케줄링 기법 • 스케줄링 기법 개요 • 우선순위가 높은 프로세스부터 디스패치하는 정책 사용 • 프로세스의 우선순위 • 프로세서 사용량에 따라 주기적으로 변함 • Unix OS의 스케줄링 기법은 MFQ 기반임 • 스케줄링 기법 • 우선 순위 조정 과정 • Decay 연산 CPUCount = CPUCount 2 • 우선순위 조정 CPUCount Priority = + basePriority + niceValue 2

  34. Unix 운영체제의 스케줄링 예 프로세스 P1 프로세스 P2 프로세스 P3 우선 순위 CPUCount 우선 순위 CPUCount 우선 순위 CPUCount 0 60 0 1 2 ••• 60 60 0 60 0 1 75 30 60 0 1 2 ••• 60 60 0 2 67 15 75 30 60 0 1 2 ••• 60 3 63 7 8 9 ••• 67 67 15 75 30 4 76 33 63 7 8 9 ••• 67 67 15 5 68 16 76 33 63 7

  35. Scheduling in Windows 2000 • 개요 • Thread scheduling • Priority-based, preemptive scheduling • 32-level priority scheme • Variable class: 1-15 • Real-time class: 16-32 • 각 우선순위마다 하나씩의 큐 사용. • 우선순위 높은 큐부터 서비스

  36. Scheduling in Windows 2000 • Priority classes • REALTIME_PRIORITY_CLASS • HIGH_PRIORITY_CLASS • ABOVE_NORMAL_PRIORITY_CLASS • NORMAL _PRIORITY_CLASS • BELOW_NORMAL _PRIORITY_CLASS • IDLE _PRIORITY_CLASS • Relative priorities in each class • TIME_CRITICAL • HIGHEST • ABOVE_NORMAL • NORMAL • BELOW_NORMAL • LOWEST • IDLE

  37. Windows 2000 priorities real-time high above normal normal below normal idle time-critical 31 15 15 15 15 15 highest 26 15 12 10 8 6 above normal 25 14 11 9 7 5 normal 24 13 10 8 6 4 Base priority below normal 23 12 9 7 5 3 lowest 22 11 8 6 4 2 idle 16 1 1 1 1 1

  38. Scheduling in Windows 2000 • Scheduling scheme • When a thread’s time quantum runs out, its priority is lowered (if it is in the variable priority class) • When a variable priority thread is released from a wait operation, the dispatcher boosts the priority • The boost of amount depends on what the thread was waiting for • Keyboard or mouse I/O  large increase • Disk I/O  moderate increase • When a process moves into the foreground, the scheduling quantum may be increased by the factor of 3

  39. Q 각 CPU 스케줄링 알고리즘들이 작업 요구량이 적은 short job을 어떻게 다루는 지에 대해서 상호 비교 설명하시오. 1) First-In-First-Out 2) Round-Robin 3) Shortest-Process-Next 4) Shortest-Remaining-Time-Next 5) High-Response-Ratio-Next 6) Multi-level Feedback Queue

  40. Q다음 표는 4개의 프로세스들에 대하여 준비 상태에의 도착시간과 각 프로세스가 필요로 하는 총 실행시간을 보여준다. 프로세스 ID 도착시간실행시간 P1 0 4 P2 1 7 P3 3 3 P4 5 2 * FIFO 스케줄링을 사용했을 때의 평균응답시간을 구하시오. * SPN(shortest-process-next) 스케줄링을 사용했을 때의 종료 순서를 나열하시오.

  41. Q프로세서 스케줄링에서 프로세스들이 다음과 같은 시간에 큐에 들어왔고, 각프로세스마다 아래와 같은 처리시간이 요구될 때 다음 물음에 답하시오. 프로세스 ID 도착시간실행시간 P1 0 8 P2 1 4 P3 3 9 P4 5 5 1) FIFO 스케줄링에 의한 평균응답시간은? 2) Round-Robin 스케줄링에서 time quantum이 2일 때 작업을 마치는 순서는? 3) shortest job first(또는 shortest process next) 스케줄링에 의한 평균응답시간은?

  42. Q다음 표는 4개의 프로세스들에 대하여 준비 상태에의 도착시간과 각 프로세스가 필요로 하는 총 실행시간을 보여준다. 프로세스 ID 도착시간실행시간 P1 0 7 P2 1 5 P3 2 5 P4 3 4 1) FIFO 스케줄링을 사용했을 때의 평균응답시간을 구하시오. 2) SRTN(shortest-remaining-time-next) 스케줄링을 사용했을 때의 종료 순서를 나열하시오. 3) RR(round robin) 스케줄링에서 시간 할당량을 4라 할 때 P2의 응답시간을 구하시오.

  43. Q다음 표는 4개의 프로세스들에 대하여 준비 상태에의 도착시간과 각 프로세스가 필요로 하는 총 실행시간을 보여준다. 프로세스 ID 도착시간실행시간 P1 0 5 P2 2 2 P3 3 4 P4 5 3 1) SPN(shortest-process-next) 스케줄링을 사용했을 때의 평균응답시간을 구하시오. 2) SRTN(shortest-remaining-time-next) 스케줄링을 사용했을 때 작업을 마치는 순서를 나열하시오. 3) RR(round robin) 스케줄링에서 시간 할당량을 4라 할 때 P1의 응답시간을 구하시오.

  44. Q UNIX 스케줄링에서 프로세스 P1, P2, P3의 기본 우선순위(base priority)가 각각 30, 35, 40이라 할 때 스케줄링되는 순서를 보이시오. 단 cpu count를 60단위 사용하면 clock interrupt가 발생한다고 가정하시오. 답 : P1 - ____ - ____ - ____ - ____ - ____

More Related