Operating System/O.S(Neso Academy, HPC Lab. KOREATECH)

HPC Lab) Virtual Memory Management

Tony Lim 2021. 5. 31. 13:50

가상 메모리 관리의 목적 = 가상 메모리 시스템 성능 최적화

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