Главная » Просмотр файлов » И.А. Волкова, И.Г. Головин, Л.Е. Карпов - Системы программирования

И.А. Волкова, И.Г. Головин, Л.Е. Карпов - Системы программирования (1114897), страница 17

Файл №1114897 И.А. Волкова, И.Г. Головин, Л.Е. Карпов - Системы программирования (И.А. Волкова, И.Г. Головин, Л.Е. Карпов - Системы программирования) 17 страницаИ.А. Волкова, И.Г. Головин, Л.Е. Карпов - Системы программирования (1114897) страница 172019-05-08СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 17)

Все статические библиотеки подключаются кпрограммам, готовящимся к выполнению, ровно один раз в момент формированияредактором связей полной программы. После подключения компоненты статическойбиблиотеки становятся неотъемлемой частью программы и в дальнейшемраспространяются вместе с нею. Программа, к которой уже подключены компонентыстатической библиотеки, приобретает независимость от самой этой библиотеки. Если вбиблиотеку будут внесены изменения, вносить какие-либо параллельные изменения впрограмму, использующую исправленную библиотеку не требуется.

Связь программыи библиотеки после подключения этой библиотеки к программе разрывается. Этосвойство статических библиотек является их несомненным преимуществом.Другой стороной разрыва связи программы и библиотеки в момент ихобъединения является трудоемкость исправления программ в случае, если внесениеизменений в библиотеку объясняется исправлением существовавшей в ней ошибки. Этатрудоемкость связана с необходимостью произвести повторную полную сборкупрограммы из объектных модулей и исправленных библиотечных компонентов.Статическое подключение компонентов библиотек к объектным модулям ведетк существенному росту объемов готовых программ.

В современных условиях, когдабиблиотеки достигли высокой степени развития, доля компонентов библиотек в объемеготовых программ уже превышает половину этого объема. Поскольку некоторымисистемными и стандартными библиотеками пользуются почти все программы, размеры63непроизводительно используемой памяти, как в архивах программ, так и в памятивычислительных машин при выполнении программ, могут быть очень большими.3.6.2. Динамически загружаемые библиотекиКомпоненты динамических библиотек (динамически загружаемые компоненты ибиблиотеки) подключаются к программам во время выполнения этих программ. В этомсостоит основное отличие динамических библиотек от статических.

Компонентыдинамических библиотек не связаны с программами, которые к ним обращаются, ираспространяются отдельно от них.Некоторые динамические библиотеки подключаются к программам в самомначале выполнения программы при ее записи в оперативную память вычислительноймашины. Какой-либо связи с тем, будет в программе реальное обращение ккомпонентам библиотеки или нет, здесь не возникает.

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

Памятьвычислительной машины при таком методе загрузке библиотек используется болеерационально, но этот метод сложнее для реализации. Он требует либо существенногоусложнения операционной системы, либо внесения в программы специальных указанийдля динамической загрузки, поскольку только разработчик программы может точнознать, когда потребуется загрузка в память той или иной библиотеки (или какого-либокомпонента библиотеки). Точно также только разработчик программы может точнознать, когда можно освободить память от используемой библиотеки.Загрузка при начале выполнения программы менее экономно расходуетоперативную память, но проще реализуется, поскольку может быть полностьюавтоматизирована, а задача такой динамической загрузки может быть решенакомпоновщиком программ (редактором связей).

Для этого достаточно в заголовокпрограммы добавить перечень всех используемых в программе библиотек. Имея такойперечень, который обычно передается компоновщику в качестве одного из параметровего запуска, он может обеспечить загрузку всех библиотек в память перед началомработы основной программы.Современные системы программирования обычно допускают оба метода работыс динамическими библиотеками, а решение по выбору конкретного методапринимается разработчиком программы. В общем случае, для разных библиотек можновыбирать разные методы.

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

Загрузчик способенотслеживать двойные обращения и обеспечивать доступ к библиотечным компонентамвсем работающим программам.Выполнение функций динамическим загрузчиком возможно только в томслучае, если загружаемая библиотека или объектный модуль имеют определеннуюструктуру, содержащую в себе информацию, необходимую для трансляции адресов.Большинство современных редакторов связей могут работать в режиме формированиятаких библиотек и модулей. Непосредственная загрузка динамических объектов впамять выполняется настраивающим загрузчиком, при этом их программная частьоказывается доступной всем исполняемым программам, а часть, содержащая данныедублируется для каждой исполняемой программы так, как будто она являетсяединственной программой, использующей динамически загружаемые объекты.Формат файлов динамических библиотек полностью зависит от операционнойсистемы, он близок к формату исполняемых файлов.

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

Вместо них в программывставляются команды обращения к функциям операционной системы, которыеобеспечивают обращения к компонентам динамических библиотек. Эти команды могутвставляться автоматически, что предполагает проведение динамической загрузки вмомент запуска основной программы, либо “вручную” самим разработчикомпрограммы, что обеспечит реализацию динамической загрузки в момент реальногообращения к библиотечным компонентам. Компоненты, к которым завершены всеобращения, могут удаляться операционной системой из памяти машины. Вновь онипопадают в память только после очередного реального обращения к ним.Динамические библиотеки имеют множество преимуществ перед статическими.Их составляющие не должны включаться в состав исполняемых файлов программ, чтозначительно сокращает их размеры. Этого преимущества удается добиться за счетразработки специального механизма операционной системы, который выполняетподключение фрагментов одних программ к другим в момент их выполнения.Известным недостатком динамических библиотек является зависимостьпрограммного обеспечения от библиотечных объектов, непосредственно не связанныхс этим обеспечением, то есть зависимость программ пользователей от неизвестных имдинамических библиотек.

Для выполнения программ, основанных на динамическомподключении библиотек, необходимо принимать специальные меры, гарантирующиеналичие всех необходимых библиотечных компонентов в составе той вычислительнойсистемы, где предполагается исполнять эти программы. Одновременно возникаетзависимость самой логики работы программ от подключаемых к ней библиотек.Изменения в библиотеках осуществляются системными средствами, не зависящими отразработчиков прикладного обеспечения, а эти изменения могут влиять на работупрограмм, которые сами не менялись перед этим продолжительное время.65Это означает, что использование динамических библиотек налагаетобязательства, как на их разработчиков, так и на их пользователей.

Разработчикприкладной программы должен тщательно придерживаться правил, предложенныхразработчиками библиотек. В свою очередь, разработчики библиотек, внося вбиблиотеки изменения, должны предпринимать меры, чтобы эти измененияминимальным образом сказывались на прикладных программах, основанных напредыдущих версиях библиотеки. Одним из результатов таких мер является то, что всовременных библиотеках имеются специальные библиотечные компоненты, которыепозволяют точно определить версию данного библиотечного набора компонентов.Описанное повышение эффективности использования памяти вычислительнойсистемы происходит за счет увеличения времени выполнения программ, поскольку надинамическую загрузку приходится тратить дополнительное время.3.6.3. Основные типы библиотекНикакая современная система программирования не может обойтись безвстроенных в нее библиотечных средств.

Для широкого распространениябиблиотечных средств в программировании имеются, по крайней мере, две причины:••необходимость оказывать поддержку программам во время их исполнения навычислительной машине,потребность накапливать полезные программы и передавать их другимпользователям,нераскрываядеталейреализацииалгоритмов,запрограммированных в них.По функциональному наполнению все используемые в составе современныхсистем программирования библиотеки можно классифицировать следующим образом:•••библиотеки функций, процедур и макроопределений,библиотеки классов,библиотеки компонентов.3.6.3.1. Библиотеки функций, процедур и макроопределенийМногие программы, прошедшие компиляцию, нуждаются в поддержке во времявыполнения. Почти все языки программирования включают в себя некоторыеэлементы, реализация которых подразумевает, что во время выполнения программыдолжна обеспечиваться связь с операционной системой.

Характеристики

Тип файла
PDF-файл
Размер
1,2 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6310
Авторов
на СтудИзбе
312
Средний доход
с одного платного файла
Обучение Подробнее