일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 가상 메모리
- Algorithm
- Linked List
- struct
- Swift
- IOS
- 인프런
- SwiftUI
- 동시성
- 데드락
- scrollview
- 프로세스 스케줄링
- @state
- 알고리즘
- 동기화
- 오브젝트
- 운영체제
- 상호배제
- deadlock
- COLOR
- 100 days of SwiftUI
- decode
- async
- Apple Developer Academy
- 앨런
- UserDefaults
- 비동기
- forEach
- Codable
- core data
Archives
- Today
- Total
기어가더라도 제대로
[운영체제-김덕수 교수님] 가상 메모리 관리(6/6) - 다른 고려사항 본문
긴 호흡으로 달려왔는데, 아직 남은 개념들이 있다.
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의 크기 증가
'CS > 운영체제' 카테고리의 다른 글
[운영체제-김덕수교수님] 파일 시스템 (2/5) (0) | 2022.08.17 |
---|---|
[운영체제-김덕수교수님] 디스크 시스템 (1/5) (0) | 2022.08.17 |
[운영체제-김덕수 교수님] 가상 메모리 관리(5/6) - 가변 할당에서 교체 전략 (0) | 2022.08.17 |
[운영체제-김덕수 교수님] 가상 메모리 관리(4/6) - 교체 전략 - 고정 할당(2/2) (0) | 2022.08.17 |
[운영체제-김덕수 교수님] 가상 메모리 관리(4/6) - 고정할당 시 교체 전략 (0) | 2022.08.15 |
Comments