프로세스 스케줄링이란

2023. 11. 18. 12:49스터디/OS 스터디

728x90

스케줄링이란?

여러 프로세스가 번갈아 사용하는 자원을 어떤 시점에 어떤 프로세스에게 할당할지 결정하는 것이다.

스케줄링 방법에 따라 시스템 성능에 영향을 미친다.

 

스케줄렁의 목적은 다음과 같다.

- 자원 할당의 공정성 보장

- 단위시간 당 처리량 최대화

- 적절한 반환시간 보장

- 오버헤드 최소화

- 실행 대기 방지(실행 무기한 연기 방지)

- 우선순위 부여

 

스케줄링의 기준 요소는 어떻게 될까?

이를 알기 위해 프로세스의 실행 시간을 좀 더 구체적으로 살펴보자.

프로세스를 프로세서에서 실행할 때를 프로세서 버스트라고 하며,

입출력 버스트는 프로세스가 추가로 실행하려고 입출력을 기다리고 있을 때이다.

프로세스의 실행 형태는 아래 그림과 같이 순환 형태로 구성된다.

 

프로세서 버스트는 입출력 대기시간에 따라 사용량이 결정된다.

 

입출력 대기시간이 짧으면 프로세서를 오래 차지하여 프로세서 버스트가 길고,

입출력 대기시간이 길면 오히려 입출력을 오래 기다리므로 프로세서 버스트가 짧다

따라서 프로세서 버스트가 긴 프로세스를 프로세서 중심 작업이라 하고,

역으로 프로세서 버스트가 짧은 프로세스는 입출력 중심 작업이라고 한다.

 

스케줄링 단계

수케줄링의 수행 단계는 세 단계로 세분화할 수 있다.

1. 작업 선택

시스템 자원을 사용할 작업을 결정하는 작업 스케줄링이다. 장기 스케줄링에 해당한다.

작업 스케줄러라고도 하며, 디스크에서 메모리로 작업을 가쳐와 처리할 순서를 결정한다.

시분할 시스템에서는 장기 스케줄러가 없고, 새로운 프로세스를 메모리에 넣기만 한다.

2. 사용 권한 부여

프로세서를 사용할 권한을 부여할 프로세스를 결정하고, 프로세스를 할당한다. 중기 스케줄링에 해당한다.

중기 스케줄러는 프로세스들이 프로세서를 서로 차지하려고 할 때 별도의 기억 장소에서 빼온다.

빼낸 프로세스는 다시 메모리에 들어가 실행을 중단했던 곳 부터 다시 실행한다. 이를 스왑한다고 한다.

즉, 중기 스케줄러는 스왑 인과 스왑 아웃을 결정한다.

3. 프로세서 할당

디스페처(분배기)가 준비 상태에 있는 프로세스 중에서 프로세서를 할당할 프로세스를 결정한다. 단기 스케줄링에 해당한다. 

메모리에 적재된 프로세스 중 프로세서를 할당하여 실행 상태가 되도록 결정한다.

 

 

순서대로 정리해보자면,

장기 스케줄러는 프로세스의 생성 과정에서 준비 상태에 무엇을 추가할 것인지 결정하며, 메모리 사용 가능 공간 및 자원을 확인한다.

중기 스케줄러는 스왑 기능의 일부로, 메모리에 부분적으로 프로세스를 적재하고, 일시 중지된 프로세스를 다시 준비상태로 만든다.

단기 스케줄러는 실행할 프로세스를 선택한다.

 

 

스케줄링은 다양한 큐를 사용하는데, 우선 준비 큐에서 프로세스들이 대기하고, 스케줄러가 준비 큐에서 프로세서를 할당한다.

입출력장치 큐에는 여러 프로세스가 대기할 수 있다.

 

선점? 비선점?

한 프로세스가 자원을 선택했을 때 다른 프로세스가 해당 자원을 빼앗을 수 없다면 비선점 스케줄링,

역으로 뺏을 수 있으면(인터럽트 할 수 있거나, 준비 상태로 이동할 수 있다면) 선점 스케줄링이다.

선점 스케줄링은 장시간동안 프로세서를 독점하는 것을 방지하나, 오버헤드가 커질 수 있다.

그렇기에 우선순위라는 개념을 반드시 고려해야한다.

 

스케줄링 알고리즘 선택 기준

어떤 스케줄링이든 일장일단이 있다. 따라서 시스템의 특성을 충분히 고려해서 선택해야한다. 선택 기준은 아래와 같다.

- 프로세서 사용률 최대

-  처리율(시간 당 완료 수) 최대

- 반환 시간(메모리에 들어간 후 작업 완료까지 소요되는 시간) 최소

 

 

출처 : 운영체제 - 구현회 지음

728x90

'스터디 > OS 스터디' 카테고리의 다른 글

메모리 관리  (0) 2023.11.24
스케줄링 알고리즘  (1) 2023.11.24
교착 상태와 기아 상태  (0) 2023.11.11
병행 프로세스와 상호배제  (0) 2023.11.11
스레드  (0) 2023.11.11