jieuni.log
로그인
jieuni.log
로그인
[OS] Paging and Page Tables
윰지
·
2020년 6월 10일
팔로우
0
OS
0
Paging
Page Tables
PTE
Page Table Structure
Translation Look-aside Buffer(TLB)
OS_운영체제
목록 보기
10/13
Paging
process의 virtual address space를 일정 크기 page로 쪼갠다. 그리고 physical memory를 page와 같은 크기로 즉, frame으로 쪼갠다. 각각의 page를 physical frame으로 mapping한다.
internal fragmentation이 발생할 수 있다. frame size가 클수록 발생할 가능성이 크다.
Page Tables
자신의 virtual address space가 physical memory로 page table을 통해 mapping 되어 있다.
process들은 자신의 고유한 page table이 있다. Page-table base register(PTBR)난 page table의 base address를 가리킨다. thread들은 address space를 공유하므로 page table을 공유한다.
page table은 page table entry(PTE)로 구성되어 있고 각각의 PTE는 해당하는 entry가 커버하는 virtual address나 physical memory의 상태를 기록하는 형태로 구성되어 있다.
Managed by OS, accessed by MMU
VPN(Virtual Page Number), PPN(Physical Page Number)=PFN(Physical Frame Number)
Address Translation
PTE
Page Table Structure
Linear Page Table
Hierarchical Page Tables
forward-mapped page table : 전체 page table을 작은 page 크기로 쪼갠 다음 그 중에서 자신이 사용하고 있는 부분만 mapping하여 사용하고 그렇지 않은 부분은 비워둔다.
1개의 VPN을 translate하기 위해 각 level 당 1번의 memory access가 필요하다.
page table을 조각조각 쪼갠다음 각각에 대해서 사용하고 있는 부분을 summary한 부분을 page table에 놓고 안 쓰는 부분은 page table에 넣지 않는다.
Example
장점 : no external fragmentation
단점 :
Hashed Page Table
VPN을 hash function로 돌린 후 PFN으로 바꾼다.
Inverted Page Tables
PFN에서 어떤 process의 VPN으로 mapping 되는지 역방향으로 하는 방식
Translation Look-aside Buffer(TLB)
Hardware로 구현되어 있어 address translation을 가속시킨다. 최근에 찾았던 거 적어놓는다. MMU에 구현되어 있다.
TLB entries : <page #, frame #>
VA to PA 할 때 TLB에서 먼저 찾아보고 없으면 page table 전체 다 찾아본다.
Context switch를 통해 process가 바뀌면 TLB는 flushed되어야 한다. 그렇지 않으면 잘못된 mapping이 있을 것이다.
TLB에 address-space identifiers(ASIDs)를 붙여서 context switch할 때 TLB를 flush하지 않아도 되는 경우가 있다.
윰지
팔로우
이전 포스트
[OS] Address Spaces
다음 포스트
[OS] Demanding Paging
0개의 댓글
댓글 작성
관련 채용 정보
씨제이올리브영(CJ올리브영)
백엔드 개발자(리테일 서비스)
헬스&뷰티 스토어 올리브영에서 백엔드 개발자로 함께 하세요! O2O 플랫폼 혁신과 다양한 웹서비스 개발을 통해 성장하는 기회를 제공합니다.
넷마블
사내 시스템 개발(e-HR) 담당자
넷마블에서 e-HR 시스템을 개발하며 글로벌 게임 사업 확장에 기여하세요! Java, Spring 등 기술을 활용한 HR 시스템 운영과 개선을 주도할 수 있는 기회를 제공합니다.
화해(버드뷰)
Backend Developer
화해는 글로벌 서비스를 위한 백엔드 개발을 통해 RESTful API와 MySQL 데이터베이스 설계를 맡아 전문성을 키울 수 있는 환경을 제공합니다. 하이브리드 근무제와 자기계발비 지원 등으로 개발자에게 최적화된 업무 환경을 마련하고 있습니다.