운영체제

[운영체제 7] 스케줄링 알고리즘

광규니 2021. 5. 4. 21:00
반응형

* 프로세스 : 메모리에 올려져서 실행중인 프로그램은 프로세스라고 함 -> 작업,task,job이라는 용어와 혼용

 

* 응용 프로그램 != 프로그램

- 응용 프로그램은 여러 개의 프로세스로 이루어질 수 있음

- 하나의 응용 프로그램은 여러 개의 프로세스(프로그램)가 상호 작용을 하면서 실행 될 수 있음(IPC 기법)

 

* 스케줄러 : 프로세스 실행을 관리

 

* FIFO 스케줄러 : 프로세스가 저장매체를 읽는다든지, 프린팅 작업 X

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

- 가장 간단한 스케줄러(배치 처리 시스템)

- FCFS(First Come First Served) 스케줄러

                    Processes

3 2 2 2 1

                         ↓

                     CPU

1 2 2 2 3

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

- SJF(Shortest Job First) 스케줄러 - > 가장 프로세스 실행시간이 짧은 프로세스부터 먼저 실행을 시키는 알고리즘

Processes                                         CPU

3 2 2 2 1 1         ->          SJF          3 1 1 2 2 2

 

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

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

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

        Processes                                                CPU

3(10)-2(20)-2(20)-2(20)-1(1)                   2-2-2-3-1

 

*Round Robin 스케줄러

- 시분할 시스템을 위해 설계된 선점형 스케줄링의 하나로서, 프로세스들 사이에 우선순위를 두지 않고, 순서대로 시간단위(Time Quantum)로 CPU를 할당하는 방식

시간을 쪼개서 CPU를 공평하게 할당

Processes                                         CPU

3 3 2 2 2 1  1         ->                   1 2 3 2 3 2

 

반응형