본문 바로가기

학교공부/운영체제

Memory Management Strategies - 3

Valid (v) or Invalid (i) Bit In A Page Table

9장에서 배울 내용이라 간략하게 설명하면 이전 방식에서 memory protection을 위해서는 address의 시작과 끝만 알고있으면 됐다. 근데 paging하니까 page의 번호를 알고 있어야 한다. 그것도 단순히 시작과 끝이아닌 현재 physical memory 위에 page가 올라가있으면 valid 잠시 하드로 내려가 있거나 사용 불가능하면 invalid를 부여해 메모리를 보호한다.  

 

 

Page 크기가 너무 크다 줄이기위한 설계를 알아보자.

Two -Level Paging Example

두개의 계층적 구조로 설계한다.

 

이런 다단계 paging의 장점은 메모리를 절약할 수 있다. 쪼갠 table이 invalid한 경우 아예 할당을 안할 수도 있고 접근 하는 table만 할당하므로 암튼 절약된다.  

참조 - https://stackoverflow.com/questions/29467510/how-does-multi-level-page-table-save-memory-space/30471717

 

Hashed Page Table

hash를 이용해서 접근. 딱히 안쓰는 방법

 

Inverted Page Table

프로세스별로 table 갖는게아니라 그냥 큰거하나 만들어서 관리하는 방법

physical memory 입장에서 각 page가 누구 process 거인지 테이블 만들어서 확인한다

이것도 안씀

 

 

 

프로세스를 메모리에 올리는 방법으로 Contiguous Allocation, paging을 배웠다 그다음으로 배울건

Segmentation

동일한 크기로 자르는 paging은 실제 사용할 때 애매한 부분이 있다.

따라서 사용 의미에 따라 조각내는 것이 segmentation

현재는 요렇게 code data heap stack 으로 4등분한다.

해당 segmentation으로 이동해서 offset을 더하는 과정.

 

 

Segmentation with Paging

결론은 이 두개를 섞어 쓴다.

각각은 크게 segmentation으로 나눈 뒤 각 segmentation은 paging으로 관리한다.

 

segmentation을 먼저 찾고 two-level paging scheme에서 주소를 찾는 방법.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'학교공부 > 운영체제' 카테고리의 다른 글

Virtual Memory Management-2  (0) 2020.06.01
Virtual Memory Management  (0) 2020.05.29
Memory Management Starategies -2  (0) 2020.05.22
Memory Management Starategies  (0) 2020.05.20
Deadlock  (0) 2020.05.15