철학과 학생의 개발자 도전기
Younghun
« 2025/05 »
일 |
월 |
화 |
수 |
목 |
금 |
토 |
|
|
|
|
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 |
관리 메뉴
철학과 학생의 개발자 도전기
CPU 스케줄링 본문
운영체제
CPU 스케줄링
Younghun
2024. 2. 5. 12:54
1. 개념
- CPU에 할당할 프로세스를 선택하는 알고리즘
- 비선점형: 프로세스에게서 CPU 할당을 뺏을 수 없는 방식
- 선점형: 프로세스에게서 CPU 할당을 뺏을 수 있는 방식
- 발생상황 (프로세스 상태 변화)
- 실행 -> 대기: I/O 발생
- 실행 -> 준비: 타임아웃 발생
- 대기 -> 준비: I/O 종료
- 종료
2. 스케줄링 종류
FCFS 스케줄링
- 가장 간단한 CPU 스케줄링 알고리즘으로 먼저 요청이 들어온 프로세스를 먼저 처리하는 방식
- 간단하고 이해하기 쉽지만, 짧은 작업이 긴 작업 뒤에 대기하게 되는 'Convoy Effect'라는 문제가 발생할 수 있다.
SJF (Shortest Job First) 스케줄링
- 실행 시간이 가장 짧은 작업부터 처리하는 방식
- 평균 대기 시간을 최소화하는 것을 목표로 한다.
- 하지만, 실행 시간을 미리 알 수 없는 실제 시스템에서는 이를 예측하기 어려울 수 있다.
RR (Round Robin) 스케줄링
- 각 프로세스에게 동일한 시간 할당량(quantum)을 부여하고, 이 시간 동안만 CPU를 사용하게 하는 방식
- 시간 할당량이 끝나면, 해당 프로세스는 준비 큐의 맨 뒤로 가고, 다음 프로세스가 CPU를 사용한다.
- 모든 프로세스에게 공정한 CPU 시간을 보장
Priority Scheduling
- 각 프로세스에 우선순위를 부여하고, 가장 높은 우선순위를 가진 프로세스부터 CPU를 할당하는 방식
- 우선순위는 일반적으로 프로세스의 중요도, 타입, 메모리 요구량, 사용자 요구 등에 따라 결정된다.
Multilevel Queue Scheduling
- 준비 큐를 여러 개의 별도 큐로 분리하고, 각 큐는 별도의 스케줄링 알고리즘(예: FCFS, SJF, RR 등)을 가진다.
- 프로세스의 특성에 따라 다른 처리 방식을 제공할 수 있다. ex) CPU-bound vs I/O-bound