Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Лабораторна робота №7

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Кафедра ЕОМ

Інформація про роботу

Рік:
2015
Тип роботи:
Лабораторна робота
Предмет:
Системне програмування та операційні системи

Частина тексту файла

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” / Кафедра ЕОМ Звіт до лабораторної роботи № 7 з дисципліни СТВОРЕННЯ DLL ТА ЇХ ВИКОРИСТАННЯ ПРИ ЯВНОМУ ЗВ’ЯЗУВАННІ НА МОВІ АСЕМБЛЕР " Системне програмування " Мета: Ознайомитись з технологією та оволодіти навиками створення та використання бібліотек динамічного компонування з використанням явного зв’язування на мові Асемблера. ТЕОРЕТИЧНІ ВІДОМОСТІ Динамічне компонування образу задачі в процесі її виконання надає ряд переваг розробникам програмного забезпечення в порівнянні зі статичним копонуванням. До переваг відносяться: зменшується розмір виконуваного файлу; у пам’ять завантажують лише одну копію динамічноїбібліотеки; оновлення бібліотек не веде до перекомпонування застосування; реалізовується динамічне завантаження модулів на вимогу; можливість спільно використовувати ресурси застосування; можна організувати спільну роботу бібліотек, розроблених із використанням різних мов програмування. Однак воно не позбавлене недоліків: сповільнює завантаження застосування; не ефективно використовуватися зовнішня пам’ять; проблема є зворотної сумісності; ускладнюється процес інсталювання програмного застосування. Однак грамонто володіючи технологією створення та підтримки динамічних бібліотек можне зменшити вплив деяких з цих недоліків на програмний продукт, а деякі подолати. Можливі 2 способи використання динамічних бібліотек. Вони називаються “явним” та “неявним” зв’язуванням. “Явне” та “неявне” зв’язування бібліотеки з програмою мають суттєві відмінності в процесі написання та компіляції програми. Неявне зв’язування бібліотеки з програмою (Load-time dynamic linking) полягає в тому, що бібліотека (яка міститься у файлі з розширенням .dll) завантажується в пам’ять в момент завантаження програми. До переваг “неявного” зв’язування в порівнянні з “явним” відноситься: простота програмування. Розробник не вникає в проблеми зв’язування назв функцій з адресами за якими завантажена їх реалізація; прогнозованість поведінки застосування. Якщо застосування успішно завантажено, то усі проблеми перехрестних зв’язків уже вирішено; Однак у “неявного” зв’язування існує ряд недоліків: при відсутності бодай однієї з бібліотек при запуску програми відбудеться збій та припинення виконання програми; значні затрати часу на завантаження та старт застосування, пов’язані з необхідністю завантаження усіх динамічних бібліотек; відсутня можливість вивантаження непотрібних в даний час динамічних бібліотек; на час компонування необхідно мати додаткові файли з прототипами функцій та бібліотеку імпорту (.lib). Отже, основними перевагами “явного” зв’язування, є можливість тонко керувати процесами завантаження та вивантаження динамічних бібліотек, а отже і використовуваною пам’яттю, хоча і за рахунок складності програмування. “Явне” зв’язування бібліотеки з програмою (Run-time dynamic linking) полягає в тому, що бібліотека (яка міститься у файлі з розширенням .dll) завантажується в пам’ять в момент часу, що визначається розробником, за допомогою виклику АРІ функцій LoadLibrary або LoadLibraryEX. При успішному виконанні функція повертає адресу точки входу. При відсутності бібліотеки, яку необхідно завантажити, або при помилках її завантаження функція поверне NULL, а сама програма, може продовжити виконання. Звичайно, якщо функції, що містяться у відсутній бібліотеці не є критичними для її подальшої роботи. Для виклику бібліотечної функції необхідно оголосити вказівник на функцію, та присвоїти йому адресу бібліотечної функції. Для цього необхідно використати АРІ функцію GetProcAddress, яка повертає адресу вказаної їй у параметрі бібліотечної функції. Після завершення роботи з функціями бібліотек, програмі необхідно вивантажити бібліотеки за допомогою функції FreeLibrary. Для успішної компіляції необхідно мати лише dll файл бібліотеки. Запуск програми відбудеться навіть за відсутності бібліотечного файлу, оскільки його наявність пр...
Антиботан аватар за замовчуванням

05.02.2017 16:02

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини