티스토리 뷰
반응형
🔷 프로세스 스케줄링 완전 정리: 컴퓨터는 어떻게 순서를 결정할까?
🔷 프로세스 스케줄링이란 무엇인가?
컴퓨터는 여러 프로그램을 동시에 실행하는 것처럼 보입니다.하지만 CPU는 한 순간에 단 하나의 작업만 처리할 수 있습니다.
그렇다면 수십, 수백 개의 프로그램들은 어떻게 동시에 실행되는 것처럼 보이는 걸까요?
이 질문에 대한 답이 바로 프로세스 스케줄링(Process Scheduling)입니다.
프로세스 스케줄링이란,
운영체제(OS)가 실행 준비가 완료된 여러 프로세스 중에서
어떤 프로세스를 먼저, 얼마나 오래 CPU에 할당할지 결정하는 과정을 말합니다.
운영체제는 스케줄링을 통해 다음과 같은 목표를 달성하려고 합니다.
- 시스템 처리량(Throughput) 최대화
- 응답 시간(Response Time) 최소화
- 대기 시간(Waiting Time) 최소화
- 자원 사용률(Resource Utilization) 최적화
- 공정성(Fairness) 보장
🔷 프로세스 스케줄링이 필요한 이유
만약 운영체제가 프로세스 스케줄링을 하지 않는다면,- 어떤 프로세스는 영원히 실행되지 못하고,
- 어떤 프로세스는 시스템 자원을 독점하게 됩니다.
운영체제는 모든 프로세스가 공평하게 기회를 얻고,
전체 시스템 성능이 최대한 유지되도록 '순서'를 똑똑하게 조율해야 합니다.
🔷 프로세스 스케줄링의 종류
운영체제는 다양한 상황에 맞춰 여러 가지 스케줄링 알고리즘을 사용합니다.이번 글에서는 다음 네 가지 주요 알고리즘을 깊이 있게 살펴보겠습니다.
- FCFS(First Come First Served)
- RR(Round Robin)
- HRN(Highest Response Ratio Next)
- MQ(Multilevel Queue)
등장 배경 → 작동 원리 → 공식 → 구체적 예시 → 장단점 → 실제 활용
순서로, 자연스럽게 설명하겠습니다.
🔷 FCFS(First Come First Served) 스케줄링
컴퓨터가 가장 처음으로 사용한 스케줄링 방식은 바로 FCFS입니다.은행 창구, 식당 대기열처럼 "먼저 온 손님 먼저" 원칙을 그대로 따릅니다.
✅ FCFS 스케줄링의 정의
FCFS 스케줄링이란,준비 상태(Ready Queue)에 도착한 순서대로 프로세스에 CPU를 할당하는 방식입니다.
특징은 다음과 같습니다:
- 선입선출(First-In-First-Out) 구조
- 비선점형(Non-Preemptive)
- 대기열(Queue) 기반 처리
✅ FCFS 스케줄링의 등장 배경
초기 컴퓨터 시스템에서는복잡한 자원 관리가 필요하지 않았습니다.
작업량도 적고, 사용자도 소수였기에
"먼저 도착한 프로세스부터 처리하면 되겠지" 하는 단순한 발상으로 출발했습니다.
당시에는 성능 이슈보다,
운영체제의 단순성과 신뢰성이 더 중요했기 때문입니다.
✅ FCFS 스케줄링의 작동 원리
- 프로세스가 준비 큐에 도착하면 큐에 추가합니다.
- 큐의 가장 앞에 있는 프로세스를 선택해 CPU를 할당합니다.
- 프로세스는 종료될 때까지 다른 프로세스에게 CPU를 양보하지 않습니다.
반응형
✅ FCFS 스케줄링 공식 및 직관적 예시
✔ 대기 시간 공식
\[ \text{대기 시간} = \text{시작 시간} - \text{도착 시간} \]- 도착 시간: 프로세스가 준비 큐에 들어온 시점
- 시작 시간: 프로세스가 CPU를 점유하기 시작한 시점
- 대기 시간: 준비 큐에서 기다린 총 시간
✔ 간단한 수치 예시
진행 과정:
- P1: 0초 도착 → 즉시 실행 (0~5초)
- P2: 2초 도착 → P1이 끝난 뒤 실행 (5~8초)
- P3: 4초 도착 → P2가 끝난 뒤 실행 (8~9초)
✔ 대기 시간 계산
평균 대기 시간:
\[ \text{평균 대기 시간} = \frac{0 + 3 + 4}{3} = 2.33초 \]
✅ FCFS 스케줄링의 장단점
✅ FCFS 스케줄링의 문제 상황
호송 행렬 효과(Convoy Effect)란,하나의 긴 작업이 시스템 자원을 오랫동안 점유하여
짧은 작업들이 불필요하게 기다리게 되는 현상을 의미합니다.
결국 전체 시스템 반응 속도가 저하되고, 사용자 경험이 나빠집니다.
✅ FCFS 스케줄링의 실제 활용
- 초기 UNIX 운영체제
- 단순 디스크 I/O 요청 처리
- 일괄 처리(Batch Processing) 작업
반응형
🔷 RR(Round Robin) 스케줄링
FCFS 스케줄링은 간단하지만 한 가지 심각한 문제를 갖고 있었습니다.만약 하나의 긴 프로세스가 CPU를 점유하게 되면,
뒤에 있는 모든 짧은 프로세스들이 불필요하게 오래 기다려야 했습니다.
특히 사람과 상호작용하는 응용 프로그램(인터넷 브라우저, 채팅 프로그램 등)은
빠른 응답성을 필요로 합니다.
이러한 요구를 충족시키기 위해 등장한 것이 RR(Round Robin) 스케줄링입니다.
✅ RR 스케줄링의 정의
RR 스케줄링이란,모든 준비된 프로세스에 대해 동일한 시간 할당량(Time Quantum)을 부여하고,
이 시간이 끝나면 CPU를 강제로 회수하여 다음 프로세스에 넘기는 선점형(Preemptive) 스케줄링 기법입니다.
운영체제는 빠르게 프로세스들을 순환시키며,
모든 프로세스가 짧은 시간 안에 CPU를 사용하도록 합니다.
✅ RR 스케줄링의 등장 배경
초기 컴퓨터 사용자들은 대화형 프로그램(터미널, 온라인 입력기 등) 사용이 많아졌습니다.빠른 응답 속도가 필요했고,
사용자가 키보드를 치거나 마우스를 클릭했을 때
수 초 이상 기다려야 한다면, 이는 심각한 불편을 초래했습니다.
이를 해결하기 위해 운영체제는
모든 프로세스에게 공평하게 CPU를 짧은 시간 동안 나눠주는 방식을 채택하게 됩니다.
✅ RR 스케줄링의 작동 원리
- 준비 큐에 있는 프로세스에게 동일한 시간(Time Quantum)을 할당합니다.
- 프로세스는 Time Quantum 동안만 CPU를 사용할 수 있습니다.
- 사용 시간이 끝나거나 프로세스가 완료되면, CPU를 다음 프로세스에게 넘깁니다.
- 프로세스가 아직 완료되지 않았다면 큐 맨 뒤로 이동하여 다시 대기합니다.
✅ RR 스케줄링 공식 및 직관적 예시
✔ 핵심 개념
- 타임 퀀텀(Time Quantum): 프로세스가 연속적으로 사용할 수 있는 최대 시간
- 대기 시간: CPU를 기다린 총 시간
- 응답 시간: 프로세스가 처음으로 CPU를 할당받기까지 걸린 시간
✔ 간단한 수치 예시
가정:- 타임 퀀텀 = 4초
- 프로세스 세 개:
- P1: 실행 시간 6초
- P2: 실행 시간 8초
- P3: 실행 시간 7초
진행 과정:
1. P1이 4초 실행 → 2초 남음
2. P2가 4초 실행 → 4초 남음
3. P3가 4초 실행 → 3초 남음
4. P1이 남은 2초 실행 → 완료
5. P2가 남은 4초 실행 → 완료
6. P3가 남은 3초 실행 → 완료
✔ 대기 시간 대략 계산
**정확한 수치는 타임라인을 그려야 하지만,**
RR에서는 대기 시간이 분할되어 발생하고,
짧은 프로세스가 먼저 완료될 가능성이 높습니다.
✅ RR 스케줄링의 장단점
✅ RR 스케줄링의 문제 상황
타임 퀀텀(Time Quantum) 선택은 매우 중요합니다.- 너무 짧으면 CPU 컨텍스트 스위칭(context switching)이 잦아져 오히려 성능이 저하됩니다.
- 너무 길면 선점형 스케줄링의 이점이 사라지고 FCFS처럼 됩니다.
✅ RR 스케줄링의 실제 활용
- 현대 리눅스 운영체제
- 대화형 시스템(터미널 서버, 웹 서버 등)
- 실시간 시스템 일부
🔷 HRN(Highest Response Ratio Next) 스케줄링
FCFS나 RR 스케줄링은 짧은 프로세스가 긴 프로세스에 비해 불이익을 당하거나,모두에게 똑같은 시간만 부여하는 한계가 있습니다.
"오래 기다린 프로세스는 더 빨리 실행해줘야 하지 않을까?"
이런 고민에서 탄생한 방식이 바로 HRN(Highest Response Ratio Next) 스케줄링입니다.
✅ HRN 스케줄링의 정의
HRN 스케줄링이란,대기 시간이 길거나,
남은 실행 시간이 짧은 프로세스에 우선순위를 높게 부여하여 실행하는 스케줄링 기법입니다.
우선순위는 응답 비율(Response Ratio)을 계산하여 결정합니다.
✅ HRN 스케줄링의 등장 배경
짧은 작업이 긴 작업에 밀려 무한정 기다리게 되는 상황(Starvation)을 해결하기 위해,"기다린 시간에 비례해서 우선순위를 높이는" 접근이 필요해졌습니다.
HRN은 단순히 작업 크기에만 주목하지 않고,
대기 시간과 실행 시간을 모두 고려하여 공정성을 높이려고 합니다.
✅ HRN 스케줄링의 작동 원리
- 준비 큐에 있는 모든 프로세스에 대해 응답 비율을 계산합니다.
- 응답 비율이 가장 높은 프로세스를 선택하여 실행합니다.
- 프로세스가 완료될 때까지 실행합니다(비선점형).
✅ HRN 스케줄링 공식 및 직관적 예시
✔ 응답 비율 공식
\[ \text{응답 비율} = \frac{\text{대기 시간} + \text{서비스 시간}}{\text{서비스 시간}} \]- 서비스 시간(Burst Time): 프로세스가 필요한 총 실행 시간
- 대기 시간(Waiting Time): 프로세스가 Ready Queue에서 대기한 시간
✔ 간단한 수치 예시
처음에는:
- P1: 대기 시간 0초 → 응답 비율 = (0+4)/4 = 1.0
- P2: 아직 도착하지 않음
- P3: 아직 도착하지 않음
→ P1 실행
✔ HRN 스케줄링 수치 계산
반응형
🔷 MQ(Multilevel Queue) 스케줄링
현실 세계에는 다양한 종류의 프로세스가 존재합니다.- 사용자 입력을 빠르게 처리해야 하는 프로세스
- 대규모 데이터를 장시간 처리해야 하는 백그라운드 작업
- 시스템 자체를 유지보수하는 핵심 프로세스
이를 해결하기 위해 등장한 것이 바로 다단계 큐 스케줄링(Multilevel Queue Scheduling, MQ)입니다.
✅ MQ 스케줄링의 정의
MQ 스케줄링이란,성격이 다른 프로세스들을 구분하여 여러 개의 준비 큐(Ready Queue)로 분리하고,
각 큐마다 서로 다른 스케줄링 정책을 적용하는 방식입니다.
✅ MQ 스케줄링의 등장 배경
모든 프로세스를 하나의 큐에 담아 일괄 관리할 경우,응답성이 필요한 프로세스와 장기 작업 프로세스 간의 갈등이 발생합니다.
따라서 프로세스 종류에 따라 별도의 큐를 만들어 관리하고,
중요도에 따라 다른 스케줄링 방식을 적용하는 것이 필요해졌습니다.
✅ MQ 스케줄링의 작동 원리
- 프로세스를 특성에 따라 분류하여 다른 큐에 넣습니다.
- 큐마다 스케줄링 정책(FIFO, RR 등)을 따로 적용합니다.
- 큐 간에도 우선순위를 정하여 CPU를 할당합니다.
(예: 시스템 프로세스 큐 > 사용자 프로세스 큐)
✅ MQ 스케줄링 공식 및 직관적 예시
다단계 구조의 특징- 큐1: 시스템 프로세스 (FCFS 방식)
- 큐2: 사용자 프로세스 (RR 방식, 타임 퀀텀 4초)
진행 방법:
- 항상 큐1이 비어야만 큐2로 넘어갑니다.
- 만약 큐1에 프로세스가 생기면 큐2 실행을 중단하고, 큐1을 우선 처리합니다.
✔ 간단한 수치 예시
- 시스템 프로세스 S1: 0초 도착, 4초 실행- 사용자 프로세스 U1: 1초 도착, 5초 실행
진행:
- S1이 먼저 4초 동안 실행
- S1이 끝난 뒤 U1이 타임 퀀텀 4초 동안 실행하고, 남은 1초를 다시 수행
✅ MQ 스케줄링의 장단점
✅ MQ 스케줄링의 문제 상황
- 큐 분류 기준이 명확하지 않거나 현실과 다르면, 프로세스가 부당하게 대기하거나 불공정한 처리가 발생할 수 있습니다.
✅ MQ 스케줄링의 실제 활용
- 실시간 운영체제(Real-Time Operating Systems)
- 복합적인 서비스를 제공하는 서버 시스템(웹 서버, 데이터베이스 서버 등)
반응형
🔷 전체 요약
✅ 프로세스 스케줄링 알고리즘 비교
반응형
'자격증 > 정보처리기사' 카테고리의 다른 글
선점형(Preemptive) vs 비선점형(Non-Preemptive) 스케줄링 완전 정리 (0) | 2025.04.28 |
---|---|
프로세스 스케줄링 요약 (0) | 2025.04.28 |
데이터 모델의 구성 요소란 무엇인가? (0) | 2025.04.27 |
릴레이션이란? (0) | 2025.04.26 |
데이터베이스에서 키란 무엇인가? (기본키,후보키 등 총정리) (0) | 2025.04.26 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- C
- 보세사
- 열혈프로그래밍
- 류근관
- 여인권
- c++
- 일본어문법무작정따라하기
- 통계학
- stl
- 데이터분석
- K-MOOC
- 일본어
- 통계
- 심리학
- 강화학습
- 티스토리챌린지
- 파이썬
- 오블완
- 사회심리학
- C/C++
- 백준
- 회계
- 인지부조화
- 정보처리기사
- 코딩테스트
- 일문따
- Python
- 윤성우
- 인프런
- 뇌와행동의기초
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
글 보관함
반응형