CS/운영체제

가상메모리와 가상메모리의 페이징

혀니리리 2023. 10. 1. 17:43
728x90

[운영체제] 가상 메모리(Virtual Memory System) (tistory.com)

 

[운영체제] 가상 메모리(Virtual Memory System)

들어가기 전.. 메모리(memory)란? 메모리란 프로그램과 프로그램 수행에 필요한 데이터 및 코드를 저장하는 장치임. 메모리는 크게 내부 기억장치인 주기억장치와 외부 기억장치인 보조 기억장치

ahnanne.tistory.com

 

컴퓨터에서 말하는 메모리라는것은 프로그램 + 프로그램 수행에 필요한 데이터, 코드를 저장하는 장치를 말함

메모리는 크게 주기억장치, 보조기억장치로 분류됨

주기억장치에는 DRAM, CPU 안에 있는 레지스터, 캐쉬 등의 내부 기억장치가 해당됨

SSD, HDD같은 외부 기억장치보조기억장치

 

초기 컴퓨터는 사용 가능한 RAM의 용량이 가장 큰 실행 애플리케이션의 주소공간보다 커야 했음

이후에 등장한 가상메모리 기법은 애플리케이션을 실행하는데 최소한 얼마만큼의 메모리가 필요한가에 집중함.

애플리케이션의 일부만 메모리에 올진다면, 올라가지 않은 나머지는 보조기억장치(디스크)에 위치하게 됨 

 

그래서 가상메모리란 무엇이냐?

메모리가 실제 메모리보다 많아보이게 하는 기술.

어떤 프로세스 실행 시 메모리에 해당 프로세스 전체가 올라가지 않더라도 실행이 가능하다는 점에서 착안됨.

애플리케이션 실행 시 실행에 필요한 일부분만 메모리에 올리며 나머지는 디스크에 남게 하여 디스크가 RAM의 보조기억장치처럼 작동하도록 하는 것

빠르고 작은 기억장치(RAM)을 크고 느린 기억장치(디스크)병합하여 하나의 크고 빠른 기억장치처럼 동작하게 하는 것

 

이런 가상메모리 구현을 위해서는 컴퓨터가 특수 메모리 관리 하드웨어를 갖추고 있어야 함

이것을 MMU(Memory Management Unit)라고 함 (현대 CPU에는 기본으로 포함하고 있다고 함)

이는 가상주소를 물리주소로 변환, 메모리를 보호하는 역할을 함

 

MMU 사용 시 CPU가 각 메모리에 접근하기 이전에 메모리 주소 번역 작업이 수행되는데 

일일이 가상주소에서 물리적 주소로 번역하게 되면 작업 부하가 너무 높아지므로 MMU가 RAM을 여러 부분(페이지)로 나누어 각 페이지를 하나의 독립된 항목으로 처리.

페이지 및 주소 번역 정보를 기억하는 작업 = 가상메모리 구현에 있어 결정적 절차

 

* 페이징 기법: 연속된 메모리 영역의 확보가 매우 어렵기 때문에 프로세스의 물리 주소 공간이 연속되지 않아도 되도록 메미로리를 관리하는 기법

논리주소의 메모리를 고정된 크기의 페이지로 나누어 관리하는 기법

페이지 테이블을 이용하여 논리 메모리를 실제 물리 메모리로 변환하여 실제 메모리에 접근함

 

(=> 페이징으로 외부 단편화 해결 가능 - 차후 설명 예정...)

[ 운영체제 ] 메모리 관리 1 - 페이징(Paging) (tistory.com)

 

[ 운영체제 ] 메모리 관리 1 - 페이징(Paging)

드디어 대망의 메모리 관리 파트다. '메모리 계층 구조'부터 '주소 공간'까지 아직 안 읽었다면 읽고 오는 것을 추천한다. 앞의 내용을 숙지하고 있어야 이번 챕터를 잘 이해할 수 있기 때문이다.

charles098.tistory.com

가상메모리의 페이징과 물리메모리의 프레임의 크기를 같게 하고

페이지 테이블이라는 것을 두어 불연속 할당을 하면 

페이지와 프레임의 크기가 같으므로 어디에 들어가도 공간낭비가 생기지 않는 기능

728x90