CS/운영체제
[운영체제-김덕수 교수님] 가상 메모리 관리(6/6) - 다른 고려사항
Damagucci-juice
2022. 8. 17. 17:22
긴 호흡으로 달려왔는데, 아직 남은 개념들이 있다.
page size 는 보통 어떻게 정할까?
또 프로그램의 구조를 어떻게 짜는게 메모리적으로 효율적일까?
새로운 개념인 TLB reach 라는 개념에 대해서 알아 보자.
목차.
1. page size
2. program restructuring
3. TLB reach
1. Page Size
- 시스템 특성에 따라 다름
- No best answer!
- 점점 커지는 경향
- 일반적인 page size
- 2^7^(128) bytes ~ 2^22^(4M) bytes
Small page size | Large page size |
---|---|
- Large page table / # of PF - high overhead(kernel) | - Small page table / # of PF - Low overhead(kernel) |
내부 단편화 감소 | 내부 단편화 증가 |
I/O 시간 증가 | I/O 시간 감소 |
Locality 향상 | Locality 저하 |
Page fault 증가 | Page fault 감소 |
2. Program Restructuring
- 가상 메모리 시스템의 특성에 맞도록 프로그램을 재구성
- 사용자가 가상 메모리 관리 기법(예, paging system) 에 대해 이해하고 있다면,
프로그램의 구조를 변경하여 성능을 높일 수 있음- 빨간 숫자를 따라가다보면, page # 을 넘나드는 것을 볼 수 있음, 이는 프로그램적으로 비효율적이다.
3. TLB Reach
- TLB? Translation Lookaside Buffer
- 최근에 일어난 가상 메모리 주소와 물리 주소의 변환 테이블을 저장하는 일종의 주소 변환 캐시
- TLB 를 통해 접근할 수 있는 메모리의 양
- (The number of entries) * (the page size)
- TLB의 hit ratio 를 높이려면,
- TLB의 크기 증가
- Expensive
- Page 크기 증가 or 다양한 page size 지원
- OS 의 지원이 필요
- 최근 OS의 발전 경향
- OS 의 지원이 필요
- TLB의 크기 증가