CS/운영체제

[운영체제] 15. 가상 메모리와 페이징 기법

JIN-JJS 2025. 4. 24. 19:21

1. 가상 메모리 시스템

가상 메모리

 물리 메모리 크기와 관계없이 프로세스에 큰 메모리 공간을 제공하는 기술

 운영체제는 가상 메모리를 이용하여 프로세스가 물리 메모리 크기나 위치를 신경 쓰지 않고 사용할 수 있도록 함

 

가상 메모리의 크기와 주소

 프로세스가 바라보는 메모리 영역과 메모리 관리자가 바라보는 메모리 영역으로 구분됨

 가상 메모리는 부족한 물리 메모리 부분을 스왑 영역으로 보충하여 운영됨

 

가상 메모리의 크기

 물리 메모리(실제 메모리)와 스왑 영역을 합한 크기가 가상 메모리의 전체 크기가 됨

 

동적 주소 변환(DAT; Dynamic Address Translation)

 프로세스가 사용하는 가상 주소를 실제 물리 주소로 변환하는 과정

 메모리 관리자는 물리 메모리를 나누고 사용자 프로세스를 배치하며 부족한 메모리를 처리하는 복잡한 문제를 해결함

 

 

2. 매핑 테이블의 필요성과 역할

매핑 테이블의 필요성(식당 예시)

 식당에서 손님, 요리사, 관리자가 테이블 배정과 주문을 원활하게 처리하기 위해 매핑 테이블을 공유하는 것과 유사함

 

메모리 매핑 테이블

 가상 메모리 시스템에서 가상 주소와 물리 주소를 일대일로 매핑하여 관리

 가변 분할 방식: 세그먼테이션(Segmentation)

 고정 분할 방식: 페이징(Paging)

 페이지 매핑 테이블(Page Mapping Table) 또는 페이지 테이블(Page Table) 사용

 세그먼테이션 매핑 테이블(Segmentation Mapping Table) 사용

 

지역성(locality)

 특정 메모리 영역에 접근하는 패턴이 집중되는 성질

 공간적 지역성(spatial locality): 가까운 데이터에 접근할 확률이 높음

 시간적 지역성(temporal locality): 최근에 사용한 데이터가 다시 사용될 확률이 높음

 순차적 지역성(sequential locality): 순서대로 진행되는 작업이 많음

 

 

3. 페이징 기법

페이징 기법의 구현

 고정 분할 방식을 이용한 가상 메모리 관리 기법

 물리 주소 공간을 동일 크기로 분할하여 사용

 가상 주소는 프로세스 입장에서 0번지부터 시작

 페이지(Page)와 프레임(Frame)으로 구분

- 페이지: 가상 주소를 일정 크기로 나눈 영역

- 프레임: 물리 메모리를 일정 크기로 나눈 영역

- 페이지와 프레임의 크기는 동일하여 어떤 페이지도 어떤 프레임에 배치 가능

- 매핑 정보는 페이지 테이블에 저장됨

 

페이징 기법의 주소 변환

 가상 주소( VA = <P, D> ) → 물리 주소( PA = <F, D> )로 변환

 P: 페이지 번호, D: 페이지 내 오프셋

 페이지 테이블을 이용해 P를 F로 변환

 

다양한 페이지 크기에서 가상 주소 변환 공식

 P = 가상 주소 / 페이지 크기의 몫

 D = 가상 주소 / 페이지 크기의 나머지

 

페이징 시스템 구성 예시

 16bit CPU에서 한 페이지 크기가 1024B일 때, 가상 주소 공간은 65,536B

 16bit 주소에서 6bit는 페이지 번호, 10bit는 페이지 내 오프셋으로 사용됨

 전체 페이지 수: 64개, 프레임은 0~31번까지 존재

 

주소 변환 예시

 가상 주소 980번지 → P = 0, D = 980 → 페이지 테이블에서 프레임 2에 매핑

 물리 주소는 프레임 2의 시작 주소에서 980번 떨어진 위치

 

 

4. 페이지 테이블 관리

메모리 공유

 각 프로세스마다 개별 페이지 테이블을 가지므로 관리가 복잡함

 프로세스 수 증가 시 페이지 테이블 크기도 증가 → 메모리 공간 감소

 페이지 테이블 크기를 적정하게 유지하는 것이 중요

 

물리 메모리 내 페이지 테이블의 구조

 페이지 테이블의 시작 주소는 페이지 테이블 기준 레지스터(PTBR; Page Table Base Register)에 저장

 물리 메모리가 부족할 경우 페이지 테이블 일부도 스왑 영역으로 이동 가능

 

쓰기 시점 복사(Copy on Write)

 동일한 데이터를 여러 프로세스가 공유할 경우 불필요한 메모리 낭비 발생

 데이터가 변경되기 전까지 복사를 미루어 메모리 절약

 프레임을 공유하여 메모리 낭비를 최소화


이 내용은 휴넷사회복지평생교육원의 운영체제 강의를 듣고 정리한 것입니다.