12-13주차 개념 정리
아래의 내용을 코드 블럭 우측 상단의 Copy 버튼을 눌러 복사한 뒤, 퀴즈 로봇(신명훈 학우 제작)의 프롬프트에 붙여넣기하면 핵심 개념들에 대한 퀴즈를 풀어볼 수 있습니다.
□ 페이징
가상 주소 공간을 균일한 크기의 '페이지'로 나누고, 이를 물리 메모리의 '프레임'에 매핑해 주는 메모리 관리 기법.
■ 페이징의 특징
▶ 연속성(Contiguity)
• 실제 물리 메모리는 비연속적으로 할당되더라도, 프로세스는 연속된 가상 주소 공간을 가질 수 있음
• 이를 통해 물리 메모리의 조각화를 줄이고, 큰 연속 공간을 확보하지 않아도 프로그램 실행이 가능해짐
▶ 보호(Protection)
• 각 프로세스는 고유의 가상 주소 공간을 가지며, 운영체제는 페이지 테이블을 통해 접근 권한을 관리
• 이를 통해 프로세스 간, 또는 프로세스-커널 간 메모리 침범을 방지하여 메모리 보호를 실현
▶ 확장(Expansion)
• 요구 메모리 크기가 커질 경우, 물리 메모리 연속 공간을 직접 확보할 필요가 없음
• 대신 새로운 페이지를 다른 프레임이 매핑하여 손쉽게 확장이 가능
• 이를 통해 물리 메모리보다 큰 주소 공간도 가상 메모리를 통해 지원이 가능
■ 페이징의 주소 변환 단계
1. 가상 페이지 번호(VPN)와 offset을 분리
2. 페이지 테이블에서 해당 VPN에 대한 PTE 조회
• 성능을 위해 TLB를 먼저 확인
○ TLB hit 시, 바로 다음 단계로 넘어감
○ TLB miss 시, 페이지 테이블에서 PTE 조회
• PTE에서 프레임 번호 확인
○ 이후 PTE에 있는 보호 비트(접근 권한, 존재 여부)도 함께 검사
○ 페이지가 존재하지 않거나, 권한이 없으면 페이지 폴트 발생
3. 프레임 번호와 offset을 합해 물리 주소 계산
■ 페이징의 장점과 단점
▶ 페이징의 장점
• 외부 단편화 해결
○ 고정 크기 블록을 사용해 빈 공간이 잘게 흩어지지 않음
• 가상-물리 주소 공간의 분리
○ 프로세스마다 연속적이고 격리된 주소 공간을 보장해 메모리 보호 및 확장 가능
▶ 페이징의 단점
• 내부 단편화 발생
○ 페이지 크기가 고정되어, 마지막 페이지에 필요없는 빈 공간이 발생
• 페이지 테이블 오버헤드
○ 프로세스마다 모든 페이지에 대한 매핑 정보를 페이지 테이블에 저장해야 하므로,
메모리 공간 낭비 및 접근 시간 증가
○ 이를 해결하기 위해 다단계 페이지 테이블 등을 사용
• 주소 변환 지연
○ 매번 메모리 접근 시 페이지 테이블을 통해 변환 작업이 필요
○ TLB miss 시나, 다단계 페이지 테이블 구조에서는 여러 번 메모리를 접근해야 하므로 성능 저하 발생
────────────────────────────────────────────────────────────────────────────────────────────────────
□ Virtual Memory
프로세스마다 독립된 연속적인 메모리 공간을 제공하여, 실제 물리 메모리보다 더 큰 메모리를 사용할 수 있게 하고,
주소 공간의 추상화와 보호 기능을 제공하는 기술. 대표적으로 페이징을 통해 구현된다.
■ Virtual Memory의 핵심 특징
• 연속적이고 독립적인 가상 주소 공간을 통한 주소 공간 추상화
• 프로세스 간 격리를 통한 메모리 보호
• 디스크의 일부를 메모리처럼 사용하여 메모리 확장 가능
• 요구 페이징(Demand Paging)을 통한 메모리 최적화
• 페이지 교체를 통해 메모리의 물리적 한계 극복
• TLB와 페이지 테이블을 통한 주소 변환
────────────────────────────────────────────────────────────────────────────────────────────────────
□ 페이지 테이블(Page Table)
가상 주소를 실제 물리 주소로 매핑하는 정보를 저장하는 자료구조.
이를 통해 각 페이지의 물리적 위치와 접근 권한을 추적하며, 가상 메모리의 핵심 기능인 주소 변환과 보호를 실현
■ Page Table의 핵심 특징
• 가상 주소 → 물리 주소 매핑 정보 저장
• 프로세스마다 독립된 테이블을 보유
• 보호 및 제어 정보 포함 (Present Bit, R/W Bit 등)
• 주소 변환 시 필수적인 자료구조
• 메모리 낭비 문제의 경우, 다단계 페이지 테이블 등으로 최적화
────────────────────────────────────────────────────────────────────────────────────────────────────
□ TLB(Translation Lookaside Buffer)
최근 주소 변환 정보를 빠르게 캐싱하여 페이지 테이블 접근을 줄이고, 메모리 접근 성능을 향상시키는 고속 하드웨어 캐시
■ TLB의 핵심 특징
• 주소 변환 캐시 역할
• 고속 하드웨어 캐시 (CPU 내의 MMU에 내장)
• 용량이 제한적이므로, 오래된 항목 교체 필요
• TLB miss 처리 필요 (페이지 테이블 조회 및 TLB 갱신)
• 문맥 교환 시 TLB 무효화 필요
────────────────────────────────────────────────────────────────────────────────────────────────────
□ Page Fault
필요한 페이지가 메모리에 없을 때 발생하는 예외.
이때 운영체제가 개입해 페이지를 적재하며, 지연 로딩과 메모리 보호의 핵심 메커니즘이다.
■ Page Fault의 핵심 특징
• 필요한 가상 페이지가 물리 메모리에 없는 경우 발생
• 운영체제가 개입해 처리 (메모리 로드 및 페이지 테이블 갱신)
• Lazy Loading과 밀접한 관련 (필요할 때만 적재)
• 정상적인 경우, 비정상적인 경우 구분 필요 (권한, 존재 여부 검사)
• 성능에 큰 영향을 끼침 (디스크 접근이 포함되어 매우 느림)
────────────────────────────────────────────────────────────────────────────────────────────────────
□ Lazy Loading
데이터에 실제 접근이 있을 때 메모리에 로드하는 기법.
Page Fault와 함께 작동하여 메모리 사용을 효율화
■ Lazy Loading의 핵심 특징
• 실제 접근이 있을 때까지 메모리 할당을 미룸
• Page Fault와 함께 작동
• 메모리 사용 최적화
• 주로 Demand Paging 방식과 결합 (Lazy Loading의 대표 예시)
○ 초기에는 페이지 테이블만 구성, 실제 데이터는 나중에 로딩
────────────────────────────────────────────────────────────────────────────────────────────────────
□ Page Replacement Policy
가득 찬 메모리에서 어떤 페이지를 제거할지를 결정하는 전략. 시스템 성능과 안정성에 큰 영향을 준다.
■ Page Replacement Policy의 핵심 특징
• 메모리가 가득 찼을 때 페이지 교체 기준을 정함
• 교체 대상 선정 기준에 따라 다양한 알고리즘이 존재
○ FIFO: 가장 오래된 페이지 제거
○ LRU: 가장 오랫동안 사용되지 않은 페이지 제거
○ Clock Algorithm: LRU를 근사하며 효율을 높인 방식
○ Optimal: 앞으로 가장 오랫동안 사용되지 않을 페이지 제거
• 성능에 큰 영향을 미침 (Page Fault 발생률, 전체 시스템 성능)
• 하드웨어 지원과 결합될 수 있음 (LRU의 Accessed/Modified 비트 등 하드웨어 정보)
────────────────────────────────────────────────────────────────────────────────────────────────────
□ Anonymous Page
특정 파일과 연결되지 않고, 힙/스택 등에서 생성되며 스왑 공간에 저장될 수 있는 임시 메모리 페이지
■ Anonymous Page의 핵심 특징
• 파일과 연결되지 않은 페이지 (힙/스택 등에서 동적으로 생성)
• 초기 데이터가 없으며, 초기화는 운영체제가 수행
○ 처음에는 비어 있거나 0으로 초기화되며, 필요할 때 Lazy Loading 방식으로 할당
• 스왑 공간을 사용해 저장
• 주로 일시적이고 동적인 사용자 데이터 저장 용도로 사용
────────────────────────────────────────────────────────────────────────────────────────────────────
□ File-backed Page
실제 디스크에 있는 파일의 데이터를 기반으로 메모리에 매핑된 페이지.
실행 파일, mmap 파일 등에 사용되며 공유 및 메모리 절약이 가능
■ File-backed Page의 핵심 특징
• 디스크의 파일 내용과 연결된 페이지 (실행 파일, 라이브러리, mmap된 일반 파일 등)
• 초기 내용이 파일에서 로드됨
○ 접근 시 파일에서 데이터를 읽어와 메모리에 적재하며, Lazy Loading 방식과 함께 사용
• 수정 여부에 따라 동기화 방식 결정 (Clean/Dirty)
• 메모리 절약 및 공유 가능 (여러 프로세스가 하나의 파일 페이지 공유 가능)
────────────────────────────────────────────────────────────────────────────────────────────────────
□ Swap Disk
메모리 부족 시 페이지를 임시로 저장하는 디스크 공간.
주로 Anonymous Page를 저장하며, 빈번한 사용은 성능 저하를 초래함.
■ Swap Disk의 핵심 특징
• 물리 메모리가 부족할 때 페이지를 임시 저장하는 디스크 공간
• Anonymous Page의 보관 장소로 주로 사용
• 디스크 기반으로 매우 느림
• 운영체제가 직접 관리 (비트맵 활용)
────────────────────────────────────────────────────────────────────────────────────────────────────
□ DMA (Direct Memory Access)
CPU의 개입 없이, DMA 컨트롤러가 대신 메모리와 I/O장치(디스크, 네트워크 등) 간에
직접 데이터를 주고받게 하는 메커니즘
■ DMA의 필요성
• CPU는 고속, 고가치의 연산과 제어 작업에 최적화된 자원
• 그런데 메모리-I/O장치 간 데이터 복사는 저속, 저가치의 반복적인 작업에 불과
• 이를 CPU가 직접 처리하게 되면, 보다 중요한 작업이나 제어에 자원을 쓸 수 없게 되어 전체 시스템 효율이 저하됨
■ DMA의 동작 방식
1. CPU가 DMA 컨트롤러에게 데이터 전송 작업 지시
2. DMA 컨트롤러가 메모리와 I/O장치 간 데이터 전송을 직접 수행
3. 전송 완료 후, DMA 컨트롤러가 CPU에 인터럽트를 발생시켜 완료를 알림
'크래프톤 정글 > CS기초(키워드, 개념정리)' 카테고리의 다른 글
[중간정리] 12-13주차: TLB, Belady's Anomaly, Thrashing, Anonymous Page (0) | 2025.06.10 |
---|---|
[CS기초] Anonymous Page, File-backed Page, Swap Disk의 이해 (0) | 2025.06.10 |
[CS기초] 페이지 결함(Page Fault)과 Lazy Loading, 페이지 교체 정책 (1) | 2025.06.10 |
[CS기초] 가상 메모리 시스템의 기본 구조 (Virtual Memory, Page Table, TLB) (0) | 2025.06.09 |
[중간정리] 10-11주차: 커널모드/사용자모드, 컨텍스트 스위칭, fsync, MLFQS (0) | 2025.05.28 |