cs

OS - 가상기억장치

joepasss 2022. 5. 10. 17:12

가상기억장치


* 하드디스크와 같은 보조기억장치의 일부를 주기억장치처럼 사용하는 것. 주기억장치의 용량보다 큰 프로그램을 실행하기 위해 사용한다
* 여러 개의 작은 블록 단위로 프로그램을 나누어 가상기억장치에 보관해 놓고, 프로그램을 실행할 때 요구되는 블록만 주기억장치에 불연속적으로 할당하여 처리한다.
* 실행중인 프로세스가 참조하는 주소를 가상주소라고 하며 주기억장소에서 사용할 수 있는 주소를 실주소라고 한다

1. 특징


  1. 블록 단위로 나누어 사용하므로 연속할당방식에서의 단편화를 해결할 수 있어 주기억장치의 이용률을 높일 수 있다.
  2. 다중프로그래밍의 효율을 높일 수 있다
  3. 가상기억장치의 주소를 주기억장치의 주소로 바꾸는 주소변환작업이 필요하다

2. 고정분할 기법


  • 가상기억장치와 주기억장치를 동일한 크기의 페이지 단위로 나눈 뒤 각 주기억공간의 각 페이지 프레임에 가상기억장치의 페이지를 각각 1 : 1로 대응시킴으로써 위치를 고정시켜 할당하는 방법이다.
  • 대표적으로 페이징 기법이 있다

3. 가변분할 기법


  • 가상기억장치의 프로그램을 논리적으로 연관된 기능 단위인 세그먼트로 나눈 뒤 주기억장치의 공간을 가상기억장치의 세그먼트 크기만큼씩 할당하여 적재시키는 방법
  • 내부 단편화가 발생되지 않는다
  • 가상기억장치의 세그먼트 크기는 논리적 기능에 따라 분류되므로 크기가 일정하지 않아 할당되는 주기억공간의 크기도 가변적이므로 가변분할 할당기법이라 한다
  • 대표적으로 세그먼트 기법이 있다