- Swapping의 해결책
- 실제 사용되는 코드와 데이터 영역만을 Main Memroy로 로딩 되면 프로그램 수행가능
- paging, segmentation 등등이 있음
- MMU : VA → PA 바꿔준다
- page : Virtual address space를 같은 유닛으로 나눈 것
- frame : Physical address space를 같은 유닛으로 나눈 것
- mapping : page 와 frame이 연결되는
- page table : 어떤 page가 어떤 frame에 연결되어있는지 (mapping의 정보를 담고있음)
-
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에 접근
- page frame number(PFN) 담고있음
- present/absent(valid) : 쓸수 있고 없고 차이 (absent면 page fault발생)
- modify bit(dirty) : store옵션이 일어났는지
- reference bit : 접근된적이 있는지 여부
- protections bits : 권한 제한 (read, write..)
- frame으로 mapped되어있지 않은 page에 access할때
- disk에서 가져와야하기때문에 process → blocked
- 가장 안쓰인 page frame을 내쫓고 disk에서 가져온다