코드 세그먼트
Code segment컴퓨팅에서 텍스트 세그먼트 또는 단순히 텍스트라고도 하는 코드 세그먼트는 실행 가능한 명령이 포함된 프로그램 가상 주소 공간의 해당 섹션 또는 객체 파일의 일부분이다.[1]"세그먼트"라는 용어는 페이징으로 성공한 메모리 관리에 대한 역사적 접근방식인 메모리 세그먼트에서 유래한다.프로그램이 오브젝트 파일에 저장되었을 때, 코드 세그먼트는 이 파일의 일부분이다; 로더가 프로그램을 실행될 수 있도록 메모리에 배치할 때, 다양한 메모리 영역은 객체 파일의 세그먼트와 런타임에만 필요한 세그먼트 모두에 해당하는 페이지로서 할당된다.예를 들어 객체 파일의 코드 세그먼트는 메모리의 해당 코드 세그먼트에 로드된다.
메모리의 코드 세그먼트는 일반적으로 읽기 전용이며 크기가 고정되어 있으므로 임베디드 시스템에서는 로드할 필요 없이 대개 읽기 전용 메모리(ROM)에 배치할 수 있다.코드 세그먼트가 읽기 전용이 아닌 경우, 특정 아키텍처는 자체 수정 코드를 허용한다.고정 위치 또는 위치 독립 코드는 분할된 메모리 시스템 또는 페이징된 메모리 시스템에서 여러 프로세스에 의해 메모리에서 공유될 수 있다.[1][2]메모리 영역으로서, 힙과 스택 오버플로가 덮어쓰지 않도록 코드 세그먼트를 힙 또는 스택 아래에 배치할 수 있다.[3]
참고 항목
참조
- ^ a b Jason W. Bacon (2012-03-13). "Chapter 10. Subprogram Calls and the Stack". cs.uwm.edu. Section 10.4. Memory Segments. Retrieved 2014-05-02.
- ^ Kai Wang (2012-09-20). "Code Segment and Data Segment: Memory Layout of a Program". beingdeveloper.com. Retrieved 2014-05-02.
- ^ Yu-An Tan; Ji-yan Zheng; Yuan-Da Cao; Xue-lan Zhang (October 2005). Buffer overflow protection based on adjusting code segment limit. IEEE International Symposium on Communications and Information Technology. IEEE. doi:10.1109/ISCIT.2005.1567023.