[3일차] 2025 정보처리산업기사 운영체제 – 연속 메모리 할당기법 (단일 분할, 다중 분할, 단편화)


정보처리산업기사, 운영체제는 제한된 주기억장치를 여러 프로그램이 함께 사용하는 구조를 제공한다. 이때 메모리를 어떻게 나누고 배치할지를 결정하는 방식이 연속 메모리 할당기법이다.

이번 학습에서는 단일 분할, 다중 분할, 그리고 이와 관련된 오버레이, 스와핑, 고정분할, 가변분할을 함께 정리한다.


1. 연속 메모리 할당의 기본 개념

하나의 프로세스가 하나의 연속된 공간을 차지하는 방식이다. 즉, 프로세스 전체가 하나의 블록으로 메모리에 적재된다.

항목설명
장점주소 계산 단순, 접근 속도 빠름
단점내부·외부 단편화 발생, 메모리 낭비 가능

이후 등장하는

비연속 메모리 관리(Paging, Segmentation)


2. 단일 분할 할당기법 (Single Partition Allocation)

1) 개념

운영체제(OS) 영역을 제외한 나머지 전체를 하나의 사용자 프로그램에 할당하는 방식이다.

즉, 한 번에 하나의 프로세스만 메모리에 적재된다.

정보처리산업기사 [3일차] 2025 정보처리산업기사 운영체제 – 연속 메모리 할당기법 (단일 분할, 다중 분할, 단편화)
구분내용
특징단순 구조, 동시 실행 불가
장점관리 용이, 초기 OS에 적합
단점메모리 낭비 심함, 멀티프로그래밍 불가

2) 오버레이 기법 (Overlay)

프로세스 크기가 메모리보다 클 때,

필요한 부분만 교체하며 실행하는 기법이다.

항목설명
원리프로그램을 여러 모듈로 나누어 필요한 시점마다 적재
장점작은 메모리에서도 큰 프로그램 실행 가능
단점프로그래머가 직접 로드 구간을 설계해야 함

예시

  • A모듈 실행 → 메모리 부족 시 A 해제 → B모듈 적재
  • 대표 사용 예: 구형 MS-DOS, 초기 유닉스 시스템

3) 스와핑 기법 (Swapping)

프로세스를 주기억장치 ↔ 보조기억장치 간 교체하는 방법이다.

구분설명
스왑 아웃(Swap Out)현재 실행되지 않는 프로세스를 보조기억장치로 이동
스왑 인(Swap In)실행 준비된 프로세스를 메모리로 가져옴
장점다중 프로그래밍(Multiprogramming) 구현 가능
단점디스크 I/O 오버헤드로 인해 속도 저하 가능

스와핑은

단일 분할 구조의 한계(1개만 적재 가능)


3. 다중 분할 할당기법 (Multiple Partition Allocation)

1) 개념

여러 프로세스를 동시에 메모리에 적재할 수 있도록,

사용자 영역을 여러 구역(Partition)으로 나누는 방식이다.

항목설명
장점멀티프로그래밍 구현, CPU 활용도 증가
단점단편화 문제 발생 (내부·외부 단편화)

2) 고정분할 할당기법 (Fixed Partitioning)

  • 메모리를 미리 정해진 크기로 여러 구역으로 나눈다.
  • 각 구역에는 하나의 프로세스만 적재할 수 있다.
항목설명
장점관리가 단순하고 접근 빠름
단점작은 프로세스에도 큰 분할이 할당되어 내부 단편화 발생

예시

분할크기(KB)프로세스낭비 공간
1100P1(80)20
2200P2(190)10
3300P3(250)50

총 낭비 = 내부 단편화(80KB)


3) 가변분할 할당기법 (Variable Partitioning)

  • 프로세스의 크기에 맞게 동적으로 필요한 만큼 공간 할당
  • 프로세스 종료 시 해당 영역을 해제하고 재사용 가능
항목설명
장점내부 단편화 최소화
단점외부 단편화 발생 가능

