В вычислениях , А сегмент кода , также известный как текстовый сегмент , или просто как текст , представляет собой часть из объектного файла или соответствующий раздел программы виртуального адресного пространства , который содержит исполняемые инструкции . [1] Термин «сегмент» происходит от сегмента памяти , который представляет собой исторический подход к управлению памятью , на смену которому пришла подкачка страниц . Когда программа хранится в объектном файле, сегмент кода является частью этого файла; когда загрузчик помещает программу в памятьдля его выполнения выделяются различные области памяти (в частности, как страницы), соответствующие как сегментам в объектных файлах, так и сегментам, необходимым только во время выполнения. Например, сегмент кода объектного файла загружается в соответствующий сегмент кода в памяти.
Сегмент кода в памяти обычно предназначен только для чтения и имеет фиксированный размер, поэтому во встроенных системах он обычно может быть помещен в постоянное запоминающее устройство (ПЗУ) без необходимости загрузки. Если сегмент кода не предназначен только для чтения, то конкретная архитектура допускает самомодифицирующийся код . Код с фиксированной позицией или независимый от позиции код может совместно использоваться в памяти несколькими процессами в сегментированных или страничных системах памяти. [1] [2] В качестве области памяти сегмент кода может быть размещен ниже кучи или стека, чтобы предотвратить его перезапись при переполнении кучи и стека . [3]
Смотрите также
Рекомендации
- ^ a b Джейсон В. Бэкон (13 марта 2012 г.). «Глава 10. Вызов подпрограмм и стек» . cs.uwm.edu . Раздел 10.4. Сегменты памяти . Проверено 2 мая 2014 .
- ^ Кай Ван (2012-09-20). «Сегмент кода и сегмент данных: структура памяти программы» . beingdeveloper.com . Проверено 2 мая 2014 .
- ^ Ю-Ан Тан; Цзи-янь Чжэн; Юань-Да Цао; Сюэ-лань Чжан (октябрь 2005 г.). Защита от переполнения буфера на основе настройки ограничения сегмента кода . Международный симпозиум IEEE по коммуникационным и информационным технологиям. IEEE . DOI : 10.1109 / ISCIT.2005.1567023 .