Virtual Memory

CorinBeom·2025년 3월 20일
0

CS

목록 보기
9/22
post-thumbnail

가상 메모리(Virtual Memory)란?

  • 실제 메모리(RAM)보다 더 큰 메모리 공간을 사용할 수 있도록 해주는 기술
  • 각 프로세스가 메인 메모리를 독점적으로 사용하는 것처럼 보이게 함
  • 운영체제는 디스크(스토리지)의 일부를 메모리처럼 사용하여 부족한 RAM을 확장

📌 가상 메모리의 핵심 역할

1️⃣ 프로세스마다 독립적인 메모리 공간 제공

  • 여러 개의 프로세스가 실행될 때, 각 프로세스가 자신의 독립적인 메모리를 가지고 있는 것처럼 보이게 함

2️⃣ 실제 RAM보다 더 큰 메모리 사용 가능

  • 실행 중인 프로그램이 RAM보다 많은 메모리가 필요하면, 운영체제가 디스크 공간을 활용하여 메모리를 확장함

3️⃣ 프로세스 간 메모리 보호

  • 하나의 프로세스가 다른 프로세스의 메모리를 침범하지 못하도록 보호

가상 메모리의 주소 공간 구조

각 프로세스는 가상 주소 공간(Virtual Address Space)을 가지며, 이는 여러 개의 영역으로 나뉘어요.

📌 그림 1.13을 보면 가상 주소 공간이 어떻게 구성되는지 나타나 있음



📌 각 영역의 특징

  • 코드(Code) & 데이터(Data): 프로그램 실행을 위한 기본적인 코드 & 전역 데이터 저장
  • 힙(Heap): 실행 중 동적으로 할당하는 메모리 (크기가 가변적)
  • 스택(Stack): 함수 호출, 지역 변수 저장 (LIFO 구조)
  • 공유 라이브러리: printf(), malloc() 같은 공용 함수가 저장되는 공간
  • 커널 공간: 운영체제 코드가 실행되는 영역 (사용자는 접근 불가)

가상 메모리가 제공하는 주요 기능

📌 1️⃣ 메모리 보호(Memory Protection)

  • 각 프로세스는 자신만의 가상 주소 공간을 가지므로, 다른 프로세스의 메모리에 접근할 수 없음.
  • 이를 통해 보안 및 안정성이 향상됨.

📌 2️⃣ 페이지 매핑(Page Mapping) – 물리적 메모리와 연결

  • 운영체제는 가상 주소(Virtual Address)실제 물리적 메모리(Physical Memory)로 변환해야 함.
  • 이 변환 과정에서 페이지 테이블(Page Table)이 사용됨.
  • 운영체제가 가상 주소와 실제 주소를 매핑하여 프로세스가 자신의 독립적인 메모리를 가지고 있는 것처럼 보이게 함.

📌 3️⃣ 페이지 교체(Page Swapping) – 디스크를 메모리처럼 활용

  • 실행 중인 프로세스가 필요한 메모리가 RAM보다 많을 경우,
    일부 데이터를 디스크(Swap 영역)에 저장했다가 필요할 때 다시 불러오는 방식.
  • 즉, 디스크의 일부를 가상의 RAM처럼 사용하여 메모리를 확장하는 효과!
  • 하지만, 디스크는 RAM보다 속도가 훨씬 느리므로 너무 자주 발생하면 성능이 저하될 수 있음.

가상 메모리의 주요 구성 요소

📌 페이지(Page)와 페이지 테이블(Page Table)

  • 가상 메모리는 작은 "페이지(Page)" 단위로 관리됨
  • 운영체제는 각 페이지가 물리적 메모리 어디에 위치하는지 매핑 정보를 저장
  • 매핑 정보를 관리하는 것이 바로 페이지 테이블(Page Table)

  • 📌 페이지 테이블 역할

    • 가상 주소 → 물리 주소 변환 (페이지 매핑)
    • 프로세스마다 고유한 페이지 테이블을 가짐

📌 페이지 폴트(Page Fault)

  • 프로세스가 필요한 데이터가 메모리에 없고, 디스크(Swap 영역)에 있을 때 발생하는 현상
  • 운영체제가 디스크에서 데이터를 불러오고, 메모리에 적재하는 과정이 필요
  • 페이지 폴트가 자주 발생하면 속도가 느려질 수 있음.

📌스왑(Swap)과 스왑 영역(Swap Space)

  • 운영체제는 RAM이 부족할 때 일부 데이터를 디스크의 Swap 영역에 저장
  • 이 공간을 활용하면 실제 RAM보다 더 많은 데이터를 처리 가능
  • 하지만 디스크 접근 속도가 RAM보다 느리므로 성능 저하가 발생할 수 있음.

가상 메모리의 장점과 단점

📌 ✅ 가상 메모리의 장점

메모리 확장 가능 → RAM보다 더 많은 메모리를 사용할 수 있음

메모리 보호 → 각 프로세스가 독립적인 메모리를 가지므로 충돌 방지

멀티태스킹 가능 → 여러 개의 프로그램을 동시에 실행 가능


📌 ❌ 가상 메모리의 단점

페이지 폴트 발생 시 성능 저하 → 디스크에서 데이터를 불러오면 속도가 느려짐

스왑 사용 시 속도 저하 → RAM보다 디스크가 훨씬 느리므로 성능 저하 발생

페이지 테이블 관리 비용 → 페이지 매핑을 위한 추가적인 오버헤드 발생

결론

가상 메모리는 프로세스가 독립적인 메모리를 사용하는 것처럼 보이게 하는 운영체제의 기술

실제 RAM보다 더 큰 메모리를 사용할 수 있도록 디스크(Swap)를 활용

각 프로세스는 가상 주소 공간을 가지며, 운영체제가 이를 물리 메모리와 매핑

페이지 테이블을 통해 가상 주소 → 물리 주소 변환

스왑과 페이지 폴트는 성능 저하를 유발할 수 있으므로 주의해야 함

profile
Before Sunrise

0개의 댓글