스케쥴링 알고리즘 기본

2020. 1. 11. 16:24컴퓨터공학기초 및 이론/운영체제

Process란? 

- 실행중인 프로그램을 일반적으로 일컬음, task, job 등과 혼용

프로세스: 메모리에 올려져서 실행중인 프로그램

코드 이미지(바이너리): 실행 파일, (ex: ELF format)

응용프로그램 != 프로세스 -> 응용 프로그램은 여러개의 프로세스로 이루어질 수 있다// 하나의 응용 프로그램은 여러 개의 프로세스(프로그램)가 상호작용을 하면서 실행될 수도 있음

프로세스 실행을 관리하는 것 - 스케쥴러

스케쥴링 알고리즘이란? 어느 순서대로 프로세스를 실행시킬까에 대한 결정 

-> 시분할 시스템 // 멀티프로그래밍 등과 같은 부분을 적용

FIFO 스케쥴러 - 가장 간단한 스케쥴러 (배치 처리 시스템). 저장매체 IO작업이나 프린팅 작업등 없이 쭉 CPU를 처음부터 끝까지 사용한다. FCFS 스케쥴러라고도 한다(First Come First Served) 

SJF(최단 작업 우선) 스케쥴러 - 가장 프로세스 실행시간이 짧은 프로세스부터 먼저 실행을 시키는 알고리즘

우선순위 기반 스케쥴러 (Priority-Based) 

- 정적 우선순위 : 프로세스마다 우선순위를 미리 지정

- 동적 우선순위 : 스케쥴러가 상황에 따라 우선순위를 동적으로 변경

Round Robin 스케쥴러

- 준비 큐에 프로세스에 올릴 작업들을 넣고, 시분할 시스템을 적용하여 실행. 시분할 단위로 작업이 완료되지 않은 작업은 다시 큐에 반환하는 식으로 돌리고 작업이 완료되면 다시 큐에 추가되지 않음. 

Round Robin Scheduler