꾸준한 개발자

계속적인 성장을 추구하는 개발자입니다. 꾸준함을 추구합니다.

계속 쓰는 개발 노트

운영체제 (OS)

스케줄링 알고리즘 (1)

gold_dragon 2021. 4. 15. 19:21

프로세스

실행 중인 프로그램을 프로세스라 합니다. 프로세스 메모리에 올려져서 실행이 됩니다. 코드 이미지는 일종의 실행 파일입니다. 예로 ELF_format이 있습니다. 우리는 프로세스를 작업이라고도 하고 task라고도 하고, job이라고 부르기도 합니다.

응용 프로그램이 프로세스인 것은 아닙니다. 응용 프로그램은 여러 개의 프로세스로 이루어집니다. 여러 개의 프로세스가 상호작용을 할 수 있습니다.

스케줄러와 프로세스 관계

스케줄러는 프로세스를 관리합니다. 스케줄링하는 단위가 프로세스가 됩니다.

스케줄링 알고리즘

어느 순서로 프로세스를 실행시킬까하는 고민을 합니다.

FIFO 스케줄러

가장 간단한 스케줄러입니다. 배치 처리 시스템과 유사합니다. 들어온데로 실행이되고 완료될 때까지 기다려야 됩니다.

최단 작업 우선 (SJF 스케줄러)

shorttest job first로 프로세스 실행 시간이 가장 짧은 프러세스부터 실행하는 알고리즘입니다.
FIFO 알고리즘보다 응답시간이 짧을 수 있다는 장점이 있습니다.