[OS] 4-1. 가상 메모리 관리

공부 스파이럴·2024년 3월 20일
0

운영체제

목록 보기
21/27

개요

  • 개념 : 주기억장치의 이용 가능한 기억 공간보다 훨씬 큰 주소 지정을 할 수 있도록 한 개념
  • 가상 메모리는 하나의 프로세스 전체가 한 번에 주기억 장치 내에 존재하지 않고 일부만 있어도 수행하게 하는 기법
  • 가상 메모리를 사용하면 사용자는 실제 주소 공간의 크기에 구애 받지 않고 보다 큰 가상 주소 공간상에서 프로그래밍을 할 수 있을 뿐만 아니라, 주기억장치보다 크기가 큰 프로세스를 수행시킬 수 있음

동적 주소 변환(dynamic address translation)

  • 주소 사상 기법: 가상 주소 -> 실제 주소
  • 동적 주소 변환(DAT : Dynamic Address Translation) 기법
    • 프로세스가 수행될 때 가상 주소를 실제 주소로 변환하는 대표적인 메커니즘

블록 사상(block mapping)

  • 블록 사상 시스템에서의 가상 주소 양식
  • 블록: 가상 메모리에 대한 분할 단위
    • 블록의 크기, 같은 크기(page) or 다른 크기(segment) 등

  • DAT에서는 어떤 가상기억 주소에 대한 주기억장치 내의 존재 여부와 존재할 경우에 주기억장치의 어디에 위치하는가를 나타내기 위한 대응 관계 테이블을 유지, 관리
  • 항목별로 사상시키는 것은 비효율적이기 때문에, 사상 항목을 블록이라고 하는 단위로 묶음으로써 여러 가상 메모리의 블록이 위치하는 장소만을 시스템이 추적하도록 함
  • 블록 : 가상 메모리에 대한 분할 단위를 의미
  • 블록 크기가 크면 클수록 사상 정보를 기억하는 데 필요한 주 기억장치의 양은 더욱 작아짐
    -> 기억 장치의 오버헤드는 낮아지지만, 대형 블록은 보조기억장치와 주기억장치 간의 데이터 전송에 많은 시간을 필요하며, 많은 실기억 공간의 소모와 주기억장치를 공유하는 프로세스 수에도 제한을 받게 됨
  • 블록을 같은 크기로 구성할 때 이를 페이지(page)라 하며, 페이지와 관련된 가상 메모리 구성페이징(paging)이라 함
  • 블록을 서로 다른 크기로 할 때 그것을 세그먼트(segment)라고 하며, 그와 관련된 가상 메모리 구성세그멘테이션(segmentation)이라 함
  • 어떤 시스템에서는 여러 크기의 세그먼트를 다시 일정 크기의 페이지로 재구성함으로써 위의 두 가지 방법을 결합하여 사용

블럭 사상(mapping)을 통한 가상 주소변환

0개의 댓글