-
[Operating System] CPU 스케줄링 : 개요Operating System 2024. 5. 19. 17:55
CPU 스케줄링의 개요를 우선순위 스케줄링을 기반으로 정리하였습니다.참조 : 인프런 '개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제'
< CPU 스케줄링이란? >
운영체제가 프로세스들에게 공정하고 합리적으로 CPU 자원을 배분하는 것

CPU의 프로세스 처리 이미지
< 프로세스 우선순위 >
프로세스마다 빨리 처리해야 하는 프로세스, 천천히 처리해도 괜찮을 프로세스 등을 효율적으로 처리하기 위해 운영체제는 각 프로세스의 PCB마다 우선순위를 설정하여 효율적으로 처리합니다.
Ex) 입출력 집중 프로세스 / CPU 집중 프로세스 우선순위 비교

: 보통 입출력 작업이 많은 프로세스( = 입출력 집중 프로세스)의 우선순위는 CPU 작업이 많은 프로세스 ( = CPU 집중 프로세스)의 우선순위보다 높습니다.
입출력 작업이 많은 프로세스는 CPU 집중 프로세스에 비해 대기상태에 더 많이 머무르기 때문입니다.
< 스케줄링 큐 >
스케줄링 큐(Scheduling Queue)는 운영체제의 프로세스 스케줄러가 관리하는 다양한 대기열을 말합니다.
운영체제가 각 PCB를 일일이 확인하며 우선순위를 판단하기는 비효율적이기 때문에 여러 대기열을 만들어 프로세스를 관리합니다.
스케줄링 큐는 대표적으로 준비 큐와 대기 큐가 있습니다.
+. 스케줄링 큐에서 반드시 선입선출 방식일 필요는 없습니다.
[ 준비 큐와 대기 큐 ]
: 준비 큐는 CPU를 이용하기 위해 기다리는 줄이고, 대기 큐는 입출력장치를 이용하기 위해 기다리는 줄입니다.

준비 큐와 대기 큐
[ 대기 큐 상세 ]
: 같은 장치를 요구한 프로세스들은 같은 큐에서 대기하는 경우가 많습니다.

자원별 대기 큐
< 선점형과 비선점형 스케줄링 >
자신보다 더 처리가 급한 프로세스가 CPU 사용을 요청할 때,
- 선점형 스케줄링은 현재 CPU를 사용중인 프로세스로부터 CPU자원을 빼앗아 다른 프로세스에 할당하고,
- 비선점형 스케줄링은 현재 CPU를 사용중인 프로세스의 작업이 끝날 때까지 요청한 프로세스를 대기시키는 방식입니다.
[ 선점형 스케줄링 ]
: 새로운 프로세스가 도착했을 때, 그 프로세스의 우선순위가 현재 실행 중인 프로세스의 우선순위보다 높다면, 현재 실행 중인 프로세스를 중단하고 새로운 프로세스에게 CPU를 할당합니다.
[ 장점 ] : 어느 할 프로세스의 자원 독점을 막고 프로세스들에 골고루 자원을 배분할 수 있습니다.
[ 단점 ] : 그만큼 문맥교환이 많이 발생하기 때문에 문맥 교환 과정에서 오버헤드가 발생할 수 있습니다.

[ 비선점형 스케줄링 ]
: 현재 실행 중인 프로세스가 CPU를 반납할 때까지 기다린 후, 준비 큐에서 우선순위가 가장 높은 프로세스를 선택하여 CPU를 할당합니다.
[ 장점 ] : 선점형 스케줄링에 비해 문맥 교환에서 발생하는 오버헤드가 적습니다.
[ 단점 ] : 모든 프로세스가 골고루 자원을 이용하기 어렵습니다. 우선순위가 낮은 프로세스는 기아(starvation) 상태에 빠질 수 있습니다.
'Operating System' 카테고리의 다른 글
[Operating System] 프로세스 동기화 : 동기화란 (0) 2024.05.19 [Operating System] CPU 스케줄링 : 알고리즘 (0) 2024.05.19 [Operating System] 운영체제 : 스레드 (0) 2024.05.18 [Operating System] 운영체제 : 프로세스 상태와 계층 구조 (0) 2024.05.18 [Operating System] 운영체제 : 프로세스 개요 (0) 2024.05.18