정보처리기사 CBT
종목 메뉴

개념 한 쪽

메모리 관리 컴팩션과 Working Set·스래싱

메모리 관리 세트는 컴팩션과 작업 집합(Working Set)에서 출발해 운영체제의 기본 개념으로 넓어진다. 흩어진 빈 공간을 하나로 모으는 컴팩션, 프로세스가 자주 참조하는 페이지 집합, 스레드와 커널, 선점 스케줄링, 교착상태의 발생 조건이 함께 나온다.

2026-10-15 기준 · 정보처리기사 대시보드

이 개념을 문제로 확인하고 싶으면 이 개념 문제 10개 풀기 회원용

가입 없이 오늘의 10문제 바로 풀기 →

시험에 이렇게 나온다

출제기준 단원 「메모리 관리」의 공개 문제 3개를 묻는 꼴별로 나누면 이렇습니다.

묻는 꼴문제 수무엇을 묻나
스레드 개념 판정1스레드의 성질과 자원 관계 가운데 옳지 않은 것
운영체제·커널·유닉스 특징 판정1OS 역할·커널 기능·UNIX 특징 중 틀린 설명
선점 스케줄링 설명 판정1선점 방식의 특성과 타이머·우선순위 관련 설명

뜻

메모리에는 프로그램이 빠져나간 자리마다 작은 빈 공간이 생긴다. 서로 떨어져 있는 여러 낭비 공간을 모아 하나의 큰 기억 공간을 만드는 작업이 컴팩션이다. 스와핑은 프로세스를 메모리와 보조 기억장치 사이에서 오가게 하는 것이고, 페이징은 메모리를 고정된 크기로 나누어 쓰는 기법이다.

가상기억장치 관리에서는 프로세스가 일정 시간 동안 자주 참조하는 페이지들의 집합을 작업 집합이라 한다. Denning이 제안한 작업 집합 모델은 프로세스가 효과적으로 실행되기 위해 주기억장치에 유지해야 하는 페이지들의 집합을 뜻한다. 지역성은 참조가 한곳에 몰리는 원리이고, 스래싱은 메모리가 부족해 페이지가 계속 오가며 성능이 떨어지는 현상이다.

운영체제와 스레드의 개념도 함께 본다. 운영체제는 하드웨어 자원을 관리하고 스케줄링을 담당하며, 매크로 프로세서나 컴파일러는 운영체제가 아니다. 스레드는 프로세스 내에서 공유된 주소 공간을 사용하는 경량 프로세스로, 한 프로세스가 여러 스레드를 가질 수 있고 자원 할당은 프로세스 단위로 이루어진다. UNIX는 다중 사용자와 다중 작업을 함께 지원한다.

커널과 스케줄링, 교착상태도 같은 세트에 들어온다. 커널은 자원 관리자로서 명령어 해독을 담당하지 않는다. 선점 스케줄링은 실행 중인 프로세스를 강제로 중단시킬 수 있는 방식이다. 주/종 처리기 시스템에서는 종프로세서도 운영체제 커널의 일부 기능을 수행할 수 있다. 교착상태의 발생 조건에는 상호 배제, 점유와 대기, 비선점, 순환 대기가 있으며 자원을 강제로 선점할 수 있다는 것은 예방 조건이지 발생 조건이 아니다.

예제

출제 패턴은 네 가지다. ① 메모리 관리 — 떨어진 빈 공간을 하나로 모으는 작업은 컴팩션, Denning이 제안한 페이지 집합은 작업 집합이다. ② 운영체제 — 운영체제의 역할을 묻고 매크로 프로세서나 컴파일러를 오답으로 넣는다. ③ 스레드·커널 — 스레드의 자원 할당 단위와 커널의 역할을 뒤집은 선지가 나오며, 커널이 명령어 해독을 한다고 적으면 틀린다. ④ 스케줄링·교착상태 — 선점 스케줄링을 비선점으로 적거나, 자원 강제 선점을 교착상태 발생 조건으로 적은 선지가 오답이다.

대표 기출 3문항

스레드(Thread)에 대한 설명으로 옳지 않은 것은?

  1. 한 개의 프로세스는 여러 개의 스레드를 가질 수 없다.
  2. 커널 스레드의 경우 운영체제에 의해 스레드를 운용한다.
  3. 사용자 스레드의 경우 사용자가 만든 라이브러리를 사용하여 스레드를 운용한다.
  4. 스레드를 사용함으로써 하드웨어, 운영체제의 성능과 응용 프로그램의 처리율을 향상시킬 수 있다.
