본문 바로가기
반도체 그 다음 학문/운영체제 (OS)

운영체제 CPU Scheduling ( CPU 성능 평가 지표, Preemptive, Dispatcher, non-Preemptive, cpu burst )

by 전컴반 2022. 4. 13.
반응형
CPU Scheduling

 

- cpu는 운영체제에 의해 계속 동작을 수행한다. 이렇게 계속 동작하게 하기 위해 scheduling을 통해 cpu가 멈추지 않고 동작하게 하는 것이다. 이런 동작의 단위를 burst라고 한다. 컴퓨터는 cpu burst와 i/o burst의 동작의 반복이다.

 

 

다시 말해, CPU scheduling이란 cpu의 동작을 최고 효율로 사용하기 위한 동작이다. 다른 말로는 process scheduling, kernel thread scheduling이라고 부른다. kernel thread인 이유는 user level에서는 동작을 확인인 할 수 없기 때문이다.

 

아래 그래프는 burst의 특징을 나타낸 그래프다. 짧은 burst가 많은 비중을 차지하는 걸 볼 수 있다. 긴 burst는 거의 없음을 알 수 있다.

 

 

 

CPU scheduler가 언제 필요할까? CPU scheduler는 ready queue에 있는 프로세서 중에 선택하여 다음 cpu 동작으로 할당한다. 이때 4가지 경우에 CPU scheduler가 필요하다.

 

1. 동작하고 있는 애를 waiting state로 변경

2. 동작하고 있는 애를 ready state로 변경

3. wating state인 애를 ready state로 변경

4. 새로운 프로세서를 고르는 경우

 

이때 1, 4는 무조건 다른 프로세서를 선택하여 실행해야 한다. 하지만 2, 3번의 경우에는 해도 되고 안 해도 문제가 생기진 않는 상황이다. 

이때 scheduler의 구현은 2가지 방법이 있다. Preemptive와 non-Preemptive방식이 있다.

 

Preemptive

- cpu가 프로세스를 구동시키고 있더라도 scheduler가 그 자원을 회수할 수 있다. 이런 동작을 Preemptive라고 한다. (2, 3)

 

non-Preemptive

- cpu가 프로세서를 구동하고 있다면 scheduler는 cpu가 자원을 내놓을 때까지 기다려야 한다. (1, 4)

 

 

Dispatcher

 

- scheduler가 일정을 짜고 프로세서를 선택하면 그다음 Dispatcher가 실제로 구동한다. 

예를 들어보자, 프로세서 P0에서 P1으로 switching이 일어난다고 하면 P0에서 운영체제가 자원을 회수하고 P0 PCB정보를 메모리에 저장하고 P1의 PCB정보를 가져와서 시작한다. 이때 cpu는 idle상태로 대기하는데 이때를 dispatcher latency라고 부른다. 이 latency를 최대한 줄이는 게 성능 향상에 큰 영향을 준다.

 

 

CPU 성능 평가 지표

 

- 성능의 좋고 나쁨을 어떻게 평가할 수 있을까?? 약 5가지의 성능 평가 지표가 있다.

 

1. CPU utilization :  CPU의 사용 시간이 얼마인지 평가한다. (높아야 좋음)

2. Throughput : 단위 시간당 얼마나 많은 프로세서를 동작했는지 평가한다. (높아야 좋음)

3. Turnaround time : 프로세서가 동작한 총시간을 나타낸다 ( 반환시간 ). (낮아야 좋음)

4. Waiting time : 프로세서가 시작되기까지 걸린 시간을 나타낸다. (낮아야 좋음)

5. Respones time : 프로세서가 완료되기까지 걸린 시간을 나타낸다. (낮아야 좋음)

 

이 모든 평가를 만족하는 알고리즘은 없기에 어느 정도 감내는 해야 한다.

반응형

댓글