코드 세그먼트

Code segment
이것은 텍스트, 다양한 데이터, 스택 및 힙 섹션이 있는 간단한 컴퓨터의 프로그램 메모리의 일반적인 레이아웃을 보여준다.

컴퓨팅에서 텍스트 세그먼트 또는 단순히 텍스트라고도 하는 코드 세그먼트는 실행 가능한 명령이 포함된 프로그램 가상 주소 공간의 해당 섹션 또는 객체 파일의 일부분이다.[1]"세그먼트"라는 용어는 페이징으로 성공한 메모리 관리에 대한 역사적 접근방식인 메모리 세그먼트에서 유래한다.프로그램이 오브젝트 파일에 저장되었을 때, 코드 세그먼트는 이 파일의 일부분이다; 로더가 프로그램을 실행될 수 있도록 메모리에 배치할 때, 다양한 메모리 영역은 객체 파일의 세그먼트와 런타임에만 필요한 세그먼트 모두에 해당하는 페이지로서 할당된다.예를 들어 객체 파일의 코드 세그먼트는 메모리의 해당 코드 세그먼트에 로드된다.

메모리의 코드 세그먼트는 일반적으로 읽기 전용이며 크기가 고정되어 있으므로 임베디드 시스템에서는 로드할 필요 없이 대개 읽기 전용 메모리(ROM)에 배치할 수 있다.코드 세그먼트가 읽기 전용이 아닌 경우, 특정 아키텍처자체 수정 코드를 허용한다.고정 위치 또는 위치 독립 코드는 분할된 메모리 시스템 또는 페이징된 메모리 시스템에서 여러 프로세스에 의해 메모리에서 공유될 수 있다.[1][2]메모리 영역으로서, 힙과 스택 오버플로가 덮어쓰지 않도록 코드 세그먼트를 힙 또는 스택 아래에 배치할 수 있다.[3]

참고 항목

참조

  1. ^ 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.
  2. ^ Kai Wang (2012-09-20). "Code Segment and Data Segment: Memory Layout of a Program". beingdeveloper.com. Retrieved 2014-05-02.
  3. ^ 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.