가상 메모리와 가상주소

JinJinJara·2023년 9월 7일
0

TIL

목록 보기
4/19

가상 메모리 (Virtual Memory, VM)

메모리를 효율적이고 작은 에러를 갖기 위한 메모리 관리 기법의 하나

  • 메인 메모리의 추상화

  • 프로세스 하나당 크고 통합된 사적 주소공간, 가상주소 공간 제공

  • 디스크에 저장된 N개의 바이트 크기의 셀 배열로 구성

  • 기능제공

    1) 메인메모리 내 활성화된 영역만 유지해서, 필요할 때만 데이터를 디스크에서 메모리로 전송한다. 이로써 보다 효율적인 메모리 사용이 가능하다.
    2) 프로세스에 통일된 주소공간을 제공해 메모리 관리를 단순화함
    3) 프로세스의 주소공간을 다른 프로세스에 의한 손상으로부터 보호

  • 필요한 이유
    : 프로세스 간에 메인메모리 공유는 어렵기 때문

    + 프로세스는 CPU와 메인메모리를 다른 프로세스와 공유
    • 근거1. 프로세스 실행에 실패할 수 있다

      • CPU 요구가 증가하면, 프로세스는 느려진다. 동시에 많은 프로세스들이 많은 메모리를 요구하면 느려진 프로세스들 중 일부는 실행 불가할 수 있다.
    • 근거2. 메모리는 손실에 취약

      • 다른 프로세스가 사용하고 있는 메모리에 쓰기 접근할 때, 프로그램의 논리와 무관하게 해당 프로세스는 실패!

가상주소 (Virtual Address, VA)

+ 초기 PC) 물리 주소 방식 : CPU가 물리 주소를 통해 메모리에 접근하는 방식

  • 현대 프로세스 : 가상주소방식 사용
  1. CPU : 가상주소를 생성
  2. MMU(메모리 관리유닛) : 물리주소로 변환 = 주소 번역 (운영체제 가 관리하는 참조 테이블 사용) / VPN을 사용해 적합한 PTE를 선택
  3. 변환된 물리주소(physical address)로 메인 메모리 접근
  • 가상주소 공간 : CPU는 N=2ⁿ 주소공간에서 가상의 주소를 생성 (= n-비트 주소공간 )

    • ex) VA 비트 수인 n이 4인 경우, 주소공간 크기는 16, VA 의 만약 가장 큰 가능한 가상 주소는 15(=2⁴-1)이다.
  • 가상주소 구성

    • VPO : P비트 가상페이지 offset

    • VPN : (n-p)비트 가상 페이지 번호


가상페이지

가상메모리를 규정된 사이즈로 분할된 블록들

  • 가상페이지 집합
    1. Unallocated : VM 시스테멩 의해 할당 안된 페이지들 / 디스크상 공간 차지 X
    2. Cashed : 물리메모리에 캐시된 할당된 페이지들
    3. Uncashed : 물리메모리에 캐시되지 않은 할당된 페이지들

페이지 테이블 (Page Table Entry, PTE)

  • 가상페이지를 물리페이지로 매핑

  • 운영체제에서 관장

  • 하나의 프로세스에 하나의 페이지 테이블

  • 구성

    • 유효비트 : 가상페이지가 현재 DRAM에 캐시되어 있는지 나타냄

    • n개의 주소 필드 : 가상페이지가 캐시되어, DRAM 물리페이지의 번호 (PPN) 나타냄

      • if) Null : 가상페이지 할당 안되었으므로, 가상페이지의 시작부분 가리킴

물리주소

VPO(가상주소 - 가상페이지 offset)와
PPN (페이지테이블 - 주소필드의 물리페이지 번호)를 연결한 것


📌plus : 메인메모리의 주소

메인메모리는 연속적인 바이트 크기 셀의 배열로 구성되며, 각 바이트는 고유의 물리 주소를 갖고 있다

0개의 댓글