사이언스올

통합검색

찾기

세그먼트(segment)

작성일 2018-12-12
프로그램에 정의된 특정 영역으로, 코드, 데이터 등이 이에 해당된다. 세그먼트는 메모리의 거의 어느 곳에나 위치할 수 있고, 프로그램 실행을 위해 필요한 공간과 데이터를 처리하는 명령어들을 위한 프로그램이나 메모리의 부분이다. 세그먼트 방식에서는 나누어진 세그먼트 별로 프로세스에게 할당하고 다른 세그먼트에 대한 접근을 막는 방식으로 메모리를 보호한다. 세그먼트들은 크기가 서로 다르므로 페이징 기법과 같이 메모리를 미리 분할할 수 없다. 또한 메모리를 참조하게 될 때 메모리의 위치를 파악하기 위해 세그먼트 번호와 오프셋(offset)을 기준으로 데이터를 다룬다. 주요 세그멘트는 실행될 프로그램의 기계어 명령어를 포함하는 코드(code) 세그멘트, 프로그램에서 정의된 데이터, 상수, 작업 영역 등을 포함하는 데이터(data) 세그멘트, 프로그램이 임시로 사용하는 지역 함수 변수 등의 데이터가 저장되는 스택(stack) 세그멘트,크기가 고정되어 있지 않고 프로그래머가 직접 접근 가능한 힙(heap) 세그멘트가 있다. 메모리 세그멘트 방식은 세그멘트 단위로 메모리를 통제할 수 있다는 장점이 있지만, 메모리 영역이 동적으로 분할되기 때문에 할당될 프로그램 크기보다 세그멘트 영역이 작아서 할당이 불가능한 외부 단편화(external fragmentation) 문제가 발생할 수 있다.
다음
세로(column) 2018.12.12
이전
세로(column) 2018.12.12
통합검색으로 더 많은 자료를 찾아보세요! 사이언스올(www.scienceall.com)과학백과사전
The Science Times
과학문화바우처
사이언스 프렌즈
STEAM 융합교육
CreZone 크레존
문화포털
과학누리
교육기부
EDISON
과학기술인재 진로지원센터