이 포스트 내용은 박미진 컴퓨터일반시나공 정보처리기사 요약집를 참고하여 작성한 글입니다.

메모리 관리 기법 - 가상기억장치

가상기억장치(불연속할당)

  • 보조기억장치(Hard disk)의 일부를 주기억장치처럼 사용하는 것으로, 용량이 작은 주기억장치를 마치 큰 용량을 가진 것처럼 사용하는 것이다.
  • 주기억장치의 용량 보다 큰 프로그램을 실행하기 위해 사용한다.
  • 블록 단위로 나누어 사용하므로 연속할당방식에서 발생할 수 있는 단편화를 해결
  • 단점 : 운영체제의 설계가 복잡해지고 주소 변환을 위한 테이블을 사용하므로 기억장소를 낭비할 수 있다.
  • 다중 프로그래밍 목적

❗️ 동적 주소 변환 (DAT) 기법
가상기억장치에 저장된 프로그램을 실행하려면 가상가익정차의 주소를 주기억장치의 주소로 바꾸는 주소 변환 작업(Mapping)이 필요하다.
DAT는 인위적 연속성1을 제공한다.

  • 가상기억장치 구현 기법

페이징 • 가상기억장치에 보관되어 있는 프로그램과 주기억장치의 영역을 동일한 크기로 나눈 후 나눠진 프로그램(페이지)을 동일하게 나눠진 주기억장치의 영역(페이지 프레임)에 적재시켜 실행
  • 외부단편화X, 내부단편화O
  • 페이지 맵 테이블 필요
세그멘테이션 • 가상 기억장치에 보관되어 있는 프로그램을 다양한 크기의 논리적인 단위로 나눈 후 주기억장치에 적재시켜 실행시키는 기법
  • 프로그램을 배열이나 함수 등과 같은 논리적인 크기로 나눈 단위를 세그먼트라고 하며, 각 세그먼트는 고유한 이름과 크기를 갖고 있음
  • 내부단편화X, 외부단편화O
  • 블록 크기에 따른 설계

    • 블록(페이지)가 작을 경우
      • 관리할 블록의 갯수 증가
      • 페이지 맵 테이블(블록사상표)의 크기가 커진다. 즉 매핑속도가 늦어진다.
      • 페이지fault2, 교체가 자주 일어난다.
      • 1개의 블록이동시간 짧다.(주기억장치로 이동하는 시간이 줄어든다.)
      • 디스크(주기억장치)로부터 블록이동(접근 횟수)가 많아져 전체적인 입출력시간은 증가한다.(CPU 유휴시간이 길어진다.)
      • 필요한 내용만 적재할 수 있기 때문에 더 효율적인 Working Set이 가능하다. 즉, Locality(국부성)에 더 일치하여 효율이 높다.
      • 단편화가 감소한다.

주소 분리 이용

  • 가상주소 -(동적주소변환DAT) -> 실주소
  • 위와 같은 과정 : 페이지 맵핑 테이블, 세그먼트 맵핑 테이블
  • 논리주소 -> 물리주소
  • 프로세스 단위 -> 주기억장치

가상주소(프로그램,프로세스 크기) > 주기억장치 기억공간(실주소)
가능하다. 교체하면서 가능

DAT

페이지 매핑 과정
  1. 가상 주소에서 연속적이라고 주기억장치에서도 연속적일 필요가 없다. 

  2. CPU가 원하는 것이 주기억장치에 없을 경우 

댓글 쓰기