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

[운영체제]블록 매핑(Block mapping)

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

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

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

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


이번 포스팅에서는 Block mapping에 대해 알아보겠습니다.

 

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

 

가상 주소(virtual address) : v=(b, d)

b : 블록 번호(block number)

d : 오프셋(offset) - 블럭 내에서의 위치

BMT : Block Map Table - 커널 공간의 한 개의 프로세스마다 한개의 BMT를 갖는다.

residence bit : 해당 블록이 메모리에 올라가 있으면 1, swap device에 존재하면 0

real address : 메모리의 어디에 올라가 있는지에 대한 주소

 

Block mapping은 사용자 프로그램을 block단위로 분할하여 관리합니다.

 

v = (b, d)를 그림으로 나타내면 다음과 같습니다.

v = (b, d)

BMT를 그림으로 나타내면 다음과 같습니다.

BMT는 block number, residence bit, real address로 구성이 됩니다.

block number는 v = (b, d)에서 b에 해당하는 블록 번호입니다.

해당 블록이 메모리에 적재되어있으면 residence bit가 1이고 그렇지 않으면 0입니다.

 

블럭 매핑은 위 그림처럼 진행이 됩니다. 

우선 block number(b)를 읽어서 BMT에서 해당 block number을 찾습니다.

 

이때 residence bit가 1이면 real address값 a에 접근하여 r = a + d를 계산한 후 메인 메모리에 접근합니다.

 

만약 residence bit가 0이면 우선 swap device에서 해당 블록을 메모리로 가져온 후 residence bit를 1로 만들어서 위의 과정(real address값 a에 접근하여 r = a + d를 계산한 후 메인 메모리에 접근)을 진행합니다. 

반응형