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

[운영체제] Segmentation system - Address mapping

딥러닝 도전기 2021. 6. 2. 23:18

운영체제 - 한빛아카데미

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

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


이전 포스팅까지 Paging system에 대해 다루어보았습니다.

이번 포스팅에서는 Paging system과 대비되는 Segmetation system에 대해 다뤄보겠습니다.

 

우선 Segmentation system의 특징에 대해 알아보겠습니다.

 

Segmentation system이란 프로그램을 논리적 block으로 분할하는 시스템을 의미합니다.

논리적으로 분할하기 때문에 Block의 크기가 서로 다를 수 있습니다. 크기가 다를 수 있기 때문에 메모리를 미리 분할하지 않습니다.

 

또한 메모리크기에 맞춰 분할하기 때문에 내부 단편화(internal fragmentation)는 발생하지 않고, 외부 단편화(external fragmentation)는 발생 가능합니다. (내부 단편화, 외부 단편화)

 

이러한 점에서 segmentation system은 VPM(variable partition multiprogramming)과 유사합니다.

 

 

Segmentation system을 그림으로 표현한 것입니다.

각 블록을 segment라고 하며, 논리적 분할로 나누었기 때문에 각 segment들의 크기가 상이합니다.

 

SMT를 살펴보며 Segmentation system의 키워드를 정리해보겠습니다.

Segment Map Table(SMT)

virtual address : v = (s, d)  (paging system에서 v = (p, d)로 하는 것과 유사합니다.)

(s: segment number, d = offset)

residence bit : 해당 segment가 메모리에 존재하면 1, 존재하지 않으면 0

secondary storage address : swap device에서 segment가 저장되어있는 주소를 저장합니다.

segment length : segment의 길이를 의미합니다.

protection bits : 해당 segment가 갖는 권한을 저장합니다. (segment는 논리적으로 분할되기 때문에 권한을 줄 수 있습니다)

segment address in memory : 해당 segment가 메모리에 올라가 있을 때(=residence bit가 1일 때) 해당 메모리의 주소를 저장합니다.

segment system의 direct mapping 과정입니다. 

paging system의 direct mapping과 SMT, segment number만 다르고 나머지 과정은 같습니다.

(paging system-direct mapping 과정)

 

우선 SMT가 저장되어 있는 주소 b에 접근한 후 SMT에서 해당 segment의 entry (b+s*entrySize)를 찾습니다.

 

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

residence bit = 1이면 segment address에 접근합니다.

 

segment system에서는 paging system과 다르게 segment overflow가 존재합니다.

segment overflow는 $l_s$ < d (세그먼트의 길이 < 오프셋) 일 때 발생하게 됩니다.

 

또한 protection bit field를 검사해서 해당 segment가 특정 연산에 대해 권한이 없으면 오류가 발생하게 됩니다.

 

위 두 문제를 해결하기 위해 각각 segmet overflow exception, segment protection exception 처리 모듈을 호출합니다.

 

이러한 과정을 거치면 마지막으로 실제 주소 r(=$a_s$+d)를 계산한 후 접근합니다.

 

 

segment system에서 SMT의 항목이 paging system에서 PMT의 항목보다 많습니다. 이 말은 계산해야 할 항목(segment length, protection bit)이 많다는 뜻이고 즉 overhead가 더 크다는 뜻입니다

→ segment system이 paging system보다 overhead가 크다.

반응형