CPU & I/O bursts in 프로그램 수행
- CPU 잡고 러닝하다가 중간에 오래 걸리는 작업(파일에서 데이터 읽어온다던지 등의 I/O 작업) ⇒ 이때는 CPU를 놔줘야. 다른 프로세스한테 넘겨줘.
- CPU만 연속적으로 쓰는 단계(CPU burst)와 I/O를 기다리는 단계(I/O burst)가 번갈아 일어나.
- CPU burst & I/O burst
프로그램은 CPU & I/O 버스트의 연속으로 이뤄짐.
프로세스 특성 분류
- I /O 바운드
- CPU를 잡고 계산하는 시간보다 I/O에 많은 시간이 필요
- 매우 짧은 CPU burst but 빈도가 매우 높아
- CPU bound
- 계산 위주의 job
- 매우 긴 CPU burst but 빈도는 매우 적음
CPU 스케쥴러 & dispatcher
- 스케쥴러
- 독립적인 소프트웨어? 노노. 그냥 운영체제 내에 속한 코드를 지칭함.
- ready 상태 프로세스 중에서 이번에 cpu를 줄 프로세스를 고른다
- dispatcher
- 얘도 운영체제 내에서 하나의 기능에 해당. 그냥 따로 지칭하는 것임.
- cpu 제어권을 스케쥴러에 의해 선택된 프로세스에게 넘긴다.
- 이걸 context switch라고 한다!!