상세 컨텐츠

본문 제목

운영체제 - 가상 메모리

공부

by myeongjaechoi 2024. 5. 8. 10:25

본문

가상 메모리(virtual memory)

  • 실행 중인 각 프로세스의 기억자원으로 사용할 수 있는 실제 물리 메모리(RAM)와 하드 디스크의 공간
  • 프로세스는 실제 물리 메모리의 메모리 주소가 아닌 가상 메모리 주소 사용

Swap memory

  • 실제 물리 메모리(RAM)의 용량이 부족할 때 사용되는 하드 디스크 상의 virtual memory의 일부분
  • Swapping할 때 사용되는 하드 디스크 상의 virtual memory의 일부분
  • 하드 디스크에 존재 but, 메모리의 일부로 MMU에 의해 관리
  • 가상 메모리의 크기 : 물리 메모리 + swap 영역

Swapping

  • swap out
    • 물리 메모리(RAM)의 용량이 부족할 때 프로세스를 메모리에서 하드 디스크로 일시적으로 이동
  • swap in
    • 물리 메모리(RAM)의 용량이 충분해지면 실행을 계속하기 위해 하드 디스크에 있는 프로세스를 다시 메모리로 이동

가상 메모리 분할 방식

  • Paging
    • 가상 메모리 : 같은 크기의 page 단위로 분할(고정 분할)됨
    • 물리 메모리 : 같은 크기의 frame 단위로 분할(고정 분할)됨 + 비연속 할당
    • 단점 : 내부 단편화
  • Segmentation
    • 가상 메모리 : 가변 크기의 segment 단위로 분할(가변 분할)됨
    • 물리 메모리 : 가변 크기의 segment 단위로 분할(가변 분할)됨 + 비연속 할당
    • Segment : 프로세스 내의 서로 관련있는 영역을 나타내는 논리적인 단위 

Paging

  • Page table
    • 가상 메모리의 page와 물리 메모리의 frame의 대응관계를 나타내는 mapping table
    • 각 프로세스는 독립된 가상 메모리 공간을 가지므로 각 프로세스는 하나의 page table을 가짐
    • page 번호 X, frame 번호만 존재
    • CPU에 의해 프로세스가 실행 중 일 때 MMU은 page table을 통해 가상 주소를 물리 주소로 변환

Paging 의 주소 변환

  • 가상 주소 표현
    • VA = <P, D>
    • P : page 번호
    • D : page offset(해당 page의 처음 위치에서 해당 주소까지의 거리)
    • m bit CPU의 경우
      • P = m-n bit
      • D = n bit
  • 물리 주소 표현
    • PA = <F, D>
    • F : frame 번호
    • D : frame offset
    • m bit CPU의 경우
      • F = m-n bit
      • D = n bit
  • 가상 주소를 물리 주소로 변환 : VA =<P,D> -> PA = <F,D>
    • page table을 통해 P에 대응하는 F로 변환하고 page의 크기와 frame의 크기가 같기 때문에 D는 그대로 사용

Paging의 문제점

  • 가상 메모리는 page 단위로 분할되므로 page table의 크기가 큼
  • Page table 수 또는 page table의 크기가 증가하면 물리 메모리의 OS 영역이 증가
  • 물리 메모리가 작으면 page table는 swap 영역으로 옮김

Page table의 크기를 줄이기 위한 방법

  • 연관 매핑
  • 집합-연관 매핑
  • 역 매핑
  • 직접 매핑

직접 매핑

  • 물리 메모리가 충분할 때 사용
  • 각 프로세스의 page table의 전체는 물리 메모리의 OS 영역에 있음
  • 장점 - 주소 변환이 빠름
  • 단점 - 물리 메모리 낭비

연관 매핑

  • 물리 메모리가 충분하지 않을 때 사용
  • 각 프로세스의 page table의 전체는 저장 장치의 swap 영역에 있음
  • 각 프로세스의 page table의 일부는 물리 메모리의 OS 영역에 있음
  • 장점 - 직접 매핑보다 물리 메모리 절약
  • 단점 - 직접 매핑보다 주소 변환 느림
  • 물리 메모리의 OS 영역에 있는 각 프로세의 page table의 일부는 TLB 또는 연관 레지스터라고 함
  • TLB에는 page 번호도 포함
  • 주소 변환(가상 주소->물리 주소)
    • 원하는 page 번호가 TLB에 존재 - TLB hit -> TLB를 이용하여 주소 변환
    • 원하는 page 번호가 TLB에 존재X - TLB miss -> swap 영역에 있는 page table를 확인하여 주소 변환

집합 - 연관 매핑

  • 물리 메모리가 충분하지 않을 때 사용
  • 각 프로세스의 page table의 전체를 같은 크기의 여러 directory(set)을 나눔
    • 각 프로세스의 page table의 전체는 저장 장치의 swap 영역에 있음
    • 각 프로세스의 page table의 일부는 물리 메모리의 OS 영역에 있음
  • directory table
    • directory 번호 순서대로 나열되어 있으며 다음과 같은 directory 위치 정보를 가짐
      • directory가 물리 메모리에 있는 경우 - directory의 물리 메모리 상 시작주소
      • directory가 물리 메모리에 없는 경우 - Invalid
  • 장점 - 연관 매핑보다 주소 변환 빠름

역 매핑

  • frame 번호 순으로 작성되며 각 PTE(page table element)는 PID(process ID)와 page 번호로 구성
  • 장점 - 프로세스 수와 상관없이 1개의 inverted page table만 가짐 - 물리 메모리 절약
  • 단점 - PID와 page 번호를 모두 검색하므로 주소 변환 느림
구분 Page table의 위치 Page table의 물리 메모리 사용 주소 변환 속도
직접 매핑 물리 메모리 빠름
연관 매핑 물리 메모리, swap 영역 작음 느림
집합 - 연관 매핑 물리 메모리, swap 영역 작음 느림(연관 매핑보다 빠름)
역 매핑 물리 메모리 작음 느림

 

'공부' 카테고리의 다른 글

운영체제 - 가상 메모리 관리  (0) 2024.05.21
병렬프로그래밍 - 논블록킹  (0) 2024.05.13
인공지능 - 불확실성  (0) 2024.05.07
운영체제 - 물리 메모리 관리  (0) 2024.05.01
운영체제 - 프로세스  (0) 2024.04.21

관련글 더보기