정답과 해설 보기

정답 ① · 운영체제에서 CPU 실행의 기본 단위인 스레드(Thread)의 개념과 특성을 묻는 문제이다. 하나의 프로세스는 코드, 데이터, 힙 등의 메모리 공간을 공유하면서 독립적인 레지스터와 스택을 갖는 여러 개의 스레드를 생성하여 실행할 수 있는 다중 스레딩을 지원한다.

스레드는 프로세스 내에서 공유된 주소 공간을 사용하는 경량 프로세스로, 한 프로세스는 여러 스레드를 가질 수 있다.

운영체제에 대한 설명으로 거리가 먼 것은?

  1. 다중 사용자와 다중 응용프로그램 환경하에서 자원의 현재 상태를 파악하고 자원 분배를 위한 스케줄링을 담당한다.
  2. CPU, 메모리 공간, 기억 장치, 입출력 장치 등의 자원을 관리한다.
  3. 운영체제의 종류로는 매크로 프로세서, 어셈블러, 컴파일러 등이 있다.
  4. 입출력 장치와 사용자 프로그램을 제어한다.
정답과 해설 보기

정답 ③ · 운영체제의 주요 개념과 자원 관리 역할, 그리고 소프트웨어 분류 체계에 대해 묻고 있다. 운영체제는 CPU, 메모리, 입출력 장치 등의 하드웨어 자원을 제어하고 다중 작업 환경에서 자원 분배를 스케줄링하는 시스템 소프트웨어이다.

운영체제는 하드웨어 자원 관리와 스케줄링을 담당하며, 매크로 프로세서나 컴파일러는 프로그래밍을 돕는 도구이지 운영체제가 아니다.

선점(preemption) 스케줄링 방식에 대한 설명으로 옳지 않은 것은?

  1. 대화식 시분할 시스템에 적합하다.
  2. 긴급하고 높은 우선순위의 프로세스들이 빠르게 처리될 수 있다.
  3. 일단 cpu를 할당받으면 다른 프로세스가 cpu를 강제적으로 빼앗을 수 없는 방식이다.
  4. 선점을 위한 시간 배당에 대한 인터럽트용 타이머 클록(clock)이 필요하다.
정답과 해설 보기

정답 ③ · 선점 스케줄링에 대한 설명 중 옳지 않은 것을 고르는 문제이다. 선점 스케줄링은 실행 중인 프로세스라도 시간 할당량이 만료되거나 더 높은 우선순위의 프로세스가 도착하면 CPU를 강제로 빼앗을 수 있는 방식이다.

선점 스케줄링은 실행 중인 프로세스를 강제 중단시킬 수 있으므로 비선점 방식과 반대다.

자주 묻는 물음

컴팩션과 작업 집합은 무엇인가요?
컴팩션은 서로 떨어져 있는 여러 개의 낭비 공간을 모아 하나의 큰 기억 공간을 만드는 작업입니다. 작업 집합은 프로세스가 일정 시간 동안 자주 참조하는 페이지들의 집합으로, Denning이 제안한 모델에서는 주기억장치에 유지해야 하는 페이지들을 뜻합니다.
스레드와 운영체제는 어떻게 정리하나요?
스레드는 프로세스 내에서 공유된 주소 공간을 사용하는 경량 프로세스로, 한 프로세스가 여러 스레드를 가질 수 있고 자원 할당은 프로세스 단위로 이루어집니다. 운영체제는 하드웨어 자원 관리와 스케줄링을 담당하며, 매크로 프로세서나 컴파일러는 운영체제가 아닙니다. UNIX는 다중 사용자와 다중 작업을 지원합니다.
선점 스케줄링과 교착상태의 핵심은 무엇인가요?
선점 스케줄링은 실행 중인 프로세스를 강제로 중단시킬 수 있는 방식입니다. 교착상태의 발생 조건에는 상호 배제, 점유와 대기, 비선점, 순환 대기가 있고, 자원을 강제로 선점할 수 있다는 것은 발생 조건이 아니라 예방 조건입니다. 커널은 자원 관리자이며 명령어 해독은 CPU 제어장치의 역할입니다.
이 개념 문제 10개 풀기 회원용

정보처리기사 풀이 세트에서 이 개념의 문제 10개를 바로 풀어 보세요.