스케쥴링 알고리즘 기본1

2021. 2. 20. 00:39Computer(인강)/운영체제

728x90
반응형
이 포스팅은 fastcampus의 '컴퓨터 공학 전공자 따라잡기 온라인 완주반' 강의를 참고하여 작성하였습니다.

 

 

안녕하세요 bannavi입니다^ㅅ^

눈치채셨나요,, 저의 폭풍 포스팅,,

후후..어디서 그런짤을 본적이 있어요..머리속에 넣다보면 언젠간 알아서 이어진다......

 

 

 바로 시작하겠습니다

 

 

얍!

 

 

오늘은 스케쥴링 알고리즘에 대해 공부해볼거에요

 

먼저 프로세스의 정의에 대해서 살펴볼게요

 

프로세스란?

실행중인 프로그램은 프로세스라고함.

 

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

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

 

프로세스라는 용어는 작업, task, job이라는 용어와 혼용이됩니다.

 

여기서 잠깐!!

 

응용프로그램은 =! 프로세스

 

입니다.

즉, 응용프로그램은 프로세스라고 말할 수 없다라는 건데요,

 

응용프로그램은 여러개의 프로세스로 이루어질 수 있습니다.

하나의 응용프로그램은 여러개의 프로세스(프로그램)가 상호 작용을 하면서 실행될 수도 있습니다.

 

- 간단한 C/C++ 프로그램을 만든다면 -> 하나의 프로세스

 - 여러 프로그램을 만들어서, 서로 통신하면서 프로그램을 작성할 수도 있음.

(프로세스가 통신하는 기법을 IPC기법이라고 하는데 이부분은 조금 뒤에가서 배워볼게요)

 

 

 

스케쥴러와 프로세스의 관계

 

누가 프로세스 실행을 관리할까요?

-> 스케쥴러

 

 

 

스케쥴링 알고리즘

어느 순서대로 프로세스를 실행시킬까?

 

어떤 규칙으로?

어느시점에?

 

스케쥴링 알고리즘의 목표

1. 시분할 시스템 예: 프로세스 응답 시간을 가능한 짧게

2. 멀티프로그래밍 예: CPU활용도를 최대로 높여서 프로세스를 빨리 실행

 

 

 

1. FIFO 스케쥴러

First in First out이죠. 아래를 보시면 먼저 들어간것이 먼저 나오고 있네요.

1. 프로세스가 저장매체를 읽는다든지, 프린팅을 한다든지 하는 작업 없이,

쭉 CPU를 처음부터 끝까지 사용한다.

 

2. 가장 간단한 스케쥴러라고 할 수 있음.

 

아래를 보시면 왼쪽에 있는 프로세스에서 1부터 좌측으로 실행된다고 했을때 아래 CPU와 같이 실행되겠죠.

first in first out! 먼저 들어간것이 먼저 나오는것이니까요!

 

 

그래서 배치 처리 시스템과 유사합니다.

FIFO Scheduler는 FCFS 스케쥴러 라고도 불려요. First Come First Served.

처음으로 나온것이 처음으로 CPU에 올려진다는 의미에요.

 

 

여기서 잠깐!

 

FIFO는 어디서 배웠을까요?

바로 queue에서 배웠죠.

 

(그림이 초큼 이상하긴한데 s는 아마 31앞에 있었던거같아요..)

 

 

2. 최단 작업 우선(Shortest Job First) 스케쥴러

 SJF(Shortest Job First) 스케쥴러란

프로세스 실행기간이, 가장 짧은 프로세스부터 실행시키는 알고리즘

->FIFO보다는 응답시간이 짧을수도 있다는 장점이 있지만,

실행시간을 모른다면 이용할 수 없다.

 

(실행시간이 짧은것을 먼저 실행시켜야 하는데 실행시간을 모른다면 의미가 없겠죠!)

 

FIFO 와 SJF를 비교해놓은 모습이에요

 

 

 

 

 

 

 

 

 

 

 

728x90
반응형