[운영체제] 가상기억장치 (가상메모리, Virtual Memory)

2017. 3. 5. 20:089급 공무원/컴퓨터 일반

* 주기억장치보다 큰 용량의 프로그램을 실행할 수 있는 기억장치로 주기억장치 공간의 확대가 주 목적.

주기억장치의 비연속 할당방식(페이징, 세그먼테이션)을 사용하여, 연속할당 방식의 단편화 해결

* 주기억장치의 크기보다 더 큰 프로그램 실행 가능

* 실제 메모리 주소가 아닌 가상의 메모리 주소를 주는 방식

* 멀티태스킹 운영체제에서 흔히 사용됨

* 프로세스의 일부분만 주기억장치에 적재되고 나머지는 보조기억장치에 저장된다.

* 가상 기억장치의 공간은 주기억장치에 추가적인 메모리 영역을 제공하므로, 운영체제에서 정하는 크기 이외의 제약은 없다.

* 가상기억공간과 주기억장치의 주소는 매핑을 통해서 이루어지므로, 순서는 없지만, 주소 변환 기법이 필요함

 ※ 인위적 연속성 : 가상공간의 연속적 주소가 실제 물리적인 공간상에서 연속일 필요가 없다. 사상 표를 통해서 가상기억장치의 주소로부터 실기억장치의 주소를 알 수 있다.)

* 프로세스에서 사용되는 가상주소를 주기억장치의 물리주소로 변환하는 것은 프로세스의 실행 중에 이루어진다.


1. 페이징 : 동일한 사이즈로 프로그램을 분할

 1-1 페이지 : 분할된 프로그램의 일부(가상 메모리를 일정한 크기로 나눈 블록)

 1-2 페이지 프레임 :  페이지를 저장할 수 있는 주기억장치의 영역(물리메모리를 일정한 크기로 나눈 블록)

 * 내부단편화 발생, 외부단편화 X

 1-3 페이지 크기에 따른 특징

   1-3-ㄱ 페이지 크기가 작을 때

· 페이지 개수 많아짐 (페이지 맵 테이블도 커진다)

· 한 페이지의 이동시간은 줄어드나

  디스크 접근시간이 많아진다

  > 총 입출력시간은 늘어남

   1-3-ㄴ 페이지 크기가 작을 때

· 페이지 개수 적어짐 (페이지 맵 테이블이 작아진다)

· 무관한 정보가 주기억장치에 적재된다.

  > 위와 반대 이유로 총 입출력 시간은 줄어듦

 1-4 페이징 기법(사상방법)

  1-4-1 직접사상 : 페이지 맵 테이블을 참조하면 바로 해당 위치로 이동

  1-4-2 연관사상 : 페이지 맵 테이블이 내용을 지정하고 있음(연관기억장치에 저장, 훨씬 빠름)

  1-4-3 연관/직접사상 : 직접 사상과 연관 사상을 혼합

 1-5 페이지 테이블 :주 메모리에서 각 페이지가 점유하는 주소를 가짐

  · 메인 메모리에 유지된다.

  · 페이지 테이블의 최소 크기  = ( 프로세스 크기 / 페이지 크기 ) * 페이지 테이블 항목의 크기

  · 최대 페이지 테이블 항목의 개수 : 

   * 역 페이지 테이블

    · 전체 프로세스가 공통으로 사용하는 페이지 테이블을 생성, 가상 주소에는 프로세스 ID와 페이지 주소(번호)를 가지고 있다.

    · 메모리 공간을 적게 사용하지만, 주소 변환 시간이 더 오래 걸린다.

   * 논리주소 : 페이지 번호와 페이지 내에서의 오프셋으로 구성


2. 세그먼테이션 : 다양한 크기로 프로그램을 분할

 2-1 세그먼트 : 분할된  프로그램

 2-2 세그먼트에 대한 접근제어가 가능함

 2-3 사상방법 : 페이징과 같이 직접, 연관, 직접/연관 사상을 모두 사용할 수 있다.

   * 세그먼트 테이블의 각 항목은 기준(base)와 세그먼트의 한계(limit)을 가지고 있는데, 세그먼트 기준은 세그먼트가 메모리 내에 존재하는 시작 물리주소를 가지고 있음, 세그먼트 한계는 세그먼트 길이를 명시한다.

   * 내부단편화X, 외부단편화 발생


* TLB(Translation look-aside Buffers) : 소형 하드웨어 캐시. 키와 값으로 구성되며, 페이지 요청이 들어오면, TLB키와 동시에 비교하여 맞는 것이 있으면 그에 대응하는 프레임 번호를 알려준다. 해당하는 내용이 TLB에 없다면 메모리와 작업을 진행하고 진행한 내용을 TLB에 저장하여 다음 참조 시에 빠른 처리를 지원한다. (가상메모리를 효과적으로 제공하기 위한 장치)


......뭔가 굉장히 왔다갔다 난잡하게 되어버렸음...