📌 메모리 관리에 필요한 핵심 개념 먼저 이해하기
📍 논리 주소 vs 물리 주소
📖 비유: 독서실 자리 예약 시스템
- 논리 주소: 프로그램이 인식하는 주소
→ 예약한 자리 번호 (예: 3번) - 물리 주소: 실제 RAM 상의 위치
→ 실제 앉는 책상 (예: 실제 주소 12번)
🧠 프로그램은 논리 주소만 알고 있음
→ 실제 메모리 주소는 MMU가 변환해줌
📍 MMU (Memory Management Unit)
📦 비유: 자리 안내 도우미
- CPU가 논리 주소를 주면,
MMU는 페이지 테이블 또는 세그먼트 테이블을 통해
물리 주소로 바꿔서 접근함
📍 단편화 (Fragmentation)
구분 | 설명 | 비유 |
내부 단편화 | 고정된 크기로 메모리를 나눌 때 일부 공간이 낭비됨 | 넓은 책상에 작은 책만 올려둠 |
외부 단편화 | 연속되지 않은 빈 공간이 흩어져 있어 전체 메모리는 충분해도 사용 불가 | 초콜릿 부스러기처럼 여기저기 공간만 남음 |
🧠 왜 이 개념들이 중요할까?
- 페이징은 내부 단편화가 발생할 수 있고,
- 세그멘테이션은 외부 단편화가 발생함
→ 각각의 단점 해결을 위한 기술이기 때문에 이 기본 개념은 필수!
1️⃣ 페이징 (Paging)
✅ 개념
- 메모리를 고정된 크기의 블록(Page)으로 나눔
- 프로그램도 동일한 크기의 페이지로 쪼개어,
RAM의 프레임(Frame)에 배치
📦 구조
- 논리 주소 = 페이지 번호 + 오프셋
- 물리 주소 = 프레임 번호 + 오프셋
- MMU가 페이지 테이블로 변환
2️⃣ 세그멘테이션 (Segmentation)
✅ 개념
- 프로그램을 의미 있는 단위인 세그먼트(코드, 데이터, 스택 등)로 나눔
- 크기가 가변적이고, 구조적인 단위를 보존
📐 구조
- 논리 주소 = 세그먼트 번호 + 오프셋
- 물리 주소 = 세그먼트 시작 주소 + 오프셋
- MMU가 세그먼트 테이블을 통해 주소 변환
⚖️ 비교 요약
항목 | 페이징 | 세그멘테이션 |
단위 | 고정 크기 페이지 | 가변 크기 세그먼트 |
단편화 | 내부 단편화 발생 | 외부 단편화 발생 |
주소 변환 | 페이지 테이블 | 세그먼트 테이블 |
구조적 의미 | 없음 | 존재 (코드/데이터/스택 등) |
💡 비유로 이해하기
📚 책에 비유하자면
- 페이징: 책 전체를 100페이지 단위로 무조건 나눠서 보관
→ “쓸데없이 남는 공간(내부 단편화)”이 생기기도 함 - 세그멘테이션: 책을 챕터 단위로 보관 (코드/데이터/스택 등)
→ “논리적 의미에 맞게” 나누지만, 중간중간 빈칸이 생길 수 있음 (외부 단편화)
✍️ 회고
- 메모리 관리 기법은 단순히 공간 할당 문제가 아니라
논리적 구조, 효율, 성능, 보안까지 모두 연결되는 주제 - 시스템이 어떤 방식으로 메모리를 나누는지가
전체 성능에 얼마나 큰 영향을 주는지 체감할 수 있었음
'컴퓨터 과학 > 운영체제' 카테고리의 다른 글
💻 [운영체제] 스레드 동기화 - 세마포어와 뮤텍스 완벽 이해 (0) | 2025.04.26 |
---|---|
💻 [운영체제] 가상 메모리와 스와핑 - RAM이 부족하면 왜 느려질까? (0) | 2025.04.25 |
💻 [운영체제] CPU 스케줄링 알고리즘 정리 (FCFS, SJF, Priority, RR) (0) | 2025.04.24 |
💻 [운영체제] 멀티태스킹 & 컨텍스트 스위칭 정리 (0) | 2025.04.24 |
💻 [운영체제] 프로세스 vs 스레드 차이 정리 (1) | 2025.04.23 |