Главная » Просмотр файлов » Э. Таненбаум - Архитектура компьютера

Э. Таненбаум - Архитектура компьютера (1127755), страница 149

Файл №1127755 Э. Таненбаум - Архитектура компьютера (Э. Таненбаум - Архитектура компьютера) 149 страницаЭ. Таненбаум - Архитектура компьютера (1127755) страница 1492019-05-11СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Динамическая компоновка в М1Л.Т!СЗ В системе МПБТ1СЯ с каждой программой соотносится сегмент, так называемый сегмент компоновки (11пйайе зеяшепт). Он содержит один информационный блок для каждой процедуры, которая может быть вызвана. Этот блок начинается со слова, зарезервированного для виртуального адреса процедуры, за ним следует имя процедуры, которое сохраняется в виде символьной строки. При динамической компоновке вызовы процедур во входном языке транслируются в команды, которые путем косвенной адресации обращаются к первому слову соответствующего блока, как показано на рис.

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

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

Следовательно, при динамической компоновке компоновщик вызывается только тогда, когда процедура вызывается впервые. Вызывать его повторно уже не нужно. Компоновка и загрузка 589 Сегмент процедуры А „вя Сегмент компоновки еин Недействительное слово формация о компоновке для процедуры А!гЧ Имя процедуры хранится в виде символьной строки Сегмент процедуры А Сегмент компоновки Я процедуре ЕАВТН Рис.

7.6. Динамическая компоновка: процедура ЕАЙТН до вызова (а); процедура ЕАЙТН после вызова и компоновки (6) Динамическая компоновка в И!пдошла Все версии ЪУшг(отуз, в том числе %'шг(очз ХТ, поддерживают динамическую компоновку. При динамической компоновке используется специальный файловый формат, который называется Р1Л. (Рупапис 1лй )агату — библиотека 590 Глава 7. Уровень ассемблера Пользовательский процесс 1 Пользовательский процесс 2 Рис.

7.7. деа процесса иопользуют один Гтгт.-файл РЕ).-файл строится компоновщиком из группы входных файлов. Построение РРЕ напоминает создание исполняемого двоичного кода, только при создании РЕЕ компоновщику передается специальный флаг, сообщаютций о том, что требуется именно библиотека РЕП РЕ).-файлы обычно собираются из набора библиотечных процедур, которые могут понадобиться нескольким процессам.

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

Библиотеки динамической компоновки могут содержать процедуры, данные или то и другое вместе. Обычно они применяются для того, чтобы два и более процессов могли разделять процедуры и данные библиотеки. Большинство РР1.-файлов имеют расширение .с11, но встречаются и другие расширения, например .опт (для библиотек драйверов — дггкег 11Ьгапез) и .1оп (для библиотек шрифтов — 1опг 11Ьгапез).

Самая распространенная форма РЕŠ— библиотека, состоятцая из набора процедур, которые могут загружаться в память и к которым имеют доступ несколько процессов одновременно. На рисунке 7.7 показаны два процесса, которые совместно используют РЕ).-файл, содержащий 4 процедуры, А, В, С и Р. Программа 1 использует процедуру А; программа 2 — процедуру С, хотя они вполне могли бы использовать одну и ту же процедуру. Компоновка и загрузка 591 Кроме того, такой подход упрощает обновление библиотечных процедур, причем даже после того, как использующие их программы скомпилированы и скомпонованы. Для коммерческих программных пакетов, где входная программа пользователям обычно недоступна, наличие Пг.Е-файлов означает, что поставщик программного обеспечения сможет исправлять обнаруженные программные ошибки, просто распространяя новые ПЕЕ-файлы через Интернету, причем при этом не потребуется никаких изменений в двоичных кодах основных программ.

Основное различие между ПЕ(. и исполняемой двоичной программой состоит в том, что Р) Е-файл не может запускаться и работать сам по себе (поскольку у него нет главной программы). Он также содержит совершенно другую информацию в заголовке. Кроме того, РЕЕ-файл имеет несколько дополнительных процедур, не связанных с процедурами в библиотеке. Например, существует одна процедура, которая вызывается автоматически всякий раз, когда новый процесс связывается с ))ЕЕ-файлом, и еще одна процедура, которая вызывается автоматически всякий раз, когда связь процесса с ПЕЕ-файлом разрывается. Эти процедуры могут выделять и освобождать память или управлять другими ресурсами, необходимыми Р1.(.-файлу.

Программа может установить связь с ПЕЕ-файлом двумя способами: путем неявной или явной компоновки. При неявной компоновке пользовательская программа статически компонуется со специальным файлом, так называемой библиотекой импорта. Библиотека импорта создается специальной утилитой, предназначенной для извлечения определенной информации из РЕЕ-файла.

Библиотека импорта предоставляет связующее звено, через которое пользовательская программа получает доступ к РЕЕ-файлу. Пользовательская программа может быть связана с несколькими библиотеками импорта. Когда программа, в которой имеет место неявная компоновка, загружается в память для исполнения, %"1пг(очгз проверяет, какие г)ЕЕ-файлы ей требуются и все ли они находятся в памяти. Те файльк которых еще нет в памяти, немедленно туда загружаются (но необязательно целиком, поскольку они разбиты на страницы). Затем производятся определенные изменения структур данных в библиотеках импорта так, чтобы можно было определить местоположение вызываемых процедур (это похоже на изменения, которые иллюстрирует рис. 7.6).

Их тоже нужно отобразить на виртуальное адресное пространство программы. С этого момента пользовательскую программу можно запускать, поскольку она может вызывать процедуры из г)1Е-файлов, как будто они статически с ней связаны. Альтернативой неявной является явная компоновка. Явная компоновка не требует ни библиотек импорта, ни одновременной загрузки РЕЕ-файлов с пользовательской программой. Вместо этого пользовательская программа делает явный вызов прямо во время работы, чтобы установить связь с РЕ).-файлом, а затем совершает дополнительные вызовы, чтобы получить адреса процедур, которые ей требуются. Когда все это сделано, программа совершает финальный вызов, чтобы разорвать связь с БЕЕ-файлом.

Когда последний процесс разрывает связь с РЕ1-файлом, этот файл может быть выгружен из памяти. 592 Глава 7. Уровень ассемблера Важно понимать, что процедура в ?)Е?.-файле не имеет отличительных признаков (как процессы или программные потоки). Она работает в потоке вызывающей программы и для своих локальных переменных использует стек вызывающей программы. Она может содержать статические данные, специфичные для процесса (а также обшие), а в остальном работает, как статически скомпонованная процедура.

Единственным существенным различием является способ установления связи. Динамическая компоновка в 0Н!Х В ?1?ч?Х используются библиотеки коллективного доступа, по сути напоминающие библиотеки ?)?Л. Ъшоовз. Как и ?НЛ.-файл, библиотека коллективного доступа представляет собой архивный файл, содержащий несколько процедур или модулей данных, которые присутствуют в памяти во время работы программы и одновременно могут быть связаны с несколькими процессами. Стандартная библиотека С и большинство сетевых программ являются библиотеками коллективного доступа.

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

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

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

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