정처기 감자
네트워크/OS메모리/프로세스

검색

검색어를 입력해 개념, 문제, 필기를 찾습니다.

프로세스 스케줄링 알고리즘

네트워크/OS메모리/프로세스
읽는데 8분 소요
처음 쓰여진 날: 2025-09-09
마지막 수정일: 2025-10-31
조회수: —

요약

운영체제의 핵심, 프로세스 스케줄링을 마스터하세요. 선점형(SRT, Round Robin)과 비선점형(FIFO, SJF, HRN 등) 알고리즘의 원리를 이해하고, 평균 대기 및 반환 시간 계산 문제로 실전 감각을 키웁니다.

프로세스 스케줄링 알고리즘 정리

비선점형선점형
FIFO(도착 순서대로 할당)Round Robin(FIFO + 시간 지정)
SJF(실행 시간 짧은 프로세스에 할당, 비선점형/선점형 둘다 가능)SRT(선점형 SJF)
HRN(SJF + 대기 시간 고려)
기한부(마감시간 임박한 프로세스 먼저)
우선순위(우선순위에 따라 할당)
비선점 vs 선점
비선점 vs 선점

프로세스 스케줄링, 왜 필요할까?

컴퓨터는 여러 프로세스를 동시에 처리해야 합니다. 이때, 어떤 프로세스에 CPU를 할당할지 결정하는 규칙이 바로 프로세스 스케줄링입니다. 스케줄링의 목표는 CPU를 효율적으로 사용하고, 모든 프로세스에 공평한 기회를 주며, 사용자의 대기 시간을 최소화하는 것입니다.

스케줄링 방식은 크게 비선점형(Non-preemptive) 과 선점형(Preemptive) 두 가지로 나뉩니다.

  • 비선점형 스케줄링: 한 프로세스가 CPU를 할당받으면, 해당 프로세스가 종료되거나 입출력(I/O) 작업을 위해 스스로 CPU를 반납할 때까지 다른 프로세스가 CPU를 빼앗을 수 없습니다.
  • 선점형 스케줄링: 운영체제가 필요하다고 판단하면, 현재 실행 중인 프로세스를 중단시키고 다른 프로세스에 CPU를 강제로 할당할 수 있습니다. 시분할 시스템에 적합합니다.

프로세스 상태 (Process State)

스케줄러가 어떤 프로세스에 CPU를 줄지 결정하려면, 먼저 각 프로세스가 지금 어떤 상태인지 알아야 합니다. 정처기 실기에서는 다음 세 가지 주요 상태를 매칭하는 형태로 자주 출제됩니다.

  • 준비(Ready): 실행에 필요한 자원을 모두 가지고 있고 CPU만 할당되면 즉시 실행 가능한 상태. 준비 큐(Ready Queue) 에서 자기 차례를 기다립니다.
  • 실행(Run / Running): 스케줄러가 CPU를 할당하여 실제로 명령어를 수행 중인 상태. CPU 코어 1개당 한 시점에 한 프로세스만 실행 상태가 됩니다.
  • 대기(Wait / Block / Blocked): 입출력(I/O) 같은 외부 사건이 끝날 때까지 CPU를 반납하고 멈춰 있는 상태. 사건이 완료되면 다시 준비 상태로 돌아갑니다.

전이 흐름은 다음과 같습니다.

  • 준비 → (디스패치) → 실행
  • 실행 → (I/O 요청) → 대기
  • 대기 → (I/O 완료) → 준비
  • 실행 → (시간 할당량 만료, 선점형 스케줄링) → 준비

IPC (Inter-Process Communication)

운영체제는 프로세스마다 독립된 메모리 공간을 할당합니다. 그래서 한 프로세스가 다른 프로세스의 변수를 직접 읽거나 쓸 수 없죠. 대신 운영체제가 제공하는 통신 메커니즘을 통해서만 데이터를 주고받을 수 있는데, 이를 IPC(Inter-Process Communication) 라고 합니다.

대표적인 IPC 기법:

  • 공유 메모리(Shared Memory): 여러 프로세스가 같은 메모리 영역을 매핑하여 직접 읽고 씁니다. 가장 빠른 IPC 기법이며, 동기화는 별도로 처리해야 합니다.
  • 소켓(Socket): 네트워크 프로토콜을 이용한 양방향 통신 채널. 같은 호스트뿐 아니라 다른 호스트의 프로세스와도 통신할 수 있습니다.
  • 세마포어(Semaphore): 임계 구역(Critical Section)에 대한 동시 접근을 제어하는 동기화 도구. P(wait)/V(signal) 연산으로 자원 카운트를 관리합니다.
  • 메시지 큐(Message Queue): 커널이 관리하는 큐에 메시지를 넣고 다른 프로세스가 꺼내 가는 비동기 통신 방식.
  • 파이프(Pipe)·시그널(Signal): 부모-자식 관계의 프로세스 간 단방향 데이터 전달이나 비동기 알림에 사용됩니다.

비선점형 스케줄링 (Non-preemptive Scheduling)

한 번 할당되면 끝날 때까지 아무도 막을 수 없는 방식입니다.

비선점형 스케줄링
한 번 시작하면 아무도 막을 수 없다

FIFO (First-In, First-Out) 또는 FCFS (First-Come, First-Served)

가장 간단한 방식으로, 준비 큐(Ready Queue)에 도착한 순서대로 CPU를 할당합니다.

  • 장점: 구현이 쉽고 공평합니다.
  • 단점: 실행 시간이 긴 프로세스가 먼저 도착하면 뒤따르는 짧은 프로세스들이 하염없이 기다려야 하는 콘보이 효과(Convoy Effect) 가 발생할 수 있습니다.

SJF (Shortest Job First)

