1. 가상 메모리란?
가상 메모리는 컴퓨터의 RAM에 물리적으로 존재하는 것보다 더 크고 연속적인
개인 메모리 공간을 제공하기 위해 운영체제에서 사용하는 메모리 관리 기술이다.
-> 메모리가 실제 메모리보다 더 많아 보이게 하는 기술
2. 가상 메모리 사용 배경
초창기 컴퓨터는 RAM의 용량이 애플리케이션의 주소보다 커야했기 때문에
메모리 부족 현상이 자주 일어났다.
이를 해결하기 위해 애플리케이션의 일부분만 기억장치에 올리는 오버레이 기법이
나왔지만 복잡성, 성능 오버헤드 등의 문제로 메모리 부족 현상을 결국해결하지 못했다.
그래서 애플리케이션을 실행할 수 있는 최소한의 메모리에 집중하여
RAM에 최소한의 메모리만 올리고 애플리케이션의 나머지는 디스크에 위치시키는
가상 메모리 기법이 나온 것이다.
빠른 기억장치 (RAM) + 느린 기억장치 (디스크) = 가상 메모리
-> 실제 메모리보다 많아 보이게 할 수 있다.
3. 페이지(page)
가상 메모리 구현에 필요한 MMU(Memory Management Unit)은
메모리의 가상주소를 물리주소로 변환하는 작업을 실행한다.
하지만 메모리를 일일이 가상 주소에서 물리 주소로 변환하는 것은 부하가 굉장히 컷기 때문에
메모리를 여러 부분으로 나누어 각 페이지를 하나의 독립된 항목으로 처리했다.
따라서 페이지란 메모리의 연속된 고정 크기의 블럭을 말하며
이는 가상 메모리 시스템에서 프로세스의 가상 주소 공간을 분할하고
메모리 할당 및 액세스를 효율적으로 관리한다.
4. 요구 페이징(demand paging)
모든 프로세스의 데이터를 미리 적재하는 것이 아닌 CPU가 요청할 때
프로세스의 데이터를 메모리에 올리는 것을 말한다.
5. 페이지 폴트(page fault)
어떤 프로그램의 주소가 가상 메모리 공간에 존재하지만 실제 물리적 공간인 RAM에 존재하지
않는 상황에서 접근을 시도할 경우 발생하는 현상을 말한다.
페이지 폴트는 운영체제가 알아서 문제를 해결하고 다시 동일한 명령을 수행하기 때문에
페이지 폴트가 발생하지 않은 것처럼 프로그램을 계속 작동하게 해준다.
하지만 페이지 폴트가 자주 일어나면 운영체제의 성능이 저하된다.
-> 운영체제가 페이지 폴트를 계속 처리하기 때문
따라서 이를 해결하기 위해 나온 것이 페이지 교체 정책인데
이는 메모리가 가득 찼을 때 물리 페이지를 저장공간에 내리고
새로운 페이지를 빈 공간에 올린다.
(페이지 교체 알고리즘은 물리 페이지 중 어떤 페이지를 내려야 가장 효율적인지 구해준다.)
'간단한 IT 지식' 카테고리의 다른 글
[오늘의 지식] 라운드 로빈(Round Robin) 알고리즘 (0) | 2024.02.21 |
---|---|
[오늘의 지식] L Value, R value (0) | 2024.02.20 |
[오늘의 지식] 버퍼 오버플로우(Buffer Overflow) (0) | 2024.02.19 |
[오늘의 지식] 어드레서블 에셋 (0) | 2024.02.16 |
[오늘의 지식] RAII패턴 (0) | 2024.02.14 |