[OS] 메모리 IV - Segmentation System

rg.log·2022년 5월 19일
0
post-thumbnail

메모리 비연속 할당 기법 중 하나인 Paging System 기법에 이어 남은 기법들을 알아보자!

2. Segmentation System

Paging System 기법과 달리 프로그램을 논리적 block으로 분할한다. 논리적으로 분할된 단위를 segment라 하며 block의 크기가 서로 다를 수 있다. 해서 address mapping 및 메모리 관리에는 overhead가 크지만 segment sharing/protection에는 용이하다는 장점이 있다. 논리적 단위로 나누기에 내부 단편화는 발생하지 않으며 외부 단편화는 발생 가능하다.

구현

  • SMT(Segment Map Table)
    PMT와 비슷하나 segment length와 protection bits가 추가된 형태이다.
  1. Address mapping(direct mapping)
    이전 포스팅했던 Paging System에서의 direct mapping과 방법이 같다. Paging System에서의 page fault가 여기선 segment fault이다. 해당 segment가 메모리에 적재되지 않아 0으로 표시되어 있는 상태로, swap device로부터 해당 segment를 메모리로 적재 후 SMT를 갱신해 준다.
    1) 변위(d)가 segment 길이보다 큰 경우에는 segment overflow exception 처리 모듈을 호출한다.
    2) 허가되지 않은 연산일 경우에는 segment protection exception 처리 모듈을 호출한다.

    • 변위(d)는 offset으로, segment 내에서의 위치를 가리킨다. segment의 실제 주소 + 변위(d) 를 계산한 후 메인 메모리에 접근한다.
  2. Memory management(메모리 관리)
    Segment 적재 시, 크기에 맞춰 메모리를 분할한 후에 적재한다. 이를 정리한 Partition table/State table을 가지고 있다.

Segment sharing/protection

논리적으로 분할되어 있어서 segment를 공유하거나 보호하기에 용이하다.

Paging System 과 Segmentation System 비교

Paging SystemSegmentation System
overhead같은 크기로 잘라 관리 간편하므로 overhead 적음각각 크기가 달라 관리 어렵고 overhead 큼
공유 및 보호복잡함쉬움

Paging System 과 Segmentation System의 각 장단점이 있으니 역시나 각각의 장점은 살리고 단점은 보완할 수 있는 방법을 찾았을 것이다. 그것이 Hybrid paging/segmentation system 기법이다!

3. Hybrid paging/segmentation system

0개의 댓글