CPU 스케줄링 1

ChoiYongHyeun·2023년 12월 14일
0

운영체제

목록 보기
7/16

프로그램이 실행되면 시간 흐름에 따라 다음과 같은 흐름으로 진행된다.

CPU가 실행 되다가 I/O 작업을 시행하고 , ready 상태였다가 다시 실행되고 ...

결국 프로그램이 시행되는 것은 CPU 와 I/O 를 번갈아 가며 사용한다.

CPU 가 사용되는 시간을 CPU burst , I/O 가 사용되는 시간을 I/O burst 라고 한다.

지금 블로그에 정리하고 있는 단계에서도 반복적으로 CPU / I/O burst 가 반복되며 되고 있겠지?!

CPU - burst Time 의 분포

프로그램들의 CPU burst 시간의 분포를 나타냈을 대

CPU burst 기간이 매우 짧은 프로그램들의 빈도가 많았고

CPU burst 기간이 긴 프로그램들의 빈도가 적었다.

이처럼 CPU burst 기간이 짧은 프로그램들은 I/O burst 기간이 길었다는 것이니 I/O bound job 이라고 한다.

반대로 CPU bound job 이 긴 프로그램은 CPU bound job 이라고 한다.

그렇다면 I/O bound job 은 사용자와 interactive 한 프로그램이기 때문에 적절한 반응과 스케줄링이 필요하다.

또 분포를 보면 다양한 boundjob 들이 섞여있기 때문에 스케줄링이 필요하다.

CPU scheduler

CPU scheduler 는 소프트웨어, 하드웨어가 아닌 CPU 내부에 존재하는 코드의 일부이다.

Dispatcher 는 스케줄링 결과에 따라 문맥을 교환하는 코드이다.

문맥 교환이 일어날 때

다른 인터럽트에 의해서 강제로 빼앗기는 preemptive 한 경우와

자발적으로 뺏기는 nonpreemptive 한 경우가 있다.

profile
빨리 가는 유일한 방법은 제대로 가는 것이다

0개의 댓글

관련 채용 정보