가상메모리
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가 발생하면 Context switch 가 발생하고 이는 overhead(cost)가 증가함을 의미 한다. 따라서 시스템 성능 향상을 위해서 Page fault가 적도록 관리 해야 한다.
용어정리
page reference string(d) : 프로세스의 수행 중 참조한 페이지 번호의 순서를 말한다.
page fault rate = F(w)
페이지 fault의 수를 전체 참조된 페이지의 수를 나누어 준다.
가상 메모리를 관리하기위한 Components를 HW측면과 SW측면으로 나누어 설명해 본다.
Hardware Components
Address translation device(주소 사상 장치)
컴퓨터 과학 분야에서 사상이란 가상주소로부터 물리주소를 찾아내는 일을 말한다.
이 주소 사상을 효율적으로 수행하기 위해 사용되는 하드웨어로 대표적인 예로는
TLB, Dedicated page-table register, Cache memories가 있다.
Bit vectos
page 사용 상황에 대한 정보를 기록하는 비트들로 Refefrence bits(used bit) , Update bits(modified bits, write bit, dirty bits) 등이 있다.
참조 비트는 페이지프레임이 참조가 되었는지 아닌지, 업데이트 비트는 페이지프레임의 데이터가 수정되었는지 알려주는 비트이다.
좀더 자세히 살펴보도록 하자.
Reference bit vector
메모리에 적재된 각각의 page가 최근에 참조 되었는지를 표시하는 비트벡터이다.
프로세스에 의해 참조되면 해당 page의 레퍼런스 비트를 1로 설정하고 주기적으로 모든 레버런스 비트를 0으로 초기화 시켜주어 최신화 해준다.
Update bit vector
page가 메모리에 적재된 후 프로세스에 의해 수정되었는지를 표시하는 비트벡터이다.
스왑디바이스에 있던 page가 불려와 메모리상에서 수정이 되면 서로 다른데이터를 가지게 된다. 따라서 프로세스가 작업을 마치고 해당 페이지를 스왑디바이스로 아웃 시킬때 변경된 사항을 다시 적어줄 필요가 있다. (Write-back)
즉 Update bit =1이라면 해당 page의 Main memory상 내용과 Swap device의 내용이 다르다는 것을 의미하므로 해당 page에 대한 Write-back(to Swap device)가 필요하다.
업데이트 비트는 주기적인 초기화는 필요없고 메모리상에서 나올때 초기해 해준다.
SW측면은 다음포스팅에 올려보겠다.
'OS > os 공부' 카테고리의 다른 글
10-3. VM. Management_Replacement Strategies_fixed allocation (0) | 2022.01.12 |
---|---|
10-2. Virtual Memory Management_SW components (0) | 2022.01.12 |
컨텍스트 스위칭과 스와핑의 차이점 (0) | 2022.01.10 |
9-3. Virtual Memory (Hybrid paging/segmentation system) (0) | 2022.01.06 |
9-2. Virtual Memory (Segmentation System) (0) | 2022.01.06 |