[컴퓨터공학]/[운영체제]

[운영체제] Paging system - 직접 사상(Direct Mapping)

딥러닝 도전기 2021. 6. 1. 21:52

그림으로 배우는 구조와 원리 운영체제 - 구현희

운영체제에 대해 공부한 내용에 대해 정리해보았습니다.

KOREATECH 김덕수 교수님의 자료와 한밭대학교 임경태 교수님의 강의를 참고하였습니다.


이전 포스팅에서 Block mapping에 대해 알아보았습니다.

이번 포스팅에서는 Paging system에서의 직접 사상(Direct mapping)에 대해  알아보겠습니다.

Direct mapping은 Block mapping 방법의 확장, 응용이라고 생각하시면 될 것 같습니다.

 

Block mapping에서 BMT(Block Map Table)를 사용했듯, Direct mapping에서는 PMT(Page Map Table)을 사용합니다.

 

direct mapping에 관련된 키워드부터 정리해보겠습니다.

virtual address : v = (p, d)

p : page number

d : 오프셋(offset) 

residence bit : 1이면 해당 page가 메모리에 적재되어있는 상태, 0이면 적재되어있지 않은 상태로 page fault가 발생

page fault  : page를 읽어오는 것을 실패했을 때 발생

 

direct mapping에서는 PMT가 커널 안에 저장되어있다고 가정합니다. (= PMT에 접근할 때 메모리에 접근하게 됩니다)

 

Page Map Table

 

PMT는 위 그림처럼 나타나는 Table입니다.

page number, residence bit, secondary storage address, page frame number로 구성됩니다.

direct mapping은 위 그림처럼 진행됩니다.

1. PMT가 저장되어있는 주소 b에 접근합니다.

 

2. 해당 PMT에서 b+p*entrySize를 계산해 entry의 주소를 찾습니다. (여기서 entrySize는 PMT 한 줄의 사이즈입니다.)

 

3. 찾아진 entry의 residence bit를 확인합니다. 이때 residence bit = 1이면 page frame number(=p')에 접근합니다.

   만약 residence bit = 0 이면 page fault가 일어나고 swap device에서 해당 page를 메모리에 적재합니다.

   (page fault는 Context switching을 발생시켜 심각한 overhead가 발생합니다.) 

 

4. p'*pageSize+d를 이용하여 실제주소 r을 형성한 후 접근합니다. (여기서 pageSize는 한 page의 크기입니다.)

 

마지막으로 Direct mapping의 단점과 해결방안에 대해 알아보겠습니다.

 

단점

Direct mapping에서는 PMT가 커널에 존재하기 때문에 PMT에 접근하기 위해서는 메모리에 접근해야 합니다.

이 과정에서 메모리에 한 번 접근하게 되고, 실제 주소 r을 읽을 때 메모리에 한 번 더 접근하게 됩니다.

따라서 메모리 접근 횟수가 2배가 되어 성능이 저하됩니다.

더해서 PMT를 위한 메모리 공간이 따로 필요합니다.

 

해결방안

위 문제에 대한 해결방안은 다음 포스팅에 다룰 연관 사상(Associative mapping)과 PMT를 위한 하드웨어를 사용하는 방법이 있습니다.

반응형