가상기억장치

초보개발·2021년 11월 11일
0

OS

목록 보기
12/38
post-thumbnail
post-custom-banner

Virtual Memory

보조기억장치의 일부를 주기억장치처럼 사용하는 것으로 용량이 작은 주기억장치를 마치 큰 용량을 가진 것처럼 사용하는 기법이다.
프로그램을 여러 개의 작은 블록 단위로 나누어서 가상기억장치에 보관해놓고, 프로그램 실행 시 요구되는 블록만 주기억장치에 불연속적으로 할당하여 처리한다.

  • 장점 : 나누어 사용하므로 단편화 해결, 주기억장치의 이용률 향상, 다중 프로그래밍의 효율 향상

Paging

가상기억장치에 보관되어 있는 프로그램과 주기억장치의 영역을 동일한 크기로 나눈 후 나눠진 프로그램을 동일하게 나눠진 주기억장치의 영역에 적재시켜 실행하는 기법

  • 외부 단편화 발생 X, 내부 단편화 발생 O : 페이지의 크기가 4KB이고 사용할 프로그램이 17KB라면 프로그램은 페이지 단위로 4KB씩 나누어지게 되므로, 마지막 페이지의 실제 용량은 1KB(17KB - 4 * 4KB)가 되고, 이것이 주기억장치에 적재되면 3KB의 내부 단편화가 발생하게 된다.
  • 페이지 맵 테이블의 사용으로 비용이 증가하고 처리 속도가 감소된다.
  • Page : 프로그램을 일정한 크기로 나눈 단위
  • Page frame : 페이지 크기로 일정하게 나누어진 주기억장치의 단위
  • Page Map Table : 가상기억장치(논리적 가상 주소)에서 주기억장치(물리적 실 기억 주소)로의 주소 변환을 위한 페이지의 위치 정보를 갖고 있는 테이블

페이지의 크기

페이지의 크기가 작을 경우

  • 페이지 단편화가 감소, 한 개의 페이지를 주기억장치로 이동시키는 시간 감소
  • 불필요한 내용이 주기억장치에 적재될 확률이 적으므로 효율적인 워킹 셋을 유지 가능
  • 페이지 맵 테이블의 크기가 커지고 매핑 속도가 늦어짐
  • 디스크 접근 횟수 증가로 입출력 시간 증가

페이지의 크기가 클 경우

  • 페이지 맵 테이블의 크기가 작아지고 매핑 속도 증가
  • 디스크 접근 횟수 감소로 입출력 효율성 증가
  • 페이지 단편화 증가, 한 개의 페이지를 주기억장치로 이동시키는 시간 증가

Segmentation

가상기억장치에 보관되어 있는 프로그램을 다양한 크기의 논리적인 단위로 나눈 후 주기억장치에 적재시켜 실행시키는 기법
목적 : 기억공간의 절약을 위해 사용

  • 내부 단편화 발생 X, 외부 단편화 발생 O
  • Segment : 프로그램의 배열이나 함수 등과 같은 논리적인 크기로 나눈 단위, 각 세그먼트는 고유한 이름과 크기를 가짐
  • Segment map table : 주소 변환을 위해 세그먼트가 존재하는 위치 정보를 갖고 있는 테이블

Locality

프로세스가 실행되는 동안 주기억장치를 참조할 때 일부 페이지만 집중적으로 참조하는 성질

  • 스레싱 방지를 위한 워킹 셋 이론의 기반
  • 가상기억장치 관리와 캐시 메모리 시스템의 이론적 근거
  • Locality의 종류
    • 시간 구역성 : 프로세스가 실행되면서 하나의 페이지를 일정 시간 동안 집중적으로 액세스하는 현상
    • 공간 구역성 : 프로세스 실행 시 일정 위치의 페이지를 집중적으로 액세스 하는 현상

Working Set

프로세스가 일정 시간 동안 자주 참조하는 페이지들의 집합

  • 자주 참조되는 워킹 셋을 주기억장치에 상주시킴으로써 페이지 부재 및 페이지 교체 현상이 줄어들어 프로세스의 기억장치 사용이 안정됨

Thrashing

프로세스의 처리 시간보다 페이지 교체에 소요되는 시간이 더 많아지는 현상

  • 페이지 부재가 발생함으로써 나타나며 전체 시스템의 성능이 저하됨
  • 특정 시점까지는 CPU의 이용률이 증가하지만, 다중 프로그래밍의 정도(얼마나 많은 프로그램이 동시에 수행되는가 나타내는 것)가 더 커지면 스래싱이 나타나 CPU 이용률은 급격히 감소함
post-custom-banner

0개의 댓글