본문 바로가기
운영체제

6. 운영체제 - 스케쥴링 알고리즘

by #Glacier 2019. 12. 27.
반응형

프로세스란 메모리에 올라가 실행중인 프로그램을 프로세스라고 합니다.

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

 

응용 프로그램은 여러 개의 프로세스로 이루어질 수 있고, 하나의 응용 프로그램은 여러 개의 프로세스(프로그램)가 상호작용을 하면서 실행될 수도 있습니다. 이러한 프로세스의 실행을 관리하는 것이 바로 스케쥴러입니다.

그리고 스케쥴러가 어느 순서대로 프로세스를 실행시킬지와 관련된 것이 스케쥴링 알고리즘입니다.

여러 알고리즘을 보기 전에 Process가 다음과 같이 있다고 가정합니다.

 

1) FIFO 스케쥴러

 

-프로세스가 저장매체를 읽거나, 프린팅 한다던지 하는 작업 없이 계속해서 CPU를 사용한다.

-가장 간단한 스케쥴러(배치 처리 시스템)로, FCFS(First Come, First Served) 스케쥴러이다.

 

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

 

-가장 프로세스 실행시간이 짧은 프로세스부터 실행시키는 스케쥴러

 

Realtime OS (RTOS) : 응용 프로그램 실시간 성능 보장을 목표로 하는 OS

                            정확하게 프로그램의 시작, 완료 시간을 보장 (공정에 주로 쓰임. Hardware RTOS, Software RTOS)

General Purpose OS (GPOS) : 프로세스 실행시간에 민감하지 않고, 일반적 목적으로 사용되는 OS (Linux, Windows 등)

 

3) 우선순위 기반 스케쥴러

 

-Priority-Based 스케쥴러

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

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

 

4) Round Robin 스케쥴러

 

-Round Robin Ready Queue(준비 큐)가 있음.

-FIFO와 비슷하나, 시분할 시스템이 기반이 되어 약간 다르다.

 여러 번 실행되어야 하는 프로세스를 큐로 넘겨(선점) 여러 프로세스가 번갈아 나타난다.

 

다양한 스케쥴러에 따른 결과 예상
Process 결과
  P3 P2 P2 P2 P1 끝나는 순서 1 2 3 4 5
순서 5 4 3 2 1 FIFO P1 P2 P2 P2 P3
시간 1초 5초 5초 5초 3초 SJF P3 P1 P2 P2 P2
Priority 10 20 20 20 1 Priority P1 P3 P2 P2 P2
            RR P1 P2 P3 P2 P2

 

 출처 

이 글의 상당 부분은 패스트캠퍼스 컴퓨터 공학 기초 강의를 참고하였습니다.

개인 학습, 복기용이기 때문에 복제를 금합니다.

관심이 있으시다면 같이 공부하시거나, 해당 관련 강의를 직접 수강하시는 것을 추천합니다!

 

도움이 되시거나 더 좋은 지식을 공유하고 싶으시다면

아래의 댓글로 자유롭게 남겨주세요.

 

 

반응형