Операционная система UNIX. Руководство программиста

     

Алгоритм размещения


Выходная секция создается в результате выполнения предложения SECTIONS, или объединения одноименных входных секций или объединения секций .text и .init в выходную секцию .text. В выход- ную секцию включаются несколько (возможно, одна или ни одной) входных. После того, как состав выходной секции определен, ей назначается для размещения участок конфигурируемой виртуальной памяти. ld(1) использует алгоритм, цель которого - минимизиро- вать фрагментацию памяти и таким образом повысить вероятность успешного размещения всех выходных секций, с учетом конфигурации памяти. Этот алгоритм заключается в следующем:

  • Размещаются все выходные секции, связанные с конкретными адресами.
  • Размещаются все секции, связанные с именованными областями памяти. Секции, размещаемые на этом или следующем шаге, связываются с первым доступным в (именованной) памяти адресом, с учетом требований выравнивания, если таковое имеются.
  • Размещаются все остальные выходные секции.

Если, как это предполагается по умолчанию, вся память образует одну непрерывную конфигурируемую область, а предложения SECTIONS отсутствуют, то выходные секции размещаются в том порядке, в котором их создает ld(1). В остальных случаях выходные секции размещаются в том порядке, в котором они определяются, или становятся известными ld(1), - в первой подходящей из доступных областей памяти.



Содержание раздела