[OS]운영체제_6

Updated:

CPU 스케쥴링

CPU 스케쥴링

  • Reedy Que안에 혹은 메인메모리에 여러개의 프로세스가 줄서서 기다리고 있을때 현재 실행하는게 끝나면 그다음 어느프로세스를 선택하고 결정

  • Preemptive vs Non-preemptive(선점 vs 비선점)
    • Preemptive(선점) : CPU가 어떤 프로세스를 실행하고잇는데 강제로 쫒아내고 새로운것이 들어갈수 있는방식(응급환자)
    • Non-preemptive(비선점) : 이미 어떤 프로세스가 실행중에있으면 끝나거나 I/O를 만나기 전에는 절대 스케쥴링이 안일어남
  • Scheduling criteria (척도,어떤스케쥴링방식이 더좋은가)
    • CPU Utilization (CPU 이용률 %)
    • Throughput (처리율) : 시간당 몇개의 작업을 처리하는가 (시간당몇개)
    • Turnaround time (반환시간) : 작업이 Ready Que에 들어가서 나오는시간(병원에 들어간 시간부터 진료다받고 나오는시간)
    • Waiting time (대기시간) : CPU의 서비스를 받기위해 Ready Que에서 얼마나 기다렸는가
    • Response time (응답시간) : 인터렉티브 시스템에서 중요함,처음응답이 나올때까지 중요한시간

CPU Scheduling Algorithms

  • First-Come, First-Served (FCFS) : 먼저온놈 먼저서비스
    • Simple & Fair (간단, 공평)
    • 단점 : 평균대기시간이김, 짧은놈부터 실행하는게 오히려 속도가 더빠름
    • Convoy Effect (호위효과) : 긴 프로세스가 있으면 나머지 대기하고있는 프로세스가호위하듯이 따라간다
    • Nonpreemptive scheduling
    • Example: Find Average Waiting Time AWT = (0+24+27)/3 = 17 msec

Gantt Chart

Process Burst Time (msec)
p1 24
p2 3
p3 3
  • Shortest-Job-First (SJF) : 작업이 짧은놈을 먼저서비스
    • Shortest-Remaining-Time-First
    • 대기시간을 줄이는데 가장좋은 방법
    • 단점 : 비 현실적(예측을 할수없음)
    • Preemptive or Non-preemptive(선점 or 비선점)
    • Example: AWT(Average Waiting Time) = (3+16+9+0)/4 = 7 msec cf. 10.25 msec (FCFS)
Process Burst Time (msec)
p1 6
p2 8
p3 7
P4 3
  • Priority : 우선순위대로 먼저 서비스
    • Low number represents high priority in general (Unix/Linux)
    • 우선순위 정하는기준(내부 , 외부)
    • 내부 : time limit,Memory requirement ,I/O to CPU burst
    • 외부 : amount of funds being paid, political factors
    • 단점 : (기아,굶어죽음) 우선순위가 낮은 프로그램은 계속기다림
    • 해결방법 : (aging)오래기다릴수록 우선순위를 올려줌
    • AWT = (6+0+16+18+1) / 5 = 8.2 msec
Process Burst Time (msec) Priority
p1 10 3
p2 1 1
p3 2 4
P4 1 5
P5 5 2
  • Round-Robin (RR) : 돌면서 순서대로 서비스
    • 일정시간이 기준으로 프로세스 변경
    • 타임퀀텀(일정시간)이 무한대로돌면 FCFS와 동일
    • 타임퀀텀(일정시간)이 0에 수렴하면 오버헤드 발생
    • Time-sharing system (시분할/시공유 시스템)
    • Time quantum 시간양자(=Time slice)
    • Preemptive
    • Example AWT = (6+4+7)/3 = 5.66 msec

Time Quantum = 4msec

Process Burst Time (msec)
p1 24
p2 3
p3 3
  • Multilevel Queue : 큐를 여러개
    • 프로세스를 그룹화 (System process , Interactive process ,Interactive editing process, Bacth process, Student process)
  • Multilevel Feedback Queue : 큐를 여러개
    • 하나의 Queue에서 머무르는것이아닌 다른 Queue로의 점진적이동
    • 모든 프로세스는 하나의 입구로 진입
    • 너무 많은 CPU time 사용 시 다른 Queue 로
    • 기아 상태 우려 시 우선순위 높은 Queue 로

Tags: ,

Categories: ,

Updated:

Leave a comment