JUST WRITE

Segmentation 본문

OS

Segmentation

천재보단범재 2022. 1. 21. 22:40
이 글은 KOCW 강좌 중 경성대학교 양희재 교수님의 '운영체제' 강의를 정리한 글입니다.

 

Segmentation

Segmentation

PagingProcess를 일정한 크기로 나눠서 Memory에 할당한다.

SegmentationProcess를 논리적 내용을 기반으로 나눠서 Memory에 할당한다.

Process를 논리적 내용을 기반으로 나눈 것Segment라 한다.

Segment의 크기는 일정하지 않다.

Segmentation 역시 MMU(Memory Management Unit)에서 주소 변환을 해준다.

대신 Table은 Segment Table이라고 한다.

Address Translation

Segmetation도 Paging에서 비슷하게 Logical Address과 Physical Address로 나누어서 처리한다.

MMU의 Segment Table에서 Logical Address와 Physical Address를 매핑해준다.

Segment Table에 Segment 번호, 시작 주소(base), 크기(limit)를 엔트리로 갖는다.

Segment의 크기가 일정하지 않지만 limit 정보가 필요하다.

Segment의 크기를 넘는 주소가 넘어오면 Interrupt가 발생한다.

Protection and Sharing

Segment Table 역시 Page Table처럼 보호, Memory 낭비를 막을 수 있다.

Segment Table도 r(read), w(write), x(execute) bit로 접근제어가 가능하다.

Memory 낭비도 같은 Program의 Process 진행 시 공통 code 부분을 공유해 Memory 낭비를 막을 수 있다.

Paging보다 Segmentation에서 보호, Memory 낭비를 막는 효율이 높다.

Paging에서 원하는 만큼 Process를 분할하지 못해 접근제어나 Share 할 부분을 잘 분할하기 힘들다.

Segmentation에서는 논리적 단위로 나눌 수 있어서 원하는 부분으로 분할 가능하다.

External Fragmentation

Segment 크기가 가변적이다 보니 External Fragmentation이 일어날 수 있다.

Memory에 남은 hole에 Segment를 Load 할 수 없는 상황이 일어날 수 있다.

SegmentationPaging에 비해 Protection과 Sharing에 효과적이지만

Paging은 External Fragmentation을 해결해주고 Segmentation은 그렇지 못한다.

Process가 아닌 Segment 단위로 Paging을 하는 Paged Segmetation이 있다.

728x90
반응형

'OS' 카테고리의 다른 글

Page Replacement  (0) 2022.01.26
Virtual Memory  (0) 2022.01.25
Paging  (0) 2022.01.20
Main Memory Management  (0) 2022.01.17
Monitor  (0) 2022.01.16
Comments