-
💻 [OS 오퍼레이팅시스템] #15 | Virtual Memory IssueCS/OS 2022. 6. 13. 12:36
💻 Page Size
- page size 증가
offset 비트 수 증가 -> # page 비트 수 감소 -> page table entry 수 감소
page table 크기 감소
- 문제
내부 단편화발생(각 페이지 크기가 커서 낭비 발생)entry수 작아서 메모리 금방 다 씀
💻 Faster Translation
- TLB 사용
추가적인 메모리 접근을 줄일 수 있다.페이지 테이블을 위한 캐시
- TLB의 문제
context switch 할 때, 각 프로세스마다 가상 주소 다른데 같은 TLB사용하면 의미 X- Sol1) Flush
context switch할 때마다 TLB 초기화 (valid bits=0)단점 : 초기 TLB 미스 많고, 모든 switch마다 해줘야해서 high cost
- Sol2) ASID(Address space identifier)
주소공간식별자. PID처럼 생각.각 프로세스마다 TLB정보 저장 가능
💻 Smaller Table
- page table size 줄이기
메모리 낭비 줄이기 위해서.[solution] : 하이브리드 기법, 계층적 페이징, 역 페이지 테이블
- Sol1) Combined Segmentation and Paging
프로그램을 세그먼트로 조각화하고, 각 세그먼트를 고정된 크기의 페이지로 쪼갠다.세그먼트 테이블 : Base(페이지 테이블 시작 주소) + Bound(# page table) + control bits
페이지 테이블 엔트리는 기존과 동일 요소
장점 단점 페이지 테이블 메모리 overhead down
메모리 할당 간단
외부 단편화 X내부 단편화 일부 발생 가능성
지원 안될 수도 있다. (MMU Support, H/W)- Sol2) Hierarchical Paging
페이지 테이블을 작은 여러개의 페이지 테이블 조각으로 나눈다실제 사용되는 entry에 대한 page table만 유지하는게 핵심
페이지 자체도 페이징된다.
장점 단점 메모리 낭비 down
페이지 테이블이 physical 메모리에서 연속적일 필요 X추가적인 메모리 load가 요구됨 - Sol3) Inverted Page Tables
# PTE = # PFN같으니까 frame번호로 인덱싱프로세스 별 페이지 테이블이 아니고 무조건 시스템 당 페이지 테이블 하나.
entry에는 # page와 pid 포함
장점 단점 각 페이지 테이블에 저장하는데 필요한 메모리 감소
(space good)search하는데 시간 증가(reference 할 때마다)
hash table 사용 cost
(time bad)pid로 search하고 나온 인덱스(프레임번호)와 d로 절대 주소를 찾는다.
'CS > OS' 카테고리의 다른 글