[OS] Lecture 9. Virtual Memory (1_5) - kibitzing/EnGrow GitHub Wiki

유튜브 링크


진구

vm = b + d

  • block은 프로세스 안에서의 쪼개진 것들이고 블럭 넘버는 그 순서임
  • 블럭이 메모리에 올라와 있다면 그 블럭의 리얼 주소를 찾아간 후 상대 값 d를 더함
  • 블럭이 메모리에 없고 스왑메모리에 있다면 일단 메모리에 올리고 리얼 주소를 적어둔다
  • 그리고 b+d
  • address mapper 는 os가 실행해주는건가 오버헤드는 없나?

세영

Virtual Storage: 여러 개의 블록으로 메모리를 나눠서 필요한 블록들만 메모리에 올리는 것

  • Paging, Segmentation, Hybrid

Non-continuous allocation address mapping

  • Virtual address == relative address
    • 연속된 메모리 할당을 가정한 주소
  • Real address == physical address
    • 실제 메모리에 적재된 주소
  • Block mapping 기법
    1. 프로세스의 BMT (Block map table)에 접근
    2. BMT에서 block에 대한 항목을 찾음
    3. Residence bit 확인
      1. 0인 경우 swap memory에서 블록을 메모리로 가져옴 → bit update
      2. 1인 경우 Physical address 값 확인
    4. 실제 주소 획득 (Physical address + offset)