SECTION 135: 가상기억장치 구현 기법

2024. 10. 12. 17:55정보처리기사(실기)/11장 응용 소프트웨어 기초 기술 활용

SECTION 135: 가상기억장치 구현 기법

  1. 가상기억장치
    1. 가상기억장치란: 가상기억장치는 주기억장치의 용량 한계를 극복하기 위해 보조기억장치를 마치 주기억장치처럼 사용하는 메모리 관리 기법입니다. 이 방식은 실행 중인 프로그램이 필요로 하는 모든 메모리를 실제 주기억장치에 할당하지 않고, 일부만 주기억장치에 적재하고 나머지는 보조기억장치에 보관하는 방식으로 동작합니다.
    2. 특징: 가상기억장치를 사용하면 메모리의 효율적인 사용이 가능해지고, 프로그램이 실제 물리적 메모리 크기에 구애받지 않고 실행될 수 있습니다. 이는 메모리 부족 문제를 해결하고, 여러 프로그램을 동시에 실행할 수 있는 환경을 제공합니다.
    3. 구현 방법: 가상기억장치는 페이징 기법과 세그먼테이션 기법으로 구현됩니다.
      • 페이징 기법: 고정 크기의 페이지로 메모리를 나누어 관리합니다.
      • 세그먼테이션 기법: 논리적인 단위인 세그먼트로 메모리를 나누어 관리합니다.
  2. 페이징 기법
    1. 페이징 기법이란: 페이징 기법은 가상기억장치를 일정한 크기의 고정된 블록인 페이지로 나누어 관리하는 방식입니다. 각 페이지는 동일한 크기를 가지며, 주기억장치에서는 프레임이라는 동일한 크기의 블록으로 관리됩니다.
    2. 특징: 페이지와 프레임의 크기가 동일하기 때문에 메모리 할당과 회수가 용이하고, 외부 단편화 문제를 해결할 수 있습니다. 하지만 내부 단편화가 발생할 수 있으며, 페이지 테이블을 사용하여 가상 주소와 물리적 주소를 매핑하는 과정이 필요합니다.
    3. 페이지, 페이지 프레임, 외부 단편화, 내부 단편화, 페이지 맵 테이블:
      • 페이지(Page): 가상기억장치를 일정한 크기로 나눈 고정된 블록을 의미합니다. 각 페이지는 동일한 크기를 가지며, 가상 주소 공간을 나누어 관리하는 단위입니다.
      • 페이지 프레임(Page Frame): 주기억장치를 일정한 크기로 나눈 고정된 블록을 의미하며, 각 페이지가 할당되는 메모리의 물리적 공간입니다. 페이지와 페이지 프레임은 크기가 동일하여 가상 주소를 물리적 주소로 매핑하기 쉽습니다.
      • 외부 단편화(External Fragmentation): 메모리의 빈 공간이 여러 조각으로 나뉘어 있어도 필요한 크기의 메모리를 할당할 수 없는 문제를 의미합니다. 페이징 기법은 메모리를 고정된 크기로 나누어 외부 단편화를 해결할 수 있습니다.
      • 내부 단편화(Internal Fragmentation): 프로세스가 페이지 크기보다 작을 경우, 페이지 내에 사용되지 않는 빈 공간이 발생하는 문제를 의미합니다. 이는 페이징 기법의 단점 중 하나입니다.
      • 페이지 맵 테이블(Page Map Table): 각 페이지가 주기억장치의 어느 페이지 프레임에 할당되어 있는지를 기록한 테이블입니다. CPU는 페이지 맵 테이블을 참조하여 가상 주소를 물리적 주소로 변환합니다.
      • 주소 변환(매핑): 주소 변환은 가상 주소를 물리적 주소로 변환하는 과정을 의미합니다. CPU는 가상 주소를 받아 페이지 번호와 오프셋으로 나눕니다. 페이지 번호를 페이지 맵 테이블에서 찾아 해당 페이지가 적재된 페이지 프레임의 물리적 주소를 얻고, 오프셋을 추가하여 최종 물리적 주소를 계산합니다. 이 과정을 통해 필요한 데이터를 주기억장치에서 찾습니다. CPU는 페이지 테이블을 참조하여 가상 주소를 물리적 주소로 변환하고, 필요한 데이터를 접근합니다.
    4. 구현 방법: 페이지 테이블을 사용하여 각 가상 페이지가 주기억장치의 어느 프레임에 위치하는지 기록합니다. CPU는 페이지 테이블을 참조하여 가상 주소를 물리적 주소로 변환하고, 필요한 데이터를 접근합니다.
  3. 세그먼테이션 기법
    1. 세그먼테이션 기법이란: 세그먼테이션 기법은 가상기억장치를 가변 크기의 논리적인 단위인 세그먼트로 나누어 관리하는 방식입니다. 각 세그먼트는 프로그램의 논리적 구조에 따라 나뉘며, 크기가 일정하지 않습니다.
    2. 특징: 세그먼트는 논리적인 의미를 가지기 때문에 코드, 데이터, 스택 등과 같은 다양한 영역을 독립적으로 관리할 수 있습니다. 외부 단편화가 발생할 수 있으며, 세그먼트 테이블을 사용하여 가상 주소와 물리적 주소를 매핑합니다.
    3. 세그먼트, 세그먼트 맵 테이블:
      • 세그먼트(Segment): 세그먼트는 프로그램의 논리적인 단위로, 코드, 데이터, 스택 등의 다양한 기능을 수행하는 독립적인 영역입니다. 각 세그먼트는 크기가 일정하지 않으며, 프로그램의 구조와 요구에 따라 가변적으로 나뉩니다.
      • 세그먼트 맵 테이블(Segment Map Table): 각 세그먼트가 주기억장치의 어느 위치에 적재되어 있는지를 기록한 테이블입니다. CPU는 세그먼트 맵 테이블을 참조하여 가상 주소를 물리적 주소로 변환합니다.
    4. 구현 방법: 세그먼트 테이블을 사용하여 각 세그먼트가 주기억장치의 어느 위치에 적재되어 있는지 기록합니다. CPU는 세그먼트 테이블을 참조하여 가상 주소를 물리적 주소로 변환하고, 필요한 데이터를 접근합니다.

 

기출문제

문제 1: 다음은 가상기억장치의 구현 방법에 대한 설명이다. 괄호 (①, ②)에 들어갈 알맞은 용어를 쓰시오.

가상기억장치의 일반적인 구현 방법은 블록의 종류에 따라 ( ① ) 기법과 ( ② ) 기법으로 나눌 수 있다. ( ① ) 기법은 프로그램을 고정된 크기의 일정한 블록으로 나누고, ( ② )는 가변적인 크기의 블록으로 나눈다.

  • 답: ① 페이징 기법, ② 세그먼테이션 기법
  • 설명: 페이징 기법은 고정 크기의 페이지로 메모리를 나누어 관리하고, 세그먼테이션 기법은 가변 크기의 논리적 단위인 세그먼트로 메모리를 나누어 관리합니다.

문제 2: 가상기억장치(Virtual Memory)의 개념을 간단히 서술하시오.

  • 답: 가상기억장치는 주기억장치의 용량 한계를 극복하기 위해 보조기억장치를 마치 주기억장치처럼 사용하는 메모리 관리 기법입니다.
  • 설명: 가상기억장치는 실제 물리적 메모리보다 큰 용량의 프로그램을 실행할 수 있도록 보조기억장치를 활용하여 주기억장치처럼 사용하는 기술입니다. 이를 통해 여러 프로그램을 동시에 실행할 수 있는 환경을 제공합니다.