스물두줄

정보관리기술사 · 개념서 · 클라우드 및 인프라

운영체제 스케줄링

설명 영상 운영체제 스케줄링 · 2:18

왜 배우는가: 운영체제 스케줄링은 CPU와 디스크 자원을 프로세스에 어떤 순서로 배분할지 정하는 기법으로, 응답 시간과 처리량을 좌우한다. 클라우드 가상화 환경의 성능 설계와 장애 분석에도 직접 쓰이며, 정보관리기술사 시험에서 CPU·디스크 스케줄링 비교 문항으로 반복 출제된다.

출제 이력: 제137회 3교시 1번, 제119회 3교시 6번

1. 한 줄 정의와 핵심 키워드

CPU 스케줄링은 준비 큐의 프로세스 중 다음에 CPU를 할당받을 프로세스를 정하는 운영체제 기능이며, 디스크 스케줄링은 디스크 I/O 요청의 처리 순서를 정해 탐색 시간과 회전 지연을 줄이는 기법이다.

키워드: CPU 스케줄링, 디스크 스케줄링, 준비 큐(Ready Queue), 선점(Preemptive), 비선점(Non-preemptive), 탐색 시간(Seek Time), 회전 지연(Rotational Latency), 평균 대기 시간

2. 개념 풀이

쉬운 말로 하면 스케줄링은 여러 작업이 한정된 자원을 기다릴 때 누구부터 쓰게 할지 정하는 줄 세우기다. 운영체제는 이 줄 세우기를 통해 자원을 적절히 배정하고 시스템 성능을 높인다.

스케줄링은 다중 프로그래밍을 가능하게 하는 운영체제의 동작 기법이다. 운영체제는 프로세스들에게 CPU 등 자원을 적절히 배정해 성능을 개선한다. 이 정의는 한국어 위키백과의 설명과 같다.

CPU 스케줄링은 준비 큐에 있는 프로세스 가운데 하나를 골라 CPU를 할당하는 작업이다. 목표는 CPU 이용률, 처리량, 응답 시간, 대기 시간을 개선하고 공정성을 확보하는 것이다. FCFS, SJF, SRT, 라운드 로빈, 다단계 큐 등이 대표적이다.

디스크 스케줄링은 여러 I/O 요청이 대기할 때 처리 순서를 재배열하는 기법이다. 디스크는 헤드가 원하는 실린더로 움직이는 시간(탐색 시간)과 원하는 섹터가 헤드 아래로 돌아오는 시간(회전 지연)이 성능을 결정한다. 따라서 이 두 시간을 줄이는 순서를 고른다.

선점(Preemptive)은 실행 중인 프로세스의 CPU를 더 중요한 프로세스가 빼앗을 수 있는 방식이다. 비선점(Non-preemptive)은 한 번 할당되면 완료나 입출력 대기 때까지 CPU를 유지하는 방식이다. 선점형은 타이머 인터럽트가 필요하고 문맥 전환 오버헤드가 생긴다.

3. 등장 배경과 필요성

초기 일괄 처리 시스템에서는 작업이 하나씩 끝까지 실행되어 CPU가 입출력을 기다리며 놀았다. 다중 프로그래밍이 도입되면서 여러 프로세스를 번갈아 실행해야 했고, 어떤 프로세스에 먼저 CPU를 줄지 정하는 규칙이 필요해졌다.

디스크도 같은 문제가 있었다. 요청이 도착한 순서대로(FCFS) 처리하면 헤드가 디스크 표면을 왕복하며 탐색 시간이 크게 늘어난다. 이를 줄이기 위해 SSTF, SCAN 계열 같은 재배열 기법이 나왔다.

스케줄링이 없으면 짧은 작업이 긴 작업 뒤에 오래 묶이고, 대화형 사용자는 응답을 기다리게 된다. 따라서 응답 시간과 처리량을 함께 맞추는 정책이 필요하다. 이 필요성이 CPU와 디스크 두 영역에서 각기 다른 알고리즘을 낳았다.

스케줄링 목표는 대기 시간 최소화, 자원의 균형 있는 사용, 무한 연기(기아) 회피의 세 가지로 요약된다. 이 세 목표는 서로 충돌하기도 하여 알고리즘 선택의 기준이 된다.

4. 구성요소·원리·절차

단기 스케줄러(Short-term Scheduler)는 준비 큐(Ready Queue)에서 실행할 프로세스를 골라 CPU를 배정한다. 스케줄링은 아래 구성요소가 함께 움직여 완성된다.

이어지는 내용

로그인하면 하루 5페이지까지 무료로 전체를 읽을 수 있습니다.

앱에서 이 단원 읽기