본문 바로가기
Computer Science/운영체제

가상기억장치 할당 기법

by Libi 2021. 7. 6.
반응형

이전 글에서 주기억장치에 프로그램을 할당하는 방법을 공부하였다. 하지만 주기억장치의 메모리 공간은 제한적이기 때문에 결국 메모리의 크기보다 많은 프로그램들이 올라갈 수 없다. 이를 해결하기 위해 나온 것이 바로 가상기억장치이다.

가상기억장치란 주기억장치 안의 프로그램 양이 많아질 때, 보조기억장치(하드디스크)의 일부를 주기억장치처럼 사용하는 것으로, 용량이 작은 주기억장치를 마치 큰 용량을 가진 것처럼 사용하는 기법이다.

​즉, 프로그램을 여러 개의 작은 블록 단위로 나누어서 가상기억장치에 보관해 놓고, 프로그램 실행 시 요구되는 블록만 주기억장치에 불연속적으로 할당하여 처리하는 방식이다.

가상기억장치에 저장된 프로그램을 실행하기 위해선 가상기억장치의 주소를 주기억장치의 주소로 변환하는 작업이 필요하다. 이를 주소 변환, 주소 사상, 주소 매핑이라고 한다. 또한 이 작업은 메모리 관리 장치(Memory Management Unit, MMU)라는 친구를 통해 수행된다.

 

가상기억장치의 장점은 다음과 같다.

 

가상기억장치를 활용해 프로그램을 메모리에 할당하는 기법에는 페이징 기법 세그먼테이션 기법이 존재한다. 하나씩 살펴보도록 하자.

페이징(Paging) 기법

  • 가상기억장치에 보관되어 있는 프로그램과 주기억장치의 영역을 동일한 크기로 나눈 후 나눠진 프로그램(페이지)을 동일하게 나눠진 주기억장치의 영역(페이지 프레임)에 적재시켜 실행하는 기법
  • 페이지(Page) : 프로그램을 일정한 크기로 나눈 단위
  • 페이지 프레임(Page Frame) : 페이지 크기로 일정하게 나누어진 주기억장치의 단위
  • 외부 단편화는 발생하지 않으나 내부 단편화는 발생할 수 있음
  • 페이지의 크기를 작게 한다면 내부 단편화를 해결할 수 있으나 그만큼 Page Mapping 과정이 증가
  • 주소 변환을 위해서 페이지의 위치 정보를 가지고 있는 페이지 맵 테이블(Page Map Table)이 필요
  • 페이지 맵 테이블을 사용하기 때문에 비용이 증가되고 처리 속도가 감소

세그먼테이션(Segmentation) 기법

  • 가상기억장치에 보관되어 있는 프로그램을 다양한 크기의 논리적인 단위(Segment)로 나눈 후 주기억장치에 적재시켜 실행하는 기법
  • 기억장치의 사용자 관점을 보존하는 기억장치 관리 기법
  • 주소 변환을 위해서 세그먼트가 존재하는 위치 정보를 가지고 있는 세그먼트 탭 테이블(Segment Map Table) 필요
  • 세그먼트가 주기억장치에 적재될 때 다른 세그먼트에게 할당된 영역을 침범할 수 없으며 이를 위해 기억장치 보호키(Storage Protection Key)가 필요
  • 내부 단편화는 발생하지 않으나 외부 단편화는 발생할 수 있음

페이징 기법과 세그먼테이션 기법은 비슷해 보이지만 가장 큰 차이는 프로그램을 나누는 크기이다. 페이징 기법은 동일한 크기로 나누는 반면 세그먼테이션 기법은 다양한 크기의 단위로 나눈다.

반응형

댓글