본문 바로가기
운영체제

운영체제 6. 프로세스 스케줄링

by MiaCoder 2024. 4. 18.

스케줄링

여러 프로세스가 번갈아 사용하는 자원을 어떤 기점에 어떤 프로세스에 팔당할지 결정

프로세스 스케줄링

자원이 프로세스인 경우

성능에 영향을 미침

효율성을 높이고, 응답시간을 최소화하는 것이 필요

 

스케줄링의 목적

자원할등의 공정성 보장

단위시간당 처리량 최대화

 

프로세서 버스트

특정 작업을 처리하기 위한 시간

입출력 버스트 

입출력에 기다리는 시간

짧은 버스트는 여러번 실행, 긴 버스트는 적은 횟수로 실행

 

스케줄링의 단계

1단계 작업 선택

실제로 시스템 자원을 선택할 작업 선택

디스크에서 메모리로 가져올 때 어떤걸 가져올것인지 결정

(장기)

 

2단계 작업 승인과 프로세서 결정 스케줄링 사용권한 부여

프로세서 사용 권한을 부여할 프로세스를 경정하는 작업승인, 프로세서 할당 스케줄링

시스템 오버헤드에 따라 프로세스 잠정 결정

(중기)

 

3단계 프로세서 팔당 스케줄링 준비 상태의 프로세서에 프로세서 할당(디스패칭)

준비 상태에 있는 프로세스 중 프로세서 할당할 프로세스를 결정

 

스케줄링 큐

 

다단계 큐

 

장기 스케줄러

디스크에서 메모리로 가져와 처리 순서ㅡㄹ 경정

준비큐로 옯길 때 사용

 

단기 스케줄러

메모리에 적재된 프로세서에 프로세소를 할당하는 것

준비큐에서 실행으로 옯길때 사용

 

단기 스케줄러는 수시로 선택하며 매우 자주 실행도미

장기 스케줄러는 상대적으로 드물게 실행또한 프로세스 수를 결정

 

중기 스케줄러

프로세서를 할당받아 일을 하던 프로서서를 중단하고 (스왑 아웃)준비상태에 두다가

다시 실행하는 역할을 함(스왑 인)

 

디스패처를 추가한 경우

단기스케줄러 -> 디스패처로 변경된다

 

선점 스케줄링

다른 프로세스가 사용하는 프로세서를 뺏어 사용하는 스케줄링

독점 방지 목적

긴급처리 용의

빠른 응답 시간

선점 하는 프로세스는 준비상태에 있어야 효과적

우선순의를 의미있게 부여하는 것이 중요

 

비선점 스케줄링

이미 프로세스에 할당된 프로서스를 빼앗지 못하고 종료시 까지 기다림

응답시간 예측 용의

 

스케줄링 알고리즘 비교 시 참조 기준

프로세서 사용률

처리율 단위시간당 작업수

반환시간 작업이 메모리에들어가기까지 걸리는 시간, 준비큐에 머무는 시간, 실행시간, 입출력시간

대기시간 준비큐에서 기다리는 시간 최소화

반응시간 작업 요청부터 반응까지 시간

 

선인 선처리 스케줄링

비선정 방식, 가장 단순함

프로세서가 요청하는 순으로 할당

FIFO 방식

일괄처리에서는 효과적, 대화식에는 부적합

단순하고 공정하다

비선점 식이라 작업시간이 긴 프로세스가 앞에 있으면 문제 발생

 

최소작업 우선 스케줄링

실행시간이 짧은 순서대로 프로세스에 할당함

이렇게 히면 대기시간이 줄어드는 효과를 얻을 수 있음

 

최소작업 스케줄링-비선점

최소작업시간 순서대로 진행하나 비선점이어서 프로세스를 중간에 끊지 않는다

시작시에는 가장 빨리도착한 프로세를 실행한다

 

최소작업 스케줄링 - 선점

최소작업시간 대로 실행하면 선점이기에 프로세스 실행 중 가운데 끊는다.

실행 중에 더 짧은 처리시간을 가진 프로세스가 오면 선점

 

평균대기시간이 가장 짧은 장점

기아현상, 불공정 발생 단점

 

'운영체제' 카테고리의 다른 글

운영체제 메모리관리  (1) 2024.06.14
운영체제 스케줄링  (0) 2024.06.14
운영체제 5. 교착과 기아  (0) 2024.04.18
운영체제 3. 병행 프로세스, 상호배제  (1) 2024.04.17
운영체제 3. 프로세스, 스레드  (0) 2024.04.16