Иерархическая структура памяти является традиционным решением проблемы хранения больших объемов данных (рис. 2.9).
Рис.2.9
По мере продвижения сверху вниз по иерархии меняются три параметра. Во-первых, увеличивается время доступа. Доступ к регистрам занимает несколь¬ко наносекунд, доступ к кэш-памяти — немного больше, доступ к основной памя¬ти — несколько десятков наносекунд. Дальше идет большой разрыв: доступ к дискам занимает по крайней мере 10 мкс, а время доступа к магнитным лентам и оптическим дискам вообще может измеряться в секундах (поскольку эти нако¬пители информации еще нужно поместить в соответствующее устройство).
Во-вторых, растет объем памяти. Регистры могут содержать в лучшем случае 128 байт, кэш-память — несколько мегабайтов, основная память — десятки тысяч мегабайтов, магнитные диски — от нескольких единиц до нескольких десятков гигабайтов. Магнитные ленты и оптические диски хранятся автономно от ком¬пьютера, поэтому их совокупный объем ограничивается только финансовыми возможностями владельца.
В третьих, увеличивается количество битов, на 1 доллар стоимости.
Динамические библиотеки (DLL, Dynamic Link Library) играют важную роль в функционировании ОС Windows и прикладных программ. Они представляют собой файлы с откомпилированным исполняемым кодом, который используется приложениями и другими DLL. (Слайд 2)
Реализация многих функций ОС вынесена в динамические библиотеки, которые используются по мере необходимости, обеспечивая тем самым экономию адресного пространства. DLL загружается в память только тогда, когда к ней обращается какой-либо процесс.
По существу динамические библиотеки отличаются от исполняемых файлов только одним, они не могут быть запущены самостоятельно. Для того чтобы динамическая библиотека начала работать, необходимо, чтобы ее вызвала уже запущенная программа или работающая DLL. (Слайд 3)
Обычно в динамические библиотеки выносятся группы функций, которые применяются для решения сходных задач. Кроме этого, в них можно хранить и использовать разнообразные ресурсы — от строк локализации до форм.
Динамическая библиотека может использоваться несколькими приложениями, при этом не обязательно, чтобы все они были созданы при помощи одного языка программирования. (Слайд 4)
Разновидностью динамических библиотек являются пакеты Delphi, предназначенные для хранения кода компонентов для среды разработки и приложений.
Применение динамических библиотек позволяет добиться ряда преимуществ:
уменьшается размер исполняемого файла приложения и занимаемые им ресурсы;
функции DLL могут использовать несколько процессов одновременно;
управление динамическими библиотеками возлагается на операционную систему;
внесение изменений в DLL не требует перекомпиляции всего проекта;
одну DLL могут использовать программы, написанные на разных языках.
(Слайд 5)
При разработке динамических библиотек в среде Delphi удобно использовать группу проектов, которая включает проект приложения и проекты динамических библиотек.