Главная » Все файлы » Просмотр файлов из архивов » PDF-файлы » Разработка DLL (курсовая работа)

Разработка DLL (курсовая работа)

PDF-файл Разработка DLL (курсовая работа) Операционные системы (5594): Курсовая работа - 8 семестрРазработка DLL (курсовая работа): Операционные системы - PDF (5594) - СтудИзба2015-08-21СтудИзба

Описание файла

PDF-файл из архива "Разработка DLL (курсовая работа)", который расположен в категории "". Всё это находится в предмете "операционные системы" из 8 семестр, которые можно найти в файловом архиве НИУ «МЭИ» . Не смотря на прямую связь этого архива с НИУ «МЭИ» , его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "операционные системы" в общих файлах.

Просмотр PDF-файла онлайн

Текст из PDF

Московский Энергетический Институт(технический университет)Курсовая работапо теме:«Разработка DLL».Выполнил: Пантелеев А. А-5-03.Проверил: Калитин Сергей Серафимович.23.04.2007г.Библиотеки динамической компоновкиВ этой главе мы расскажем вам о важнейшем механизме, лежащем в основе операционнойсистемы Windows - механизме библиотек динамической компоновки DLL. Если вы уже заметили,в Windows имеется много важнейших механизмов и систем, например, только что рассмотреннаясистема управления памятью, интерфейс графических устройств GDI, система динамическогообмена данными DDE, система управления шрифтами, интерфейсы для мультимедиа, системадинамической вставки и привязки объектов OLE, и так далее, и так почти до бесконечности.Однако будем терпеливыми, и постараемся сосредоточиться, так как вся операционная системаWindows и все ее драйверы (кроме виртуальных), а также другие расширения в некотором смыслеесть ни что иное, как набор библиотек динамической компоновки.

Редкое крупное приложениеWindows обходится без собственных библиотек динамической компоновки, и ни одноприложение не может обойтись без вызова функций, расположенных в таких библиотеках. Вчастности, все функции программного интерфейса Windows находятся именно в библиотекахдинамической компоновки DLL (Dynamic-Link Libraries ).Что же это за библиотеки и почему они имеют такое большое значение?3.1. Статическая и динамическая компоновкаВспомним старые добрые времена, когда операционная система MS-DOS и компьютеры спамятью 1 Мбайт удовлетворяли запросы подавляющего большинства пользователей.

Каксоздавался загрузочный файл программы для MS-DOS? Вы готовили исходный текст приложенияна своем любимом языке программирования (Си, Паскаль, Модула-2 и т. д.), затем транслировалиего для получения объектного модуля. После этого в дело включался редактор связей, которыйкомпоновал объектные модули, полученные в результате трансляции исходных текстов и модулииз библиотек объектных модулей, в один exe-файл. В процессе запуска файл программызагружался полностью в оперативную память и ему передавалось управление.Таким образом, редактор связей записывал в файл программы все модули, необходимые дляработы. Для обращения к внешним по отношению к программам модулям операционной системыMS-DOS и модулям BIOS использовался механизм программных прерываний.

В любой моментвремени в оперативной и постоянной памяти компьютера находился весь код, необходимый дляработы как запущенной программы, так и самой операционной системы MS-DOS.Если же программа была сложной и не помещалась целиком в 640 Кбайт памяти, на помощьприходили оверлеи, позволяющие загружать в оперативную память только те сегментыпрограммы, которые требовались для решения текущей задачи.В среде мультизадачной операционной системы, такой как Windows, OS/2 или UNIX, статическаякомпоновка неэффективна, так как приводит к неэкономному использованию очень дефицитногоресурса - оперативной памяти. Представьте себе, что в системе одновременно работают 5приложений, и все они вызывают такие функции, как sprintf, memcpy, strcmp и т.

д. Еслиприложения были собраны с использованием статической компоновки, в памяти будут находитсяодновременно 5 копий функции sprintf, 5 копий функции memcpy, и т. д (рис. 3.1). А ведьпрограммы могут использовать и более сложные функции, например, предназначенные дляработы с диалоговыми панелями или масштабируемыми шрифтами!Рис.

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

