가상 메모리 관리 기법 중 하나로, 가상 메모리를 같은 크기의 블록으로 분할하는 페이징 기법과 달리 세그멘테이션 기법은 가상 메모리를 서로 크기가 다른 논리적 단위인 세그먼트(Segment)로 분할하고 메모리를 할당하는 기법이다.
> 가상 메모리 관리 기법
1. 페이징 기법 : 동일한 크기의 블록으로 분할 및 할당
2. 세그멘테이션 기법 : 가변 크기의 블록으로 분할 및 할당
> 세그먼트(segment)
메모리 세그먼트 방식(Memory segmentation)은 메모리 보호를 수행하는 가장 일반적인 방법 가운데 하나이다. 또다른 방식으로는 페이징이 있다. 세그먼트를 사용하는 컴퓨터 시스템에서 메모리 위치를 참조하는 명령어 피연산자는 세그먼트와 그 세그먼트 안의 오프셋을 증명하는 값을 포함하고 있다.
이러한 이용은 인텔 8086, 인텔 8088과 같은 초기 x86 프로세서에 쓰인 메모리 세그먼트의 이용과 혼동해서는 안 된다. 왜냐하면 이들은 어떠한 보호 기능도 제공하지 않았기 때문이다. (어떠한 프로그램도 제한 없이 세그먼트에 쉽게 접근할 수 있었고 세그먼트는 64 KiB라는 고정 길이와 시작 위치로만 구성되어 있었다.) 인텔 80286 이후의 메모리 세그먼트 방식에는 보호 기능이 제공된다.
> 특징
- 세그먼트들의 크기가 서로 다르기 때문에 메모리를 페이징 기법에서 처럼 미리 분할해 둘 수 없고, 메모리에 적재될 때 빈 공간을 찾아 할당하는 사용자 관점의 가상 메모리 관리 기법
- 마이크로프로세서는 세그먼트 테이블을 참조하여 해당 세그먼트의 시작주소와 더해져서 실제적인 물리적 위치로 변환해줌
> 세그먼트
- 세그먼트는 논리적 의미에 부합하도록 서로 크기가 다르며 각각의 세그먼트들은 연속적인 공간에 저장되어있다.
- 세그먼트 가상 주소는 v = (s,d) 로 표현되며, s는 세그먼트 번호를 d는 블록 내 세그먼트의 변위를 나타낸다.
- 전체 세그먼트가 하나의 단위로 보조기억장치에서 메모리로의 연속적인 가용 공간에 적재되며 최초 적합 등의 방법으로 주기억장치를 할당
> 세그먼트 테이블
- 페이징 기법에 페이지 테이블이 있는 것처럼, 세그멘테이션 기법에는 세그먼트 테이블이 사용된다. 세그먼트 테이블은 사용자가 정의한 주소를 실제 주소로 맵핑하는 정보를 저장하고 있으며, 각 세그먼트 항목별 Base(세그먼트 시작 주소)/Limit(세그먼트 길이)의 정보를 갖고 있다.
> 세그멘테이션 기법의 장단점
- 하나의 세그먼트 단위로 통제가 가능하다는 장점
- 서로 다른 크기의 세그먼트들에 대해 필요 시에 메모리에 올리고, 필요없을 경우 내리를 작업을 반복하다보면 외부 단편화가 생기는 문제점이 있음
[출처]
https://haloworld.tistory.com/111
ko.wikipedia.org/wiki/%EB%A9%94%EB%AA%A8%EB%A6%AC_%EC%84%B8%EA%B7%B8%EB%A8%BC%ED%8A%B8
'Management' 카테고리의 다른 글
업무기술서 작성법 (0) | 2023.05.26 |
---|---|
솔루션을 개발할 때 요구사항 정의서를 작성하는 방법 (0) | 2023.04.06 |
sudo 암호 없이 우분투 사용 방법 (0) | 2020.10.11 |
PoC vs Pilot (0) | 2020.03.03 |
개발 vs 코딩 (0) | 2020.02.11 |