예시

시점상태
초기[P1:100KB] [P2:200KB] [P3:150KB]
P2 종료 후[빈공간:200KB] 생성
새 프로세스 P4(180KB) 도착P4 배치 가능, 20KB 잔여 → 외부 단편화 발생

외부 단편화는 “공간은 충분하지만 연속되지 않아 할당 불가한 상태”를 의미한다.


4. 단편화(Fragmentation)

프로세스를 메모리에 반복적으로 적재·해제 하다 보면 사용할 수 없는 공간이 조금씩 생긴다. 이처럼 메모리 내부 혹은 외부에서 발생하는 낭비 공간단편화(Fragmentation) 라고 한다.

단편화는 연속 메모리 할당기법의 가장 큰 한계로, 고정분할(내부 단편화)가변분할(외부 단편화) 에서 각각 다르게 발생한다.


1) 내부 단편화 (Internal Fragmentation)

고정된 크기의 분할(Partition)을 사용하다 보면, 프로세스 크기보다 블록 크기가 더 클 경우 블록 내부에 남는 공간이 낭비된다.

항목내용
정의할당된 블록 내부에서 남은 공간이 재사용되지 못하는 현상
발생 원인고정분할 할당(Fixed Partitioning)에서 블록 크기 불일치
특징블록 내부에서 낭비 발생 (외부에는 연속 공간 존재)
해결 방법가변분할 할당, 비연속 할당(Paging)

예시

정보처리산업기사 [3일차] 2025 정보처리산업기사 운영체제 – 연속 메모리 할당기법 (단일 분할, 다중 분할, 단편화)

→ 이 남은 공간은 다른 프로세스가 사용할 수 없다.


2) 외부 단편화 (External Fragmentation)

프로세스 크기에 따라 동적으로 분할을 생성·삭제하는 가변분할 방식에서는

프로세스가 종료되면 그 자리가 빈 공간으로 남게 된다.

이 빈 공간들이 여기저기 흩어지면, 총 여유공간은 충분하지만 연속되지 않아

새로운 프로세스가 적재되지 못하는 상황이 발생한다.

항목내용
정의메모리 블록 사이에 분산된 작은 빈틈으로 인해 연속 공간 부족
발생 원인가변분할(Variable Partitioning)에서 반복적 할당/해제
특징전체 여유공간은 충분하지만, 연속 공간 부족
해결 방법압축(Compaction), Paging, Segmentation

예시

정보처리산업기사 [3일차] 2025 정보처리산업기사 운영체제 – 연속 메모리 할당기법 (단일 분할, 다중 분할, 단편화)

3) 배치전략에 따른 단편화의 차이

배치전략특징단편화 발생 경향
First Fit앞에서부터 처음 맞는 공간에 배치앞부분에 작은 틈이 빠르게 누적 (외부 단편화 심화)
Best Fit가장 크기가 근접한 공간 선택더 작은 잔여공간이 많이 남아 외부 단편화 증가
Worst Fit가장 큰 공간에 배치초기에는 분산이 완만하지만 장기적으로 효율 저하

즉,

어떤 배치전략을 쓰느냐에 따라 외부 단편화의 심화 정도가 달라진다.


4) 단편화 해결 방법

방법설명적용 대상
압축 (Compaction)사용 중인 프로세스를 한쪽으로 몰아 빈 공간을 연속화외부 단편화
페이징 (Paging)프로세스를 일정 크기의 페이지 단위로 나누어 비연속 공간에 배치외부 단편화 근본 해결
세그먼테이션 (Segmentation)의미 단위(Segment)로 나누어 필요한 크기만큼 배치외부 단편화 완화

압축(Compaction) 은 연속 할당 환경에서 외부 단편화를 줄이기 위한 대표적 방법으로,

CPU가 직접 메모리 내용을 재배치해야 하므로 시간 오버헤드가 크다는 단점이 있다.

현대 운영체제에서는 이 과정을 자동화하거나 가상메모리(Paging) 로 대체한다.


