기본 개념
💡 **일을 쉬지 않고 계속 시키는 것이 OS의 숙제!**
- CPU-I/O 버스트(Burst) Cycle
- 프로세스 실행은 CPU 실행 및 입출력(I/O) 대기로 구성
- CPU 버스트 분포 →많은 수의 짧은 CPU 버스트와 적은 수의 긴 CPU 버스트 존재
- I/O-bound 프로그램 -> 많은 수의 짧은 CPU 버스트
- CPU-bound 프로그램 -> 적은 수의 긴 CPU 버스트
CPU 스케쥴러
**CPU 스케쥴러?**
→ 메모리에 있는 프로세스들 중 실행할 준비가 되어있는 Ready 상태의 프로세스를 선택하고, 그 프로세스에 CPU를 할당.
- 프로세스 스케쥴링 결정은 다음 네가지의 상황에서 발생
-한 프로세스가 실행 상태에서 대기 상태로 전환 될 때
-프로세스가 실행 상태에서 준비 완료 상태로 전환될 때
-프로세스가 대기 상태에서 준비 완료 상태로 전환될 때
-프로세스가 종료될 때
디스패쳐
- 디스페쳐 작업
-> context switch
-> 사용자 모드로 전환
-> 프로그램을 다시 시작하기 위해 사용자 프로그램의 적절한 위치로 이동
- 디스패치 지연(Latency)
->하나의 프로세스를 중지하고 다른 프로세스를 실행시킬 때 소요되는 시간