Virtual Memory (기억장치)
- Non-continuous allocation
ㆍ사용자 프로그램을 block으로 분할하여 적재/실행
- Paging / Segmentation system
가상 메모리 관리의 목적
- 가상 메모리 시스템 성능 최적화
ㆍPage fault frequency (발생 빈도)
ㆍPage fault rate (발생률) : Page fault rate를 최소화 할 수 있도록 전략들을 설계해야 함
-> Context switch 및 Kernel 개입을 최소화
-> 시스템 성능 향상
Cost Model
- Page reference string (d)
ㆍ프로세스의 수행 중, 참조한 페이지 번호 순서
ㆍω = r1r2 ... rk ... rT (프로세스가 실행되면서 참조한 페이지의 수)
- ri = 페이지 번호 (i = 0 ~ N-1)
- N : 프로세스의 페이지 수 (0 ~ N-1)
- Page fault rate = F(ω)
F(ω) = (ω 중에 일어난 Page fault 수) / |ω| (| | 은 절댓값이 아니라 길이/갯수를 뜻한다)
※ Segment 의 경우에도 위와 동일하다.
HW Component
Address Translation device (주소 사상 장치)
- 주소 mapping을 효율적으로 수행하기 위해 사용
ㆍTLB (associated memories), Dedicated page-table register, Cache memories 등
Bit Vectors
- Page 사용 상황에 대한 정보를 기록하는 비트들
- Reference Bits (used bit)
ㆍ참조 비트
- Update bits (modified bits, write bits, dirty bits)
ㆍ갱신 비트
ㆍdirty bits는 OS 뿐 아니라 많은 곳에서도 쓰이고 있다. 현재 데이터가 오염되었는지 아닌지를 점검하는 비트이다.
/* magic과 같은 역할 수행하나? */
Reference bit vector
- 메모리에 적재된 각각의 page가 최근에 참조 되었는지를 표시
- 운영
1) 프로세스에 의해 참도죄면 해당 page의 Ref. bit를 1로 설정
2) 주기적으로 모든 reference bit를 0으로 초기화
- Reference bit를 확인함으로서 최근에 참조된 page들을 확인 가능
-> 지역성;Locality을 활용할 수 있게 된다.
Update bit vector
- Page가 메모리에 적재된 후, 프로세스에 의해 수정되었는지를 표시
- Reference bit와는 다르게 주기적으로 초기화하지 않는다.
- Update bit = 1 일 때, 해당 page 의 Main memory 상 내용 != Swap device의 내용이라면 해당 page에 대한 write-back (to swap device)가 필요하다.
왜 사용하는가?
->메모리에 적재된 page에 대해 프로세스가 수정을 가했다면, page가 메모리에서 내려올 때, swap device에 있는 내용도 똑같이 수정해야하기 때문에 update bit를 사용한다.
'Pintos Project > 이론 공부' 카테고리의 다른 글
[PintOS, Project 3] Virtual Memory Management - Replacement Strategies for Fixed Allocation (0) | 2021.02.18 |
---|---|
[PintOS, Project 3] Virtual Memory Management - SW Components (0) | 2021.02.18 |
[PintOS, Project3] Virtual Memory - Segmentation System (1) | 2021.02.18 |
[PintOS, Project3] Virtual Memory - Paging System (0) | 2021.02.18 |
Lecture 5 : Process Scheduling (0) | 2021.01.30 |
댓글