:: Статистика ::

 
Індекс цитування

 

 

 

 

 

Об'єктні бібліотеки

Крупні програми часто складаються з сотень і тисяч окремих модулів. Крім того, існують різні пакети підпрограм, що також полягають Про великої кількості модулів. Один з таких пакетів використовується практично в будь-якій програмі на мові високого рівня — це так звана стандартна бібліотека. Для вирішення проблем, що виникають при підтримці порядку в наборах з великої кількості об'єктних модулів, еше на зорі обчислювальної техніки були придумані бібліотеки об'єктних модулів.
Бібліотека, як правило, є послідовним файлом, що складається із заголовка, за яким послідовно розташовуються об'єктні модулі (мал. 3.11). У заголовку міститься наступна інформація.

  • Список всіх об'єктних модулів, із зсувом кожного модуля від початку бібліотеки. Зсув потрібний для того, щоб можна було легко знайти необхідний модуль.
  • Список всіх глобальних символів, визначених в кожному з модулів, з вказівкою, в якому саме модулі він був визначений.

Мал. 3.11. Об'єктна бібліотека

Лінкер (мал. 3.12) зазвичай збирає в програму всі об'єктні модулі, які були йому задані в командному рядку, навіть якщо на цей модуль не було жодного заслання. З бібліотечними модулями він поводиться трохи інакше.
Зустрівши заслання на глобальний символ, компонувальник шукає визначення цього символу у всіх модулях, які йому були задані. Якщо там такого символу немає, то лінкер шукає цей символ в заголовку бібліотеки. Якщо його немає і там, компонувальник повідомляє: "Не визначений символ SYMBOL", - і завершує роботу. Деякі редактори зв'язків, правда, можуть Продовжити роботу і навіть зібрати завантажуваний модуль, але, як правило, таким модулем користуватися не можна, оскільки в нім міститься заслання на некоректну адресу. Якщо ж визначення символу в бібліотеці є, компонувальник "витягує" відповідний модуль ц далі працює так, ніби цей модуль був заданий йому нарівні з остальным^ об'єктними файлами. Цей процес повторюється до тих пір, поки не будуть дозволені всі глобальні заслання, у тому числі і ті, які виникли в бібліотечних модулях, або доки не буде виявлений невизначений символ. Завдяки такому алгоритму в програму включаються лише ті модулі з бібліотеки, які потрібні.
У системах сімейства Unix бібліотеки такої структури називаються архівними бібліотекамиаби відрізнити їх від бібліотек, що розділяються, які розглядаються в разд. Динамічні бібліотеки і Бібліотеки, що розділяються.

Мал. 3.12. Блок-схема роботи редактора зв'язків

 

рекламодавці:

/ ml lfppюн детская кроватка

::  Меню ::

ГОЛОВНА

Введення

Представлення даних в обчислювальних системах 

Машинні мови

Завантаження програм 

Управління оперативною пам'яттю

Сегментна і сторінкова віртуальна пам'ять

Комп'ютер і зовнішні події

Паралелізм з точки зору програміста 

Реалізація багатозадачності на однопроцесорних комп'ютерах 

Зовнішні пристрої

Драйвери зовнішніх пристроїв 

Файлові системи 

Додаток. Огляд архітектури сучасних ОС

 


:: Навігація ::

Головна

Додати у вишукане  

 

 

 


Copyright © Asentli, 2008