Step-by-Step
[OS] 운영체제 스케줄러 본문
운영체제 스케줄러
- 여러 개의 프로그램을 동시에 실행되는 것처럼 보이게 하기 위해 규칙을 부여하는 것
프로세스 상태
- New : 프로세스 생성
- Running : CPU에서 명령이 실행되는 중
- Waiting : 프로세스가 어떤 이벤트(입출력, Signal 등)가 발생하길 기다리는 중
- Ready : 프로세스가 CPU에 할당되어 실행되기를 기다리는 중
- Terminated : 프로세스 실행 종료

- 운영체제 스케줄링 기법에 따라 단 1개만 Running 상태로 바뀔 수 있음
- Running 상태가 되면 실제 CPU로 프로세스 수행
- 외부 입출력(I/O)이나 이벤트가 발생했을 때, Running 상태에 있는 프로세스가 Waiting으로 이동함
- Waiting에서 Ready로 이동한 것은 입출력이나 이벤트가 완료됨을 의미
- exit은 Running 상태에 있던 프로세스 종료
- Running <-> Ready : 운영체제는 멀티 태스킹, 멀티 프로세싱을 달성하게 됨
프로세스 제어 블록(Process Control Block, PCB)

- 프로세스에 대한 모든 정보가 모여있는 곳
- Task Control Block(TCB) 라고도 함
- 프로세스 상태, 프로세스 번호(PID), 프로그램 카운터(PC), register 값, MMU 정보, CPU 점유 시간 등 포함