관리 메뉴

클라이언트/ 서버/ 엔지니어 " 게임 개발자"를 향한 매일의 공부일지

CPU 스케줄링 2 - CPU 스케줄링 알고리즘 본문

알고리즘 및 자료 관리/컴퓨터 구조 & 운영체제

CPU 스케줄링 2 - CPU 스케줄링 알고리즘

huenuri 2024. 10. 17. 23:55

이어서 CPU 스케줄링 알고리즘에 대해서 학습해 보겠다. 앞선 절에서 배운 개념들을 토대로 스케줄링 알고리즘에 대해서 배우게 된다.

 

CPU 스케줄링 알고리즘의 종류는 매우 다양하고 운영체제마다 서도 다른 스케줄링 알고리즘을 사용하고 있다. 여기서 다루지 못한 스케줄링 알고리즘도 있다. 그러므로 각 스케줄링 알고리즘의 작동 방식과 장단점을 이해하는데 집중하여 학습하면 된다.


 

 

 

스케줄링 알고리즘의 종류

여기서는 일곱가지 스케줄링 알고리즘에 대해 학습해 본다.


 

 

 

 

 

가령 CPU를 오래 사용하는 프로세스가 먼저 도착하면 다른 프로세스는 그 프로세스가 CPU를 사용하는 동안 무작정 기다릴 수밖에 없다.

그림에서처럼 A, B, C 프로세스가 차례대로 준비 큐에 삽입된다면 프로세스 C는 고작 2ms를 실행하기 위해 22ms라는 긴 시간을 기다려야 한다. 이런 현상을 호위 효과라고 한다.

 

 

 

 

만약 CPU 사용 시간이 짧은 C와 B부터 실행한다면 C는 더 이상 기다릴 필요가 없고, B는 2ms, C는 7ms만 기다리면 된다.

 

최단 작업 우선 스케줄링은 기본적으로 비선점형 스케줄링 알고리즘으로 분류되지만, 선점형으로 구현될 수도 있다. 

 

 

 

 

타임 슬라이스가 지나치게 크면 사실상 선입 선처리 스케줄링과 다를 바 없어 호위 효과가 생길 여지가 있다. 타임 슬라이스가 지나치게 작으면 문맥 교환이 발생하는 비용이 커 CPU는 프로세스를 처리하는 일보다 프로세스를 전환하는 데 온 힘을 다 쓸 여지가 있기 때문이다.

 

 

 

 

 

 

 

 

앞서 살펴본 최단 작업 우선 스케줄링, 최소 잔여 시간 우선 스케줄링 알고리즘은 넓은 의미에서 우선순위 스케줄링의 일종으로 볼 수 있다. 최단 작업 우선 스케줄링은 작업 시간이 짧은 프로세스에 높은 우선순위를 부여하는 방식이고, 최소 잔여 시간 우선 스케줄링은 남은 시간이 짧은 프로세스에 높은 우선순위를 부여하는 방식이라 볼 수 있기 때문이다.

 

 

 

 

 

 

 

 

위 그림을 보면 우선순위 0, 1, 2에 삽입된 프로세스들 순서대로 CPU를 할당받아 실행된다.

이렇게 큐를 여러 개 두면 프로세스 유형별로 우선순위를 구분하여 실행하는 것이 편리해진다. 가령 어떤 큐에는 우선순위가 비교적 높아야 하는 입출력 집중 프로세스가 삽입될 수 있고, 어떤 큐에는 우선운위가 비교적 낮아도 상관없는 CPU 집중 프로세스가 삽입될 수 있다.

또한 큐별로 타임 슬라이스를 여러 개 지정할 수도 있고, 큐마다 다른 스케줄링 알고리즘을 사용할 수도 있다. 예를 들어 어떤 큐에서의 타임 슬라이스는 크게, 어떤 큐에서의 타임 슬라이스는 작게 사용할 수 있다.

 

 

 

 

다단계 피드백 큐 스케줄링에서 새로 준비 상태가 된 프로세스가 있다면 우선순위가 높은 우선순위 큐에 삽입되고 일정 시간(타임 슬라이스) 동안 실행된다.

 

만약 프로세스가 해당 큐에서 실행이 끝나지 않는다면 다음 우선순위 큐에 삽입되어 실행된다. CPU를 오래 사용해야 하는 프로세스는 점차 우선순위가 낮아진다.

 

 

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

 

 

다단계 피드백 큐 스케줄링은 구현이 복잡하지만, 가장 일반적인 CPU 스케줄링 알고리즘으로 알려져 있다.


 

 

 

 

단원 마무리하기

 

 


 

 

 

학습을 마치고

앞의 CPU 스케줄링 단원을 열심히 공부해서 그런지 이번 단원은 무척 쉽게 느껴질 만큼 이해가 잘 되었다. 정보처리기사 필기를 통해 큐에 대한 개념과 여러 알고리즘의 종류를 이미 학습했기에 많은 도움이 되었다.

아무리 못해도 오늘 새벽에 12장과 13장까지는 모두 마치려고 한다.