본문 바로가기
programing/OperatingSystem

프로세스 스케줄링 알고리즘

by RedWiz 2017. 8. 21.

- 스케줄링

> 프로세스들이 작업을 수행하기 위해서는 프로세스 스케줄러들로 부터 CPU를 할당 받아야 한다. 이런 작업은 OS에 의해 구현되고 CPU를 언제, 어떤 프로세스에게 할당 되는지 결정하는 작업을 프로세스 스케줄링이라 한다.


- 스케줄링의 목적

> 공정한 스케줄링

> 처리량 극대화

> 응답시간 최소화

> 반환 시간 예측 가능

> 균형 있는 자원 사용

> 응답시간과 자원 이용간의 조화

> 우선 순위제를 실시

> 페이지 부재를 적게 발생시키는 프로세스에게 더 좋은 서비스를 해줌


- 선점 스케줄링

> 어떤 프로세스가 CPU를 점유하고 있을 때, 다른 프로세스가 현재 프로세스를 중지하고 자신이 CPU를 점유할 수 있는 방식

> 우선 순위가 높은 프로세스가 먼저 수행 될 때 유리하고, 빠른 응답시간을 요구하는 시분할 시스템에 유용

> 선점 때문에 오버헤드 발생







- 비선점 스케줄링

> 어떤 프로세스가 CPU를 점유하고 있을 때, 다른 프로세스는 할당 받은 프로세스가 작업 종료할 때까지 CPU를 점유를 할 수 없는 방식

> 모든 프로세스 요구를 공정하게 처리 가능

> 응답 시간 예측 가능

> 짧은 작업이 긴 작업을 기다리는 경우가 발생할 수 있음










< 정리 >

- 선점 알고리즘 : CPU 점유를 뺏어서 다른 프로세스에게 줄 수 있다.


- 비선점 알고리즘 : CPU가 처리 중 인 프로세스를 기다려야 한다.


 선점 알고리즘

 방법

 특징

 Round Robin

 FCFS 방식의 변형으로 일정한 시간(Time Slice)을 부여

 - 시분할 방식에 효과적

 - 할당 시간이 크면 FCFS와 동일

 - 할당 시간이 작으면 컨텍스트 스위칭이 자주 발생

 SRT

 작업 도중 나머지 작업 시간이 적은 작업을 우선적으로 처리하는 방법

 - 처리는 SJF와 같으나 이론적으로 가장 작은 대기 시간이 걸림

 MLQ

 서로 다른 작업을 각각의 큐에서 타음 슬라이스로 처리

 - 각각의 큐는 독자적인 스케줄링 알고리즘을 사용

 MFQ

 하나의 준비 상태 큐를 통해서 여러 개의 피드백 큐를 걸쳐 일을 처리

 - CPU와  I/O 장치의 효율을 높일 수 있음



비선점 알고리즘

 방법

 특징

 우선순위

 우선순위를 할당해 우선순위가 높은 순서대로 처리하는 방법

 - 정적 우선 순위

 - 동적 우선 순위 

 기한부

 프로세스가 주어진 시간 내에 작업이 끝나게 계획하는 방법

 - 마감 시간을 계산해야 하므로 막대한 오버헤드와 복잡성이 발생 

 FCFS

 작업이 시스템에 들어온 순서대로 수행하는 방법

 - 대화형에 부적합

 - 간단하고 공평함

 - 반응 속도를 예측 가능

 SJF

 수행 시간이 적은 작업을 우선적으로 처리하는 방법

 - 작은 작업에 유리

 - 큰 작업은 시간이 많이 걸림

 HRN

 SJT의 큰 작업 시간이 많이 걸리는 점을 보완한 방법

 - 우선순위 = (대기시간 + 서비스 시간) / 서비스 시간



'programing > OperatingSystem' 카테고리의 다른 글

IRQ, IRQL  (0) 2015.07.28