- Central Processing Unit, 연산, 제어 장치들로 구성되어 있는 컴퓨터 장치
- 커널이 프로그램을 메모리에 올려 프로세스로 만들면, CPU가 이를 처리한다, OS의 일꾼같은 존재
스케줄링
- CPU 스케줄링은 스케줄링 알고리즘에 따라 Process에서 해야 하는 일들을 Thread 단위로 할당하는 것을 말한다
- 스케줄링은 CPU 이용률은 높이면서 짧은 시간 동안 많은 일을 하도록 설정하는 것을 목표로 가진다
- 크게 두 가지 방식이 있는데, Process가 CPU 소유권을 선점하고 있냐, 아니냐에 따라 다르다
- 비선점형, Process가 CPU 소유권이 없어 Process를 강제 중단하지 않는다
- FCFS - First Come, First Served, 가장 먼저 온걸 먼저 처리한다
- SJF - 실행 시간이 짧은 Process부터 처리한다
- 선점형, CPU 소유권으로 인해 기존 사용하던 Process를 중단하고 다른 Process로 할당하는 방식
- Round Robin - 각 Process에게 동일한 할당 시간을 주어 해당 시간안에 끝나지 않으면 내부 Queue로 보내 다시 실행하도록 하는 동작
- SRF - 한 Process가 실행중인데, 더 짧은 작업의 Process가 들어오면, 더 짧은걸 먼저 처리하는 방식
- 다단계 큐 - 우선순위에 따른 Queue를 각각 준비하여, Queue마다 다른 스케줄링 알고리즘을 적용하여 실행한다