스케쥴링 알고리즘
프로세스
- 실행 중인 프로그램은 프로세스라고 한다
- 프로세스: 메모리에 올려져서, 실행 중인 프로그램
- 코드 이미지(바이너리): 실행 파일, 예: ELF format
- 그렇지만 응용 프로그램과 프로세스는 다르다
- 응용 프로그램은 여러 개의 프로세스로 이루어질 수 있음
- 여러 개의 프로세스(프로그램)가 상호작용을 하면서 하나의 응용 프로그램이 실행될 수 있음
간단한 프로그램을 만든다면 -> 하나의 프로세스
여러 프로그램을 만들어서, 서로 통신하면서 프로그램을 작성할 수도 있음(IPC기법)
스케쥴러와 프로세스
스케쥴러의 목표
- 시분할 시스템: 프로세스 응답 시간을 가능한 짧게
- 멀티 프로그래밍: CPU활용도를 최대로 높혀서, 프로세스를 빨리 실행
FIFO 스케쥴러

출처: 위키디피아
- First In First Out or FCFS(First Come First Served)
- 가장 간단한 스케쥴러(배치 처리 시스템
최단 작업 우선(SJF)스케쥴러
- SJF(Shortest Job First) 스케쥴러
- 가장 프로세스 실행시간이 짧은 프로세스부터 먼저 실행
우선순위 기반 스케쥴러

- Priority-Based 스케쥴러
- 정적 우선순위
- 동적 우선순위
- 스케쥴러가 상황에 따라 우선순위를 동적으로 변경
Round Robin 스케쥴러