선점형인 SRT와 구분하세요!
주의! SJF는 비선점형과 선점형 두 방식 모두 가능합니다.

실행 시간이 가장 짧은 프로세스에게 먼저 CPU를 할당합니다.

  • 장점: 평균 대기 시간을 최소화하는 최적의 알고리즘입니다.
  • 단점: 실행 시간이 긴 프로세스는 계속해서 새로운 짧은 프로세스에 밀려 무한정 기다릴 수 있는 기아 현상(Starvation) 이 발생할 수 있습니다. 또한, 각 프로세스의 실행 시간을 미리 정확히 예측하기 어렵습니다.

HRN (Highest Response-ratio Next)

SJF의 기아 현상을 보완하기 위해 만들어졌습니다. 대기 시간과 실행 시간(서비스 시간)을 모두 고려하여 우선순위를 동적으로 결정합니다.

  • 우선순위 계산: (대기 시간 + 서비스 시간) / 서비스 시간
  • 특징: 이 값이 가장 높은 프로세스에게 CPU를 할당합니다. 대기 시간이 길어질수록 우선순위가 높아지므로 기아 현상을 방지할 수 있습니다.

기한부 (Deadline)

프로세스에 주어진 마감 시간(Deadline) 안에 작업을 완료해야 하는 실시간 시스템에서 사용됩니다. 마감 시간이 가장 임박한 프로세스에 높은 우선순위를 부여합니다.

우선순위 (Priority)

각 프로세스에 부여된 정적 우선순위에 따라 CPU를 할당합니다. 우선순위가 가장 높은 프로세스가 먼저 실행됩니다. SJF처럼 기아 현상이 발생할 수 있습니다.


선점형 스케줄링 (Preemptive Scheduling)

실행 중인 프로세스를 언제든 중단시키고 다른 프로세스에 CPU를 넘겨줄 수 있는 유연한 방식입니다.

비선점형 스케줄링
중단시키고 나설 수 있다

라운드 로빈 (Round Robin, RR)

FIFO + 시간 지정(같은 시간 할당)!

FIFO에 시간 할당량(Time Quantum 또는 Time Slice) 개념을 추가한 방식입니다. 모든 프로세스는 정해진 시간 할당량만큼만 CPU를 사용하고, 시간이 다 되면 준비 큐의 맨 뒤로 돌아갑니다.

  • 장점: 모든 프로세스가 공평하게 CPU 시간을 보장받아 대화형 시스템에 적합합니다.
  • 단점: 시간 할당량이 너무 크면 FIFO와 같아지고, 너무 작으면 문맥 교환이 너무 잦아져 오버헤드가 커집니다. 적절한 시간 할당량을 설정하는 것이 중요합니다.

SRT (Shortest Remaining Time)

선점형 SJF!

선점형 SJF알고리즘입니다. 현재 실행 중인 프로세스의 남은 시간보다 더 짧은 실행 시간을 가진 새로운 프로세스가 도착하면, 즉시 CPU를 빼앗아 그 새로운 프로세스에 할당합니다.

  • 장점: 평균 대기 시간을 더 줄일 수 있습니다.
  • 단점: 잦은 문맥 교환(Context Switching)으로 인한 오버헤드가 발생할 수 있으며, 여전히 기아 현상이 발생할 수 있습니다.

정보처리기사 실기 대비 문제

메가커피와 함께, 홈페이지 개선에 참여하세요! ☕
혹시 이용에 불편한 점이나 개선이 필요한 부분을 발견하셨나요? 댓글로 알려주시면 더 나은 감자가 될 수 있어요! 🥔 제보해주신 모든 분께 메가커피 기프티콘을 드립니다! (본인 이메일로 댓글 달아주셔야해요~)

추천 개념

Beta

관련 글

(16개)
제목태그업데이트시험
메모리/프로세스 정보처리기사 실기 모의 시험
메모리/프로세스네트워크/OS메모리/프로세스
2025-10-03응시
메모리 페이지 교체 알고리즘
메모리/프로세스네트워크/OS메모리/프로세스
2026-06-11-
Shell Script 정보처리기사 실기 모의 시험
Shell Script네트워크/OSShell Script
2026-01-24응시
정처기 감자정처기 감자

정보처리기사 합격
도와줄라고 하는 감자

실기 이론

  • 이론 공부법
  • DB
  • 네트워크/OS
  • SW 설계
  • SW 개발
  • 보안/신기술

시험 응시

  • 시험장 찾기
  • 원서 접수
  • 응시자격 서류

요약 PDF

  • 26년 1회 이론 압축
  • 초압축 25년 3회
  • 압축 25년 3회

기출문제

  • 전체 기출문제
  • 25년 3회
  • 25년 2회
  • 문제 포럼

감자 이용권

  • 이용권 구매

실기 이론

  • 이론 공부법
  • DB
  • 네트워크/OS
  • SW 설계
  • SW 개발
  • 보안/신기술

시험 응시

  • 시험장 찾기
  • 원서 접수
  • 응시자격 서류

요약 PDF

  • 26년 1회 이론 압축
  • 초압축 25년 3회
  • 압축 25년 3회

기출문제

  • 전체 기출문제
  • 25년 3회
  • 25년 2회
  • 문제 포럼

감자 이용권

  • 이용권 구매
© 2025 재현기획개발. All rights reserved.
  • 정처기 감자의 시작
  • 업데이트 로그
  • 개인정보 처리방침
  • 이용약관
상호명 : 재현기획개발 / 주소: 서울특별시 영등포구 영등포로 150, 지하1층 108호 L145 가라지(당산동1가, 생각공장 당산) / 대표: 김재현 / 전화: 010-8158-7127 / 통신판매업신고: 제2025-서울영등포-1569호 / 이메일: contact@edugamja.com / 사업자등록번호: 573-51-00999