가상 메모리 관리의 목적 = 가상 메모리 시스템 성능 최적화
cost model
Page fault 발생을 최소화 할 수 있게 전략을 설계해야 함. 즉 Context switch 및 Kernel 개입을 최소화 해야한다.
Page fault rate = F(w) = # of page faults during w / |w| == 그냥 참조한 페이지들중에 pagefault가 일어난 비율이다.
Hardware Components
Address translation device (주소 사상 장치) = TLB , Cache memories , 하드웨어적으로 하면 병렬로 search 할 수 있어성능이 대폭 향상된다. 다만 비싸서 큰 table 을 쓰기 힘들다.
Bit vectors
Page 사용상황에 대한 정보를 기록하는 비트들 , Reference bits , Update bits(dirty , modified ,write)
Update bit가 1이라면 해당 page에 대한 write back to swap device가 필요하다.
다양한 최적화 기법
Allocation Strategies
각 프로세스에게 메모리를 얼마 만큼 줄 것인가? 적으면 page fault 발생 , 크면 메모리 낭비 발생
Fixed allocation = 프로세스의 실행 동안 고정된 크기의 메모리 할당
Variable allocation = 프로세스의 실행 동안 할당하는 메모리의 크기가 유동적
Fetch Strategies
특정 page를 메모리에 언제 적재할 것 인가?
Demand fetch (demand paging) = 프로세스가 참조하는 페이지들만 적재 , page fault overhead
Anticipatory fetch (pre-paging) = 참조될 가능이 높은 page 예측 , page fault overhead가 없음 하지만 Prediction overhead (Kernel 의 개입), Hit ratio에 민감 == 예상이 얼마나 잘들어 맞는가?
Replacement Strategies
새로운 Page 를 어떤 page와 교체 할 것인가?
FIFO , LRU(제일 많이 쓰임)
Cleaning Strategies
변경 된 page를 언제 write-back 할 것인가?
변경된 내용을 swap device에 반영
Demand cleaning = 해당 page가 메모리에서 내려올 때 Write-back
Anticipatory cleaning (pre-cleaning) = 더이상 변경될 가느성이 없다고 판단 할 때 , 미리 write back
Load Control Strategies
시스템의 muti programming degree 조절
적정 수준의 multi programming degree를 유지해야함 = 저부하 상태 (시스템 자원낭비) , 고부하 상태 ( Thrashing 현상 == pagefault가 많이 발생하는것)
Working set algorithm
Windows size == process 의 page frame 갯수를 변동적으로 가져간다. 이것을 조절하는 여러가지 알고리즘이 존재한다.
Large Page Size = Low overhead(small page table) , 내부 단편화 증가 , I/O 시간 감소 , locality 저하(필요없는 부분까지 올라와서 오랫동안 참조하지 않을수도 있다.) , Page fault 감소
Small Page Size = High overhead(large page table) , 내부 단편화 감소 , I/O 시간 증가 , Locality 향상 , Page fault 증가
'Operating System > O.S(Neso Academy, HPC Lab. KOREATECH)' 카테고리의 다른 글
HPC Lab) 입출력 시스템 & 디스크 관리 (0) | 2021.06.04 |
---|---|
HPC Lab) 파일 시스템 (0) | 2021.06.02 |
HPC Lab) Virtual Memory (0) | 2021.05.22 |
HPC Lab) Memory Management (0) | 2021.05.20 |
HPC Lab) Deadlock (0) | 2021.05.19 |