프로세스 우선순위 (Process Priority)
운영체제는 여러 준비 상태(Ready) 프로세스 중 어떤 프로세스에 CPU를 먼저 할당할지 결정해야 한다. 이때 단순히 도착 순서(FCFS)만으로 CPU를 배분하면, 전체 시스템 효율이 떨어질 수 있다. 실제로는 프로세스마다 다른 우선순위(Priority)를 부여하여, 중요하거나 빨리 처리해야 하는 프로세스가 더 우선적으로 CPU를 쓸 수 있도록 한다.
1. 우선순위가 필요한 이유
하나의 CPU에서 여러 프로세스가 동시에(또는 병행) 실행되려면, 운영체제(OS)가 CPU 스케줄링을 수행한다. 가장 단순한 방식으로는 도착 순서대로 차례로 CPU를 사용하게 할 수 있지만, 이는 항상 최적은 아니다. 왜냐하면 프로세스마다 다음과 같은 차이가 존재하기 때문이다:
- 중요도: 어떤 프로세스는 시스템 전체적으로 중요한 작업을 담당한다(예: 실시간 처리).
- 실행 패턴: 입출력(I/O) 작업이 많은 프로세스와 CPU 연산이 많은 프로세스 간 요구사항이 다르다.
이처럼 각 프로세스의 특성과 우선순위(중요도)를 고려하지 않고 무작정 순서대로만 배분하면, 시스템 전반 성능이 저하될 수 있다.
2. I/O 집중 vs. CPU 집중 프로세스
2.1 CPU 버스트와 I/O 버스트
프로세스는 실행 도중 CPU 작업과 입출력(I/O) 작업을 반복한다.
- CPU 버스트(CPU Burst): CPU가 필요한 연산 수행(계산, 논리 처리 등)
- I/O 버스트(I/O Burst): 디스크, 네트워크, 키보드 등 입출력 장치 대기를 포함한 입출력 작업
(그림 출처: 혼자 공부하는 컴퓨터 구조 + 운영체제)
- I/O 집중 프로세스(I/O-bound Process)
- I/O 버스트에 더 많은 시간을 사용. (예: 비디오 재생, 디스크 백업, 웹 서버에서 I/O가 많은 작업 등)
- 상대적으로 CPU 사용은 짧다.
- CPU 집중 프로세스(CPU-bound Process)
- CPU 버스트에 더 많은 시간을 사용. (예: 복잡한 계산, 그래픽 렌더링, 컴파일 등)
- 상대적으로 I/O 사용은 짧다.
2.2 왜 I/O 집중 프로세스가 먼저 실행되는 것이 효율적일까?
시스템 전체 성능을 높이려면, 입출력장치가 놀지 않고 항상 동작하도록 하는 것이 중요하다.
- 만약 CPU 집중 프로세스가 먼저 CPU를 장시간 점유하면, I/O 집중 프로세스는 CPU를 얻지 못해 입출력 요청조차 지연될 수 있다.
- 반면 I/O 집중 프로세스를 빨리 CPU에 투입하면, 곧바로 입출력장치를 동작시켜 I/O 대기 상태로 들어간다. 그동안 CPU는 다시 다른 작업(예: CPU 집중 프로세스)을 처리할 수 있어 동시성이 극대화된다.
(그림 출처: 혼자 공부하는 컴퓨터 구조 + 운영체제)
3. 프로세스 우선순위(Priority)
3.1 우선순위 할당
운영체제는 각 프로세스의 PCB(Process Control Block)에 우선순위 값을 기록한다. 이 값이 높을수록 해당 프로세스가 더 일찍(또는 더 자주) CPU를 할당받는다.
- 예시:
- I/O 집중 프로세스의 우선순위를 높게 설정 (I/O를 즉시 요청하여 병렬성↑)
- 실시간 처리가 필요한 프로세스(미디어 플레이어, 긴급 시스템)도 우선순위 상승
- CPU 집중 프로세스는 상대적으로 우선순위를 낮게 설정, 혹은 CPU 여유분을 활용
(그림 출처: 혼자 공부하는 컴퓨터 구조 + 운영체제)
3.2 스케줄링 정책 예시
- Priority Scheduling
- 단순히 우선순위가 높은 프로세스를 먼저 실행. 우선순위가 같다면 FCFS 등 다른 기준 적용.
- Shortest Job First (SJF) / Shortest Remaining Time First (SRTF)
- 길이가 짧은 CPU 버스트를 우선. I/O 집중 프로세스는 보통 CPU 버스트가 짧기에 자연스럽게 높은 우선순위를 갖는다.
- Multi-Level Queue / Multi-Level Feedback Queue
- 프로세스를 여러 그룹(I/O 위주, CPU 위주 등)으로 나누고, 각 큐마다 다른 우선순위를 설정.
4. 종합 정리
- 프로세스들은 CPU 버스트와 I/O 버스트를 교대로 반복한다.
- I/O 집중 프로세스는 CPU 사용이 짧고, 빨리 I/O를 요청해 장치를 동작시킬 수 있어 우선순위를 높이면 시스템 효율이 상승한다.
- CPU 집중 프로세스는 CPU 연산을 오래 수행해야 하지만, I/O 집중 프로세스가 I/O 대기에 들어간 동안 CPU를 활용할 수 있다.
- 운영체제는 프로세스 우선순위 정보를 PCB에 저장해, 중요한/긴급한 작업이나 I/O 중심 작업을 더 일찍 수행하도록 스케줄링할 수 있다.
참고 자료
- 혼자 공부하는 컴퓨터 구조 + 운영체제
- Operating System Concepts (A. Silberschatz, P.B. Galvin, G. Gagne)
- Modern Operating Systems (A.S. Tanenbaum, H. Bos)
- CPU Scheduling Algorithms (Priority, SJF, Round Robin 등)
'운영체제 > CPU 스케줄링' 카테고리의 다른 글
스케줄링 알고리즘의 종류 (0) | 2025.01.29 |
---|---|
선점형과 비선점형 스케줄링 (0) | 2025.01.28 |