기어가더라도 제대로

[운영체제-김덕수 교수님] 가상 메모리 관리(6/6) - 다른 고려사항 본문

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

[운영체제-김덕수 교수님] 가상 메모리 관리(6/6) - 다른 고려사항 image[운영체제-김덕수 교수님] 가상 메모리 관리(6/6) - 다른 고려사항 image

  • 가상 메모리 시스템의 특성에 맞도록 프로그램을 재구성
  • 사용자가 가상 메모리 관리 기법(예, 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의 발전 경향
Comments