본문 바로가기
CS 공부/컴퓨터 구조

가상기억장치

by 학습하는 청년 2025. 1. 8.

최종 수정 : 25.1.8

가상기억장치

컴퓨터는 기억장치 액세스 속도를 개선하기 위하여 캐시 기억장치를 도입하였다. 컴퓨터는 초기에 기억장치 용량을 증가시키는 방법으로 가상기억장치(virtual mamory)를 사용하였다. 가상기억장치와 상대적인 개념으로 실제로 컴퓨터 시스템에 탑재되어 있는 주기억장치를 물리 기억장치(physical memory)라고 부른다.

 

가상기억장치는 프로세스가 사용하는 주소 공간과 컴퓨터에 설치된 메모리가 제공하는 주소 공간을 분리함으로써 프로그래머가 효율적으로 메모리를 사용할 수 있도록 해준다.


1. 가상기억장치의 필요성

실행 중인 프로그램이나 참조되는 데이터는 메모리에 적재되어야 한다. 가장 쉬운 방법은 전체 프로세스에 필요한 프로그램과 데이터를 메모리에 적재하는 것이지만 너무 큰 메모리 공간이 있어야 하므로 적절치 않다. 도구나 오늘날의 컴퓨터는 대부분 다수의 프로세스를 동시에 실행시킨다는 것도 고려해야 한다. 각 프로세서가 자신만의 주소 공간을 가지고 그에 상응하는 메모리를 요구하기 때문에 매우 큰 용량의 메모리가 필요하다.


2. 페이지 테이블

가상기억장치에 저장된 프로그램이나 데이터는 실제로 중앙처리장치에 의하여 처리될 때 물리 기억장치로 옮겨져 사용된다. 가상기억장치와 물리 기억장치 간에 데이터를 주고 받는 것을 스와핑(swapping)이라고 한다. 스와핑을 하기 위해하여 서로 교환할 데이터의 크기를 정해야 한다. 가상기억장치 영역을 논리적으로 일정한 크기로 나눈 영역을 페이지(page)라고 한다. 물리 기억장치를 같은 크기로 나눈 영역을 페이지 프레임(page frame)이라 하고, 물리 기억장치의 페이지 프레임 한 개는 가상기억장치의 페이지 하나를 저장하는데 가상기억장치와 물리기억장치 간에 페이지를 교환하는 것을 페이징(paging)이라고 한다.

  • 논리 주소(logical address) : 중앙처리장치가 데이터를 액세스 하기 위하여 사용하는 주소
  • 가상 주소(virtual address) or 선형 주소(linear address) : 가상기억장치에 대한 주소
  • 물리 주소(physical address) : 주기억장치를 액세스하는 주소

프로세스는 세그먼트(segment)와 오프셋(offset)으로 구성된 논리 주소를 사용하며, 이 두 가지를 조합하여 가상 주소를 생성한다.

페이지 번호 페이지 내부 오프셋(k 비트)

가상 주소(n 비트)

 

가상기억장치의 페이지는 물리 기억장치의 임의의 페이지 프레임에 할당될 수 있다. 프로세서가 생성한 가상 주소는 가상기억장치 영역에 대한 주소이기 때문에 실제로 프로세서가 액세스하려는 데이터가 저장되어 있는 물리 주소로 변환되어야 한다. 이 변환을 위하여 가상기억장치의 페이지가 물리 기억장치의 어느 페이지 프레임에 들어가 있는지 알려주는 테이블이 필요하다. 이런 매핑 테이블을 페이지 테이블(page table)이라고 한다.


참고

독학사 교재

'CS 공부 > 컴퓨터 구조' 카테고리의 다른 글

광기억장치  (0) 2025.01.08
보조기억장치  (0) 2025.01.08
캐시기억장치  (0) 2025.01.08
주기억장치  (0) 2025.01.08
기억장치 개요  (0) 2025.01.08

댓글