동캄의 코딩도장
운영체제 [가상메모리 관리 - 개요] 본문
가상메모리 관리
가상메모리 관리의 목적
- 가상 메모리 시스템 성능 최적화 (cost model)
- Page fault rate를 최소화 하도록 설계
Page reference string(d)
- 프로세스의 수행 중 참조한 페이지 번호 순서
Page fault rate = F(w)
F(w) = 페이지폴트수/전체참조수(w)
Hardware Components
Address translation device (주소 사상 장치)
- 주소 사상을 효율적으로 수행하기 위해 사용
Bit Vectors
- Page 사용 상황에 대한 정보를 기록하는 비트들
- Reference bits (used bit)
- Update bits (dirty bits, modified bits)
Reference bit vector
- 메모리에 적재된 각각의 page가 최근에 참조 되었는지를 표시
- 주기적으로 모든 reference bit를 0으로 초기화
Update bit vector
- page가 메모리에 적재된 후, 프로세스에 의해 수정 되었는지를 표시
- 주기적 초기화 없음
- Update bit =1 이면, memory와 swap device의 내용 동일 x
가상 메모리 성능 향상 기법
Allocation Strategies
각 프로세스에게 메모리를 얼마 만큼 줄 것인가?
- Fixed allocation
- Variable allocation
고려사항
- 프로세스 실행에 필요한 메모리 양을 예측해야 함
- 너무 큰 메모리 할당--> 메모리 낭비
- 너무 작은 메모리 할당--> page fault rate 증가, 시스템 성능 저하
Fetch Strategies
특정 page를 메모리에 언제 적재할 것인가?
Demand fetch (demand paging)
- 프로세스가 참조하는 페이지들만 적재
- page fault overhead
Aniticipatory fetch (pre-paging)
- 참조될 가능이 높은 page 예측
- 가까운 미래에 참조될 가능성이 높은 page를 미리 적재
- 예측 성공 시, page fault overhead가 없음
- prediction overhead, Hit ratio에 민감함
실제 대부분의 시스템은 Demand fetch 기법 사용
- 일반적으로 준수한 성능
- Anticipatory fetch는 잘못된 예측 시 자원 낭비가 큼
Placement Strategies
Page/segment를 어디에 적재할 것인가?
- page system에서는 불필요
- segmentation system은 배치기법 이용
Replacement Strategies
새로운 page를 어떤 page와 교체 할 것인가? (빈 page frame이 없는경우)
- fixed allocation을 위한 기법
- variable allocation을 위한 기법
Cleanning Strategies
변경 된 page를 언제 write-back 할 것 인가?
- 변경된 내용을 swap device에 반용
- Demand cleanning - 해당 page가 메모리에서 내려올 때 write-back
- Aniticipatory cleanning - 더이상 변경될 가능성이 없다고 판단 할 때, 미리 write-back
실제 대부분의 시스템은 Demand cleanning 기법 사용
- 일반적으로 준수한 성능
- Aniticipatory cleanning는 잘못된 예측 시 자원 낭비가 큼
Load Control Strategies
시스템의 multi-programming degree 조절
- Allocation strategies와 연계 됨
적정 수준의 multi-programming degree를 유지 해야 함
- plateae(고원) 여역으로 유지
- if 저부하 상태 --> 시스템 자원 낭비, 성능 저하
- if 고부하 상태 --> 자원에 대한 경쟁 심화, 성능 저하, thrashing 현상(과도한 page fault) 발생
'CS > 운영체제' 카테고리의 다른 글
운영체제 [가상메모리 관리 - 가변 메모리 할당 시 교체기법] (0) | 2022.01.20 |
---|---|
운영체제 [가상메모리 관리 - 고정 메모리 할당 시 교체기법] (0) | 2022.01.20 |
운영체제 [가상 메모리- hybrid system] (0) | 2022.01.20 |
운영체제 [가상메모리 -세그멘테이션] (0) | 2022.01.20 |
운영체제 [가상메모리 - 페이징] (0) | 2022.01.19 |