티스토리 뷰

안녕하세요? 열공마매미입니다.

이전 RAID에 이어 프로세스 스케줄링에 대해 알아보겠습니다.

 

PC정비사 기출문제 2021.02.28

문제4. 프로스스 스케줄링의 종류가 아닌 것은?

① Round Robin
② FIFO(First In First Out)
③ Semaphore
④ Shortest Job First

정답 ③

 

 

 

 

 

프로세스 스케줄링이란?

CPU는 한 번에 하나의 작업(프로세스)만 처리할 수 있다고 해요.

 

뭔 소리지? 유튜브 보면서 파일도 다운 받고 문서 작성도 하는데 뭐가 한 번에 하나의 작업을 처리한다는 거야?

 

알고 보니 컴퓨터는 여러 작업을 짧은 시간 간격으로 번갈아 처리하지만 처리 속도가 매우 빨라 우리가 보기엔 동시에 실행하는 것처럼 보이는 거래요.

 

어쨌든 여러 작업이 들어왔을 때  어떤 작업을 먼저, 그리고 얼마나 오래 CPU에 할당할지 결정하는 과정을 ‘프로세스 스케줄링’이라고 합니다.

 

쉽게 말하면,

“CPU 작업 순서를 정해주는 운영체제의 교통정리”

 

 

 

 

 

프로세스 스케줄링의 목적

  • CPU 효율 극대화: CPU가 쉬지 않도록 함
  • 응답 시간 최소화: 사용자 요청에 빠르게 반응
  • 공정성 유지: 특정 작업이 너무 오래 기다리지 않도록
  • 처리량 향상: 단위 시간당 처리되는 작업 수 증가

 

 

 

프로세스 스케줄링의 종류

1. FIFO (First In First Out, 선입선출)

  • 먼저 들어온 작업이 먼저 처리됨.
  • 대기 줄(큐)에 선 순서대로 작업.
  • 장점: 구현이 간단.
  • 단점: 오래 걸리는 작업이 먼저 오면 뒤에 있는 작업들이 오래 기다려야 함.

 

2. Round Robin (라운드 로빈)

  • 모든 작업에 동일한 시간 할당량(타임 슬라이스)을 부여. 
  • 시간 초과 시 대기열의 맨 뒤로 보내고 다음 작업 실행.
  • 장점: 공정성이 좋음.
  • 단점: 시간 할당량이 너무 길면 FIFO처럼 되고, 너무 짧으면 잦은 교체로 오버헤드 증가.

 

3. SJF (Shortest Job First, 최단 작업 우선)

  • 실행 시간이 가장 짧은 작업부터 처리.
  • 장점: 평균 대기 시간이 짧아짐.
  • 단점: 실행 시간이 긴 작업이 계속 밀릴 수 있음(기아 상태).

 

4. Priority Scheduling (우선순위 스케줄링)

  • 작업마다 우선순위를 매기고, 우선순위가 높은 작업부터 실행.
  • 장점: 중요한 작업을 빨리 처리.
  • 단점: 낮은 우선순위 작업이 계속 밀릴 수 있음(기아 상태).

 

5. Multilevel Queue (다단계 큐 스케줄링)

  • 작업을 여러 큐로 나누고, 각 큐마다 다른 스케줄링 알고리즘 적용.
  • 예: 실시간 작업 큐, 사용자 인터페이스 작업 큐, 백그라운드 작업 큐 등.

 

 

 

프로세스 스케줄링 비교

 

 

 

 

 

보통 컴퓨터에 쓰이는 프로세스 스케줄링은?

그럼 우리가 쓰는 컴퓨터는 어떤 프로세스 스케줄링 기법을 사용하고 있을까요?

 

일반 데스크톱/노트북 (Windows, macOS, Linux)는 특정 한 스케줄링만 사용하는 것이 아니라 여러 가지 스케줄링 기법을 조합해서 사용한다고 해요. 주로 선점형 우선순위 스케줄링(Preemptive Priority Scheduling) 방식을 사용하는데 라운드 로빈(Round Robin) 기법과 함께 섞어서 쓰기도 한답니다.

 

그럼 위에 나와있는 Priority Scheduling (우선순위 스케줄링)선점형 우선순위 스케줄링(Preemptive Priority Scheduling) 방식은 어떻게 다른지 한 번 살펴보겠습니다. 

 

Priority Scheduling (우선순위 스케줄링)

  • 작업마다 우선순위를 부여하고, 우선순위가 높은 작업부터 실행하는 방식.
  • 비선점형(Non-Preemptive)선점형(Preemptive) 두 가지가 있을 수 있어요.
  • 비선점형일 경우, 한 번 CPU를 차지한 작업은 끝날 때까지 계속 실행하고, 중간에 빼앗기지 않아요.

 

Preemptive Priority Scheduling (선점형 우선순위 스케줄링)

  • Priority Scheduling의 선점형 버전.
  • 높은 우선순위의 작업이 새로 들어오면,
  • 지금 실행 중인 작업을 중단(선점)하고 CPU를 뺏어서 바로 실행.
  • 즉, 급한 일이 생기면 끼어들 수 있는 방식.

 

 

 


 

 

 

문제를 이해하고 보니 시간은 걸리지만 다음에 이 문제를 만나도 정답을 잘 찾을 수 있을 것 같아요.

다음 문제로 찾아오겠습니다.

오늘도 홧팅입니다.~

 

 

 

반응형