정보처리기사 실기 · 운영체제 · 계산 문제

CPU 스케줄링 계산간트 차트만 그리면 끝!

평균 대기 시간을 구하는 문제는 거의 매년 나옵니다. 규칙 하나하나를 같은 예제로 풀어 보고, 마지막에 직접 숫자를 넣어 확인할 수 있는 계산기와 연습 문제를 두었어요. 모든 간트 차트와 표는 계산 엔진이 실제로 계산한 결과입니다. 시간 단위는 문제에 나온 대로(ms 등) 읽으면 되고, 여기서는 숫자만 적었어요.

먼저 외울 것 공식 세 줄과 풀이 순서

시간 공식

반환 시간종료 시간 − 도착 시간
대기 시간반환 시간 − 실행(서비스) 시간
응답 시간처음 실행된 시간 − 도착 시간
평균모두 더한 값 ÷ 프로세스 수
대기 실행 대기 (선점됨) 실행 도착 종료 반환 시간 = 대기(두 칸 합) + 실행(두 칸 합)
선점되어 중간에 기다린 시간도 모두 대기 시간이에요. 그래서 대기 = 반환 − 실행으로 한 번에 구합니다.

시험장 풀이 순서

  1. 문제의 표를 도착 시간 순으로 옮겨 적는다. 실행 시간 옆에 "남은 시간" 칸을 하나 더 만든다(선점형일 때).
  2. 시간축을 0부터 따라가며 결정 시점마다 후보를 비교한다. 비선점은 "실행이 끝날 때", 선점형은 "새 프로세스가 도착할 때와 끝날 때"가 결정 시점.
  3. 정한 순서대로 간트 차트를 그리고 경계마다 시간을 적는다. 마지막 칸의 끝 = 실행 시간의 합(쉬는 구간이 없다면).
  4. 프로세스마다 종료 시간을 읽어 반환 → 대기 순서로 계산하고 평균을 낸다. 단위(ms)를 문제와 같게 쓴다.

검산: 대기 시간이 음수면 틀린 것. 선점형에서는 결정 시점을 하나라도 빠뜨리면 바로 틀린다.

아래 모든 알고리즘에 쓰는 같은 문제

2024년 2회 SRT 문제와 같은 표예요. 우선순위는 숫자가 작을수록 높다고 정했어요(문제마다 조건을 꼭 확인). 같은 표를 알고리즘만 바꿔 풀면 어떤 규칙이 무엇을 바꾸는지 바로 보입니다.

한눈에 비교 같은 표, 알고리즘별 평균 대기 시간

남은 시간이 가장 짧은 것을 계속 고르는 SRT가 평균 대기 시간이 가장 짧아요(이론상 최적). 대신 긴 작업은 계속 밀릴 수 있어 기아 현상이 생깁니다. RR은 평균 대기는 길지만 모든 프로세스가 골고루 CPU를 받아 응답이 빠릅니다.

계산기 숫자를 바꿔 직접 풀어 보고 답 맞추기

이름도착실행우선순위

연습 문제 평균은 소수 둘째 자리까지