운영체제에 대해 공부한 내용에 대해 정리해보았습니다.
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)를 그림으로 나타내면 다음과 같습니다.
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를 계산한 후 메인 메모리에 접근)을 진행합니다.
'[컴퓨터공학] > [운영체제]' 카테고리의 다른 글
[운영체제] Hybrid paging/segmentation system (0) | 2021.06.03 |
---|---|
[운영체제] Segmentation system - Address mapping (0) | 2021.06.02 |
[운영체제] Paging system - 연관 사상(Associative mapping), Hybrid direct/associative mapping (0) | 2021.06.01 |
[운영체제] Paging system - 직접 사상(Direct Mapping) (0) | 2021.06.01 |
[운영체제] 내부단편화, 외부단편화(Internal fragmentation, external fragmentation) (0) | 2021.06.01 |