5) 핵심 비교 요약

구분내부 단편화외부 단편화
발생 위치블록 내부블록 외부
주 발생 기법고정분할(Fixed Partition)가변분할(Variable Partition)
원인블록 크기와 프로세스 크기 불일치불연속적인 빈 공간 누적
해결책가변분할, Paging압축, Paging, Segmentation
시험 키워드“블록 내부 낭비”“연속 공간 부족”

정리 포인트

  • 내부 단편화는 고정분할(Fixed Partition) 에서, 외부 단편화는 가변분할(Variable Partition) 에서 발생한다.
  • 외부 단편화는 Compaction(압축) 으로 줄일 수 있지만, 완전히 해결하려면 Paging 또는 Segmentation 같은 비연속 메모리 관리기법이 필요하다.
  • 실기에서는 “단편화의 종류와 원인”, “어떤 기법에서 발생하는가”를 묻는 형태로 자주 출제된다.

이 단편화 확장 설명은 원래 4일차 본문에서

“4. 단편화(Fragmentation)” 섹션으로 들어가면 딱 맞습니다.

즉, 글 구조는 그대로 유지하면서 이 내용을 그대로 넣으면 완성도 높은 시험대비형 교재 수준 글이 됩니다.

원하신다면 이 확장 설명이 적용된 전체 [4일차] 본문 완성 버전 (서두~다음 학습까지) 도 바로 이어드릴까요?

(Generator 테마 기준 완전 SEO 메타 포함 버전으로)


5. 관련 용어 확장

운영체제의 메모리 관리 기능은 단순한 공간 분할뿐만 아니라

프로세스 간의 주소 관리, 보호, 공유, 효율적 자원 활용을 모두 포함한다.

1) 다중 프로그래밍 (Multiprogramming)

  • 여러 프로세스를 동시에 메모리에 올려 CPU의 유휴시간(Idle Time) 을 최소화하는 기법
  • 스와핑(Swapping)이나 가변분할(Variable Partition) 기법과 결합되어 구현
  • 목적: CPU 이용률 향상, 시스템 처리량 증가

2) 재배치 (Relocation)

  • 프로세스가 실제 메모리 어느 위치에 로드될지 미리 알 수 없기 때문에, 실행 시점에서 논리주소(Logical Address)물리주소(Physical Address) 로 변환해야 한다.
  • 이를 담당하는 하드웨어가 MMU (Memory Management Unit) 이다.
항목설명
정적 재배치 (Static Relocation)프로그램 적재 시점에 주소를 고정 변환 (적재 후 이동 불가)
동적 재배치 (Dynamic Relocation)실행 중에도 주소 변환 (MMU가 수행, 현대 시스템 방식)

동적 재배치는 가상메모리(Paging, Segmentation)의 기반 기술이다.


3) 보호 (Protection)

  • 한 프로세스가 다른 프로세스의 메모리 영역에 침범하지 못하도록 보호하는 기능.
  • CPU가 명령을 실행할 때마다 MMU가 주소를 검사하여 허용된 범위(Base~Limit) 내 접근만 허용한다.
보호 기법설명
기저(Base) 레지스터 / 한계(Limit) 레지스터접근 가능한 주소 범위를 하드웨어적으로 제한
페이징 보호 비트(Protection Bit)각 페이지 단위로 읽기/쓰기/실행 권한 제어
예외 처리(Trap)잘못된 접근 시 운영체제가 인터럽트를 발생시켜 중단

4) 공유 (Sharing)

  • 여러 프로세스가 공통 코드(Code Segment)라이브러리 모듈을 함께 사용할 수 있도록 지원하는 기능.
  • 메모리를 절약하고 일관성(Consistency) 을 유지한다.
  • 대표 예: 운영체제의 표준 라이브러리(libc), GUI 라이브러리 등.
구분설명
읽기 전용(Shared Read-Only)코드 세그먼트를 여러 프로세스가 함께 사용 가능
읽기-쓰기(Shared Read-Write)프로세스 간 통신(IPC) 시 공유 메모리 사용
이점중복 로딩 방지, 메모리 효율 향상

5) 논리적 조직 (Logical Organization)

  • 프로그램은 코드(Code), 데이터(Data), 스택(Stack), 힙(Heap) 등 논리적 영역으로 구성된다.
  • 운영체제는 이 구조를 반영해 메모리를 관리하며, 특히 세그먼테이션(Segmentation) 기법은 이 구조를 직접 표현한다.
세그먼트 유형설명
코드(Code)실행 명령이 저장되는 영역 (읽기 전용)
데이터(Data)전역 변수 등 초기화된 데이터 저장
스택(Stack)함수 호출 시 지역 변수, 복귀 주소 저장
힙(Heap)동적 메모리 할당 영역 (malloc 등)

6. 연속 할당과 비연속 할당 비교

구분연속 할당 (Contiguous Allocation)비연속 할당 (Non-Contiguous Allocation)
기본 개념프로세스 전체가 하나의 연속된 메모리 공간에 적재프로세스를 여러 조각(Page/Segment)으로 나누어 비연속적으로 저장
주소 구조실제 주소 = 시작주소(Base) + 오프셋(Offset)논리주소를 MMU가 매핑 (페이지/세그먼트 단위)
단편화 문제내부·외부 단편화 모두 발생외부 단편화 없음 (내부 단편화만 존재 가능)
재배치 가능성제한적 (정적 재배치 중심)동적 재배치 가능 (실행 중 이동 가능)
보호 기법Base-Limit 레지스터 기반페이지 보호 비트, 세그먼트 테이블 활용
공유 효율낮음 (전체 블록 단위로만 공유 가능)높음 (공유 페이지, 공유 세그먼트 가능)
대표 기법단일 분할, 다중 분할 (고정/가변)페이징, 세그먼테이션, 가상메모리
현대 OS 적용초기 시스템(DOS, 초창기 UNIX)현대 OS(Linux, Windows, macOS 등)

정리 포인트

  • 연속 할당은 구조가 단순하지만, 단편화 문제와 재배치 제약이 크다.
  • 비연속 할당은 복잡하지만, 효율적 자원 관리와 보호, 공유 기능을 제공한다.
  • 현대 운영체제는 두 방식을 절충한 가상메모리(Virtual Memory) 구조를 사용한다. → 주소 변환, 보호, 공유, 재배치 기능을 모두 통합.

결론

연속 메모리 할당은 운영체제 메모리 관리의 기초 구조로,

오늘날 가상기억장치 시스템(Paging, Segmentation)의 기반이 된다.

시험에서는 다음 항목이 자주 출제된다.

  • 단일 vs 다중 분할 구조의 차이
  • 오버레이·스와핑의 개념
  • 고정분할 vs 가변분할 단편화 구분
  • 압축(Compaction) 적용 여부

다음 학습 – 가상기억장치와 페이지 교체 알고리즘

연속 메모리 할당에서는 단편화 문제로 인해 효율이 떨어진다. 이 한계를 해결하기 위해 운영체제는 비연속 메모리 관리 기법, 즉 가상기억장치(Virtual Memory) 를 사용한다.

다음 학습에서는 페이징(Paging), 세그먼테이션(Segmentation), 그리고 페이지 교체 알고리즘(FIFO, LRU, OPT) 을 중심으로 메모리 효율을 극대화하는 방식을 정리한다.

정보처리산업기사 관련링크 모음

  • 큐넷(Q-Net) 정보처리산업기사 안내
    -> 바로가기
  • 큐넷 원서접수 페이지 (정보처리산업기사 실기)
    -> 바로가기
  • 한국산업인력공단 공식 홈페이지
    ->바로가기
  • 이기적 2025 정보처리산업기사 실기 교재 공식몰 (영진닷컴)
    -> 바로가기
  • HRD-Net (직업훈련포털)
    -> 바로가기

“이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.”