이야기박스
운영체제) 메모리 관리5 (Memory Management) 본문
§ 세그먼테이션
- 1차원적 가상 메모리에서 서로 분리된 가상 주소 공간을 제공하기 위해
▣ 세그먼트 (Segment)
- 여러 개의 서로 완전히 독립된 주소 공간들
- 0부터 시스템에서 허용된 최대 크기까지 값을 갖는 선형 구조로 구성
- 서로 다른 세그먼트는 다른 크기를 갖음
- 가변 크기 ( 실행 중 변할 수 있음 )
- 주소 표현 ; 세그먼트 번호 + 세그먼트 내부 주소
- 장점
a. 증가하거나 감소하는 자료 구조의 관리를 간단하게 함
b. 서로 분리되어 컴파일된 함수들의 링킹 작업의 단순화
c. 함수나 데이터를 여러 프로세스들이 공유하기 쉬움
d. 1차원적인 페이징 시스템에 비해 보호 모드에 더 적합
- 페이징과 세그먼테이션의 차이
고려사항 |
페이징 |
세그먼테이션 |
프로그래머가 이 기술이 사용되는 것을 아는가? |
아니오 |
예 |
얼마나 많은 선형 주소를 지원하는가? |
1 |
다수 |
전체 주소 공간의 크기가 물리 메모리보다 클 수 있는가? |
예 |
예 |
함수와 데이터가 구분되고 분리되어 보호 되는가? |
아니오 |
예 |
크기가 자주 변하는 테이블을 적절하게 지원하는가? |
아니오 |
예 |
공유 지원이 쉽게 구현되는가? |
아니오 |
예 |
이 기술이 발명된 이유는? |
물리메모리를 더 구입하지 않고 더 큰 선형주소를 제공하기 위하여 |
프로그램을 논리적인 작은 주소 공간들로 구분, 공유/보호 하기 위하여 |
▣ 순수한 세그먼테이션의 구현
- 페이징은 고정 크기, 세그멘테이션은 가변 크기
- 압축(compaction)에 의한 외부 단편화 해결
* 페이징 ; 내부 단편화 --> 페이지 사이즈 줄임 --> 페이지가 많아짐
- 세그먼트 디스크립터로 관리
* 페이지 ; 페이지 테이블로 관리
▣ MULTICS
- 세그먼트를 페이지로 나눔
▣ 메모리 관리 연구
- 페이징 + 세그먼테이션
'Computer & Data > Operating System' 카테고리의 다른 글
메모리 영역(Code, Data, Heap, Stack) (0) | 2017.11.24 |
---|---|
운영체제) 교착 상태 (Deadlock) (0) | 2017.06.14 |
운영체제) 메모리 관리4 (Memory Management) (0) | 2017.06.07 |
운영체제) 메모리 관리3 (Memory Management) (0) | 2017.06.06 |
운영체제) 메모리 관리2 (Memory Management) (0) | 2017.06.06 |