Те же функции, которые нужны всем (или многим) программам, работающимпараллельно, можно вынести в отдельные файлы - библиотеки динамической компоновки, ихранить в памяти в единственном экземпляре (рис. 3.2). Эти файлы можно загружать в памятьтолько при необходимости, например, когда какая-нибудь программа захочет вызвать функцию,код которой расположен в библиотеке.Рис. 3.2. Вызов функции при использовании динамической компоновкиВ операционной системе Windows версии 3.1 файлы библиотек динамической компоновки (DLLбиблиотеки) имеют расширение имени dll, хотя можно использовать любое другое, например, exe.В первых версиях Windows DLL-библиотеки располагались в файлах с расширением имени exe.Возможно поэтому файлы krnl286.exe, krnl386.exe, gdi.exe и user.exe имеют расширение имениexe, а не dll, не смотря на то, что перечисленные выше файлы, составляющие ядро операционнойсистемы Windows, есть ни что иное, как DLL-библиотеки.Механизм динамической компоновки используется не только в системе Windows.

Более того, онбыл изобретен задолго до появления Windows. Например, в мультизадачныхмногопользовательских операционных системах VS1, VS2, MVS, VM, созданных длякомпьютеров IBM-370 и аналогичных (вспомните добрым словом ушедшую в прошлое серию ЕСЭВМ и операционные системы SVS, TKS, СВМ, МВС), код функций, нужных параллельноработающим программам, располагается в отдельных библиотеках и может загружаться принеобходимости в специально выделенную общую область памяти.

Операционная система OS/2также работает с DLL-библиотеками.3.2. DLL-библиотеки в операционной системе WindowsФормат DLL-библиотеки почти идентичен формату загрузочного модуля приложения Windows,однако вы не можете "запустить" DLL-библиотеку на выполнение, как обычное приложение. Иэто понятно, так как назначение DLL-библиотек другое - они служат хранилищем функций,вызываемых приложениями во время работы. Функции, расположенные в DLL-библиотеках,могут вызывать функции, которые находятся в других библиотеках (рис.

3.3).Рис. 3.3. Вызов функций из DLL-библиотекДля того чтобы вам были понятны отличия между приложением и DLL-библиотекой, уточнимтакие понятия, как задача (task ), копия приложения (instance ) и модуль (module ).Когда вы запускаете несколько копий одного приложения, Windows загружает в оперативнуюпамять только одну копию кода и ресурсов. Для каждой копии приложения создается отдельныйсегмент данных, стек и очередь сообщений (рис.

3.4).Рис. 3.4. Копии приложения и модуль приложенияЗадачу (task) можно рассматривать как совокупность виртуального процессора и ресурсов, такихкак стек, регистры процессора, глобальная память, очередь сообщений и т. д. В операционнойсистеме Windows имеется база данных запущенных задач, в которой хранится вся относящаяся кзадаче информация, например, идентификатор приложения, идентификатор модуля приложения ит.

д.Копия приложения (instance) является контекстом, в котором выполняется модуль приложения.Идентификатор копии приложения, который вы получаете через параметр hInstance функцииWinMain, является идентификатором сегмента данных DGROUP, используемого при выполнениипрограммного модуля.Модуль приложения (module) состоит из исполнимого кода и ресурсов. Внутри Windows есть базаданных модулей, в которой хранится такая информация, как ссылки на экспортируемые функции,расположение сегментов кода и сегментов, содержащих ресурсы. Так как модуль приложения неизменяется (сегменты кода и ресурсов не изменяются), все запущенные копии одного приложениямогут им пользоваться.DLL-библиотека также является модулем.

Она находится в памяти в единственном экземпляре,содержит сегменты кода и ресурсы, а так же один сегмент данных (рис. 3.5). Можно сказать, чтодля DLL-библиотеки создается одна копия (instance), состоящая только из сегмента данных, иодин модуль, состоящий из кода и ресурсов.Рис. 3.5. Структура DLL-библиотеки в памятиDLL-библиотека, в отличие от приложения, не имеет стека и очереди сообщения.Функции, расположенные в модуле DLL-библиотеки, выполняются в контексте вызвавшей ихзадачи.

При этом они пользуются стеком копии приложения, так как собственного стека в DLLбиблиотеке не предусмотрено.Тем не менее, функции, расположенные в DLL-библиотеке, пользуются сегментом данных,принадлежащей этой библиотеке, а не копии приложения. При этом возникают трудности,связанные с тем, что сегментный регистр SS, с помощью которого адресуется стек, указывает настек копии приложения, а регистр DS - на сегмент данных DLL-библиотеки. В обычныхприложениях Windows регистры SS и DS адресуют один и тот же автоматический сегментданных.

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