Skip to content

Latest commit

 

History

History
71 lines (43 loc) · 2.75 KB

Paging.md

File metadata and controls

71 lines (43 loc) · 2.75 KB

Paging(Virtual Memory)




1) Virtual Memroy

  • Swapping의 해결책
  • 실제 사용되는 코드와 데이터 영역만을 Main Memroy로 로딩 되면 프로그램 수행가능
  • paging, segmentation 등등이 있음




2) Paging



  • CPU



  • paging

  • MMU : VA → PA 바꿔준다
  • page : Virtual address space를 같은 유닛으로 나눈 것
  • frame : Physical address space를 같은 유닛으로 나눈 것
  • mapping : page 와 frame이 연결되는
  • page table : 어떤 page가 어떤 frame에 연결되어있는지 (mapping의 정보를 담고있음)




1. MMU에서 주소변환


  • VA를 16bits로 나타냈을 때 상위 4bits(VPN)에 해당하는 index를 PT에서 찾는다

  • 찾은 PTE의 page frame번호(PFN)를 찾는다

  • page frame 번호 4bits(PFN) + VA의 하위 12bits(offset) = PA

    → 32bits일 경우에는 VA의 20bits로 page번호로 계산

  • PT(MM에 있음)참고할때 1번, PA로 가서 메모리 참고할때 1번 → 총 두번 main memory에 접근




2. PTE(page table entry)

  • page frame number(PFN) 담고있음
  • present/absent(valid) : 쓸수 있고 없고 차이 (absent면 page fault발생)
  • modify bit(dirty) : store옵션이 일어났는지
  • reference bit : 접근된적이 있는지 여부
  • protections bits : 권한 제한 (read, write..)




3. Page Fault

  • frame으로 mapped되어있지 않은 page에 access할때
  • disk에서 가져와야하기때문에 process → blocked
  • 가장 안쓰인 page frame을 내쫓고 disk에서 가져온다