Теорія операційної системи

:: Меню ::

Головна
Представлення даних в обчислювальних системах
Машинні мови
Завантаження програм
Управління оперативною пам'яттю
Сегментна і сторінкова віртуальна пам'ять
Комп'ютер і зовнішні події
Паралелізм з точки зору програміста
Реалізація багатозадачності на однопроцесорних комп'ютерах  
Зовнішні пристрої
Драйвери зовнішніх пристроїв
Файлові системи
Безпека
Огляд архітектури сучасних ОС

:: Друзі ::

Карта сайту
 

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

 

 

 

 

 

Какой дает кредит без регистрации, кредит без прописки и регистрации в спб.

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

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

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

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

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

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

 

:: Реклама ::

 

:: Посилання ::


 

 

 


Copyright © Kivik, 2017