본문 바로가기

OS38

Pintos project3_Memory management 가상 메모리 시스템을 지원하려면 가상페이지와 물리적 프레임을 효과적으로 관리해야 한다. 즉 어떤 메모리 영역이 어떠한 목적으로 누구에 의해 사용되고 있는지 등을 추적해야 한다. 핀토스에서 supplemental page table(spt)을 처리한 후 physical frame을 처리할 것이다. 페이지 구조체 /*include/vm/vm.h*/ struct page { const struct page_operations *operations; void *va; /* Address in terms of user space */ struct frame *frame; /* Back reference for frame */ /* Your implementation */ /* Per-type data are bi.. 2022. 1. 19.
10-5. VM. Management 시 기타 고려해야 할 사항들 Page size 페이징 시스템에서 메모리는 페이지단위로 나누어져 있다고했다. 그렇다면 페이지의 크기는 큰게 무조건 좋을까? 공학에서 무조건 좋기만 한 답은 없는것 같다. 페이지 사이즈 역시 시스템 특성에 따라 다르다. 적당한게 좋다 :) HW가 발전하는 경향에 따라 페이지 사이즈는 점점 커지는 경향이다. 일반적인 page sizd는 이렇다고 한다. 페이지 크기가 작다면 페이지 수가 많아져 커널이 관리하는 페이지가 많아 상대적으로 High overhead를 가질것이고 페이지들을 불러오는데도 시간이 증가하므로 I/O시간이 증가할 것이다. 또한 잦은 페이지 교체로 page fault가 증가한다. 하지만 페이지 크기가 작은만큼 내부단편화가 감소할 것이고 locality는 향상될 것이다. 반면 페이지 크기가 크.. 2022. 1. 12.
10-4. VM. Management_Replacement Strategies_variable allocation 할당하는 페이지프레임의 수가 유동적인 variable allocation 일때 교체 기법에 대해 알아보자 Working Set algorithm working set 최근 일정시간(Δ) 동안 참조된 page들의 집합을 의미하며 시간에 따라 변한다. 최근 참조한 페이지를 보는 방식이므로 Locality에 기반을 두었다고 볼 수 있다. Working set을 메모리에 항상 유지함에 따라 page fault 는 감소하고 시스템 성능향상으로 이어진다. Window size(Δ)는 고정이며 이 값이 성능을 결정짓는 중요한 요소가 된다. 성능이 좋다고 말할 수 있을까? 이를 위해서는 page fault 수 외에 다른 지표(페이지 폴드시 드는 비용, 페이지 프레임 유지비용)도 함께 봐야 한다. 특성 적재 되는 pag.. 2022. 1. 12.
10-3. VM. Management_Replacement Strategies_fixed allocation 가상 메모리의 성능향상을 위한 관리 기법중 SW components 에서 Replacement strategies(교체 기법)에 대해 다루어 본다. Fixed allocation을 위한 교체기법 • MIN(OPT, B0) algorithm • Random algorithm • FIFO(First In First Out) algorithm • LRU(Least Recently Used) algorithm • LFU(Least Frequently Used) algorithm • NUR(Not Used Recently) algorithm • Clock algorithm • Second chance algorithm Variable allocation 을 위한 교체기법 • VMIN(Variable MIN) al.. 2022. 1. 12.
10-2. Virtual Memory Management_SW components 가상 메모리의 성능 향상을 위한 sw측면의 관리 기법들을 살펴보자 Allocation stratagies 메모리를 얼마만큼 할당할지에 대한 전략으로 Fixed allocation(고정 할당) Variable allocation(가변 할당) 이 있다. 고정 할당은 프로세스의 실행동안 고정된 크기의 메모리 할당을 말하며 가변할당은 프로세스의 실행동안 할당하는 메모리의 크기가 유동적인것을 말한다. 너무큰 메모리를 할당하면 메모리가 낭비되고, 너무 적은 메모리를 할당하면 Page fault rate가 증가해 시스템 성능 저하를 일으키기 때문에 적절한 사이즈의 메모리를 할당해 주어야 하는데 이를 위해서는 프로세스의 실행에 필요한 메모리 양을 예측해 주어야 한다. Fetch stratagies 메모리를 언제 가져올.. 2022. 1. 12.
10-1. Virtual Memory Management_cost model 과 HW components 가상메모리 Non-continous allocation 으로 사용자 프로그램을 block으로 분할하여 적재/ 실행하며 Paging/Segmentation 이 둘을 섞어 사용하는 Hybrid system 방식으로 분할하여 적재/실행한다. 가상메모리를 관리 하는 목적은 당연히 가상메모리의 시스템의 성능에 대한 최적화를 목적으로한다. 성은에 대한 지표로 Cost model을 두고 이 지표를 낮추는 것을 목표로한다. Cost model for VM.Sys. 가상메모리 시스템의 성능에 대한 Cost model 로는 Page falult frequency(발생빈도) Page fault rate(발생률)이 있다. 즉 Page fault 를 최소화 할 수 있도록 관리해야 한다. 이유는 Page fault가 발생하면 C.. 2022. 1. 11.