Динамическая загрузка - Большая Энциклопедия Нефти и Газа, статья, страница 1
Хорошо не просто там, где нас нет, а где нас никогда и не было! Законы Мерфи (еще...)

Динамическая загрузка

Cтраница 1


Динамическая загрузка ( dynamic loading) означает, что вы загружаете DLL при необходимости и выгружаете ее по окончании использования. Такой способ загрузки DLL также имеет свои достоинства и недостатки. Одним из достоинств является то, что DLL находится в памяти только до тех пор, пока она нужна, что приводит к более эффективному использованию памяти. Другое достоинство - более быстрая загрузка приложения, поскольку не требуется загружать сразу весь необходимый код.  [1]

Динамическая загрузка позволяет изменять функции во время счета. Не подвергшиеся изменению части программы не нужно снова транслировать или загружать.  [2]

Динамическая загрузка DLL в Windows выполняется вызовом API-функции LoadLibrary, осуществляющей поиск DLL в программной папке, в папках, указанных в путях, и в ряде системных каталогов.  [3]

Идея динамической загрузки очень проста. Для модуля выделяется необходимая память во время выполнения программы только в тот момент, когда появилась команда обращения к данному модулю. После того как вызванный модуль проработал, память, занимаемая им, считается свободной и используется для загрузки следующего модуля.  [4]

Использование динамической загрузки имеет дополнительное преимущество в виде ускорения загрузки ваших приложений. Во многих случаях DLL ресурсов загружаются только при необходимости, и выгружаются, когда потребность в них отпадает. В результате ваше приложение использует меньше памяти, чем при размещении ресурсов в исполняемом файле. Недостаток по сравнению со статической загрузкой состоит в том, что ваши пользователи могут заметить небольшую паузу во время загрузки DLL ресурсов. Постарайтесь по возможности опередить события и загрузить DLL в тот момент, когда это будет наименее заметно.  [5]

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

О динамической загрузке программ следует сказать особо. С другой стороны, счетные модули, впервые реализованные на БЭСМ-6, широко используют эти средства.  [7]

Главным недостатком динамической загрузки является то, что от вас требуется гораздо больше работы. Сначала вы должны загрузить DLL, используя функцию LoadLibrary () из API Windows. Затем, окончив работу с DLL, вы должны выгрузить ее с помощью функции FreeLibraryQ. Кроме того ( здесь и начинается основная работа), вам нужно использовать функцию GetProcAddressQ для получения указателя на ту функцию, которую вы хотите вызвать.  [8]

Для DLL ресурсов динамическая загрузка проще, чем статическая, поскольку при желании вы можете вообще не писать никакой код. Она также проще потому, что вам не требуется создавать для DLL библиотеку импорта. Достаточно только использовать LoadLibraryQ, и динамическая библиотека будет в вашем распоряжении.  [9]

Аргументы в пользу динамической загрузки драйверов и против нее весьма интересны и их стоит кратко упомянуть. Главный аргумент в пользу динамической загрузки заключается в том, что клиентам с различными конфигурациями может быть поставлен один и тот же двоичный файл, который автоматически загрузит необходимые ему драйверы, возможно даже по сети. Главный аргумент против динамической загрузки состоит в том, что этот метод противоречит принципам безопасности системы. Если вы управляете защищенным сайтом, например базой данных банка или корпоративным web - сервером, вероятно, вы захотите запретить кому бы то ни было вставлять случайные программы в ядро операционной системы. Системный администратор может хранить исходные тексты операционной системы и объектные файлы на защищенной машине и выполнять все работы по трансляции и компоновки системы на ней, после чего переносить двоичный код ядра на другие машины по локальной сети. Если драйверы не могут загружаться динамически, такой сценарий предотвращает установку в ядро не отлаженной или реализующей чьи-либо злые намерения программы системными операторами или еще кем-либо, кому известен пароль суперпользователя. Более того, в больших системах конфигурация аппаратуры точно известна уже во время компиляции и компоновки операционной системы.  [10]

Аргументы в пользу динамической загрузки драйверов и против нее весьма интересны и их стоит кратко упомянуть. Главный аргумент в пользу динамической загрузки заключается в том, что клиентам с различными конфигурациями может быть поставлен один и тот же двоичный файл, который автоматически загрузит необходимые ему драйверы, возможно даже по сети. Главный аргумент против динамической загрузки состоит в том, что этот метод противоречит принципам безопасности системы. Если вы управляете защищенным сайтом, например базой данных банка или корпоративным web - сервером, вероятно, вы захотите запретить кому бы то ни было вставлять случайные программы в ядро операционной системы. Системный администратор может хранить исходные тексты операционной системы и объектные файлы на защищенной машине и выполнять все работы по трансляции и компоновки системы на ней, после чего переносить двоичный код ядра на другие машины по локальной сети. Если драйверы не могут загружаться динамически, такой сценарий предотвращает установку в ядро не отлаженной или реализующей чьи-либо злые намерения программы системными операторами или еще кем-либо, кому известен пароль суперпользователя. Более того, в больших системах конфигурация аппаратуры точно известна уже во время компиляции и компоновки операционной системы.  [11]

Система ИС-2 построена по принципу динамической загрузки библиотечных подпрограмм в область оперативной памяти, выделяемой программистом. Стандартные программы ( СП), входящие в состав библиотеки ИС-2, писались в машинных кодах в так называемых условных адресах. Условный адрес по смыслу является цифровым именем переменной, и в некоторых случаях его можно рассматривать как относительный, адрес. Условные адреса в момент динамической-загрузки стандартной программы в выделенную область памяти подвергаются настройке по месту. СП, состоит в том, что к коду условного адреса прибавляется константа, вычисляемая в зависимости от места, определенного в памяти для загрузки СП.  [12]

13 Свойства к. [13]

Поскольку в программе будет предусмотрена возможность динамической загрузки базы вопросов / ответов, нам понадобится диалоговое Окно открытия файла. Для этого разместим на форме компонент Open-Dialog категории Dialogs и присвоим ему имя open.  [14]

С другой стороны, наибольшую значимость приобретает использование динамической загрузки в пакетах, включающих формы, что вы увидите к концу этой главы.  [15]



Страницы:      1    2    3    4