cs(운영체제)

스케줄링

그zi운아이 2023. 9. 4. 21:43

CPU 스케줄링 

  • 모든 프로세스는 CPU를 필요로 하고 사용하고 싶어하는데 이러한 프로세스들에게 공정하고 합리적으로 CPU 자원 을 할당하기 위해 우선순위를 정해주는 것
  • 선점형 스케줄링과 비선점 스케줄링이 존재한다 .
  • 스케줄링에 관한 정보는 PCB에 저장된다.

스케줄링 큐 

PCB에 우선순위가 있지만 다음 프로세스를 찾기위해 모든 PCB를 탐색하는건 비효율적이다. 스케줄링 큐는 이를 해결해준다.

대표적으로 준비 큐와 대기 큐가 있다.

준비 큐는 CPU가 생성되고 메모리에 공간이 있으면 CPU에 프로세스가 할당 되기전 대기하는 큐이다.

대기 큐는 입출력과 같은 인터럽트가 발생했을떄 인터럽트가 종료될 때까지 대기하는 큐이다.

 

선점형과 비선점 스케줄링

선점형 스케줄링 

운영체제가 프로세스로부터 자우너을 강제로 빼앗아 드른 우선순위가 더 높은 프로세스에 할당할 수 있는 스케줄링 방식

한 프로세스의 독점을 막고 골고루 자원 배분이 가능하다는 장점이있지만

문맥 교환 과정에서 오베헤드가 발생할 수 있다는 단점이 있다.

 

비선점 스케줄링

한 프로세스가 자원을 이용하고 있을 때 이 프로세스가 종료되거나 스스로 대기 상태에 접어들기 전까진 다른 프로세스가 끼어들 수 없는 스케줄링 방식

문맥 교환에서 오버헤드는 선점형 스케줄링 보다 적다는 장점이있지만

모든 프로세스가 골고루 사원을 사용할 수 없다는 단점이 있다.

 

스케줄링 알고리즘의 종류 

FCFS(선입 선처리 스케줄링)

단순히 준비 큐에 삽입도니 순서대로 프로세스를 처리하는 비선점형 스케줄링 방식이다.

장점

스케줄링의 이해와 구현이 간단하다.

단점

긴 프로세스가 동작하는 동안 짦은 프로세스가 긴 대기로 호위효과가 발생할 수있다.

 

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

준비큐에 삽입된 프로세스중 CPU이용 시간의 길이가 가장 짧은 프로세스부터 실행하는 스케줄링 방식

장점

항상 실행시간이 짧은 프로세스 부터 실행됨으로 평균 대기 시간이 가장 짧다.

단점 

짧은 작업이 항상 먼저 실행되기 때문에 CPU가 우선할당 받아야되는 프로세스가 늦게 수행 될수도 있다.

 

RR(라운드 로빈)

FCFS스케줄링에 타임 슬라이스 라는 개념이 더해진 스케줄링 방식으로 정해진 타임 슬라이스만킁의 시간 동안 돌아가며 CPU를 이용하는 선점형 스케줄링이다.

장점

구현이 간단하고 동작이 예측가능하다.

모든 프로세스가 동일한 CPU 시간을 할당받기 때문에 특정 프로세스가 공평하게 수행된다.

단점

타임 슬라이스가 너무 크면 FIFO 스케줄링과 다른점이 없고 너무 작으면 문맥 교환이 빈번하게 전환되므로 오버헤드가 증가한다.

 

STR(최수 잔여 시간 우선 스케줄링)

 

SJF 스케줄링과 RR 스케줄링을 합친 방식으로 프로세스들은 정해진 타임 슬라이스만큼 CPU를 사용하되 CPU를 사용할 다음 프로세스는 남아 있는 작업 시간이 가장 적은 프로세스가 선택된다.

장점

남은 시간이 짧은 프로세스를 우선하여 CPU를 할당하기 때문에 CPU사용율이 높다.

단점

프로세스의 남은 실행 시간을 알아야 하므로 이 정보가 정확하지 않으면 알고리즘이 비효율적으로 작동할 수 있다.

 

다단계 큐 스케줄링

우선순위별로 준비 큐를 여러 개 사용하는 스케줄링 방식으로 다단계 큐스케줄링 우선순위가 가장 높은 큐에 있는 프로세스를 먼저 처리하고 우선순위가 높은 큐가 비어 있으면 그다음 큐에 있는 프로세서를 처리한느 스케줄링

장점 

다양한 유형의 작업을 다르게 처리할 수 있다.

각 큐마다 다른 스케줄링 알고리즘을 적용하여 요구에 유연하게 해주고 특정 유형의 작업에 더 많은 CPU 시간을 할당할 수 있어 시스템의 성능이 올라간다.

단점

프로세스들이 큐 사이를 이동할 수 없어 우선순위가 낮은 프로세스는 계속 연기될 수 있다. 이는 기아 현상을 발생킨다.

 

다단계 피트백 큐 스케줄링

다단계 큐 스케줄링의 발전된 형태로 프로세스들이 큐 사이를 이동할 수 있도록 한 스케줄링

장점

우선순위가 낮은 우선순위 큐에서 너무 오래 기다리고 있는 프로세스가 잇다면 우선순위가 높은 큐로 이동시키는 에이징 기법을 적용하여 기아현상을 예방한다.

단점

구현이 복잡하다.


CPU 스케줄링 종류

단기 스케줄러

준비 큐에 있는 프로세스 중에 다음에 CPU에 할당할 프로세스를 선택한다.

일반적인 스케줄러는 단기 스케줄러를 의미한다.

프로세스가 종료되거나 입출력을 위해 대기 상태로 전환될 때 발생된다.

 

중기 스케줄러

너무 많은 프로세스에게 메모리를 할당했을때 주 기억장치와 CPU의 사용을 최적화 하기 위해 실행 중인 프로세스를 일시 중지 하거나 활성화 합니다.

swap out이나 swap in상태에서 발생합니다

 

장기 스케줄러

어떤 프로세스를 생성하고 준비큐에 삽일 할지를 정한다. 보조기억장치에 적재되어 있는 프로그램을 주 기억장치로 

로드한다.

프로세스가 생성되거나 종료됐을때 발생한다.

 

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

가상 메모리  (1) 2023.09.08
IPC  (0) 2023.09.06
교착 상태(DeadLock)  (0) 2023.09.06
프로세스 동기화  (1) 2023.09.06
프로세스  (0) 2023.09.04