В. Столлингс - Операционные системы (1114679), страница 72
Текст из файла (страница 72)
С этой не „, ебуется реально во время ис и .. й лью модуль заг жается в носительном ви память со ссылка~и , е (рис. 7.15 е)> и тол ьном выполнении команд Ро изводи тельна тный адрес. Для т обы такой метод не Реса (о чем га буется аппа атная па ..ы и лениЯ абсолУотнага рилось в разделе 7 2). Дик амт грамма м г4 и .еское вычис чение адресов обеспечивает высокую гибко может быть загружена в люб ги кость — проамма мо ожет быть выг жена и ена в любую область основной памяти прич ричем проаДРугое, ружена из основной памяти, а позднее— места в памяти.
нее — загружена в а 7. у - правление памятью Ионовича ~ОМПОНОВЩХ вщик получает в качестве входа набор объектных модулей"' т яя их ос сяове загружаемый модуль объединением множества моду данных для последующей передачи его загрузчику. В каждом о ~е могут и. г иметься ссылки на память В других модулях. Каждая т ~ескомаоя ояованном модуле может быть выражена только символьио .
ик создает единый загружаемый модуль, который обьедияяет все '"' бъектные модули. Каждая ссылка из одного модуля в другой дол шеяа и транслирована из символьного адреса в ссылку на ячейку," го загружаемого модуля. Например, модуль А яа ряс. 7.16,а содер ' роцедуры из модуля В. Когда эти модули комбинируются в един ,1й модуль, символьная ссылка на модуль В заменяется конкретной ,рес точки входа Б в загрузочном модуле. ЯЯ уль В б) Загрухаемьй модуль Рис, 7.16. Компоновка РедактоР связей Природа кОмп()невки па ш~м~~емого МодуЛя И ВРЕМ яи ком""" и ~~~ табл, 7.21б).
Если требу„,я ся создание перемещаемо м ля ° то комПОНОвка обЫЧИО ВЫПолняет ра™- аждый скомпи дпроваиный объектный модуль создает ссылками относительно начала объ,ого модуля. Все эти модули объединяют я с в единыи перемещаемый ужаемый модуль, в котором все ссылки даны аны относительно начала единого „л„. Такой модуль можно использовать дл и я переносимой загрузки или дина- „ской загрузки Времени исполнения, Компоновщик, который создает перемещаемый а мы загрузочный модуль, часто ывается редактором связей (на рис. 7.16 проиллю проиллюстрирована его работа). Динамический компоновщик Как и в случае загрузки, некоторые функции цни компоновки могут быть отложены.
МетОд, ПРи которОМ КОМПОНОВка ОтдсльнЫХ н ~х внешних модулей откладыва'тся на Время после создания загружаемого мо ого модуля, называется динамической : компоновкой 16упапас 11пЫпа). Таким образо о разом, загружаемый модуль содержит неразрешенные обращения к другим программ граммам, которые могут быть разрешены либо в процессе загрузки, либо во время работы программы. При динамическом связывании во в емя й е я загрузки выполняются следующие .
де стзия. Загрузочный мо ль мо ду ' дуль приложения) считывается в память. Лю: бые обращения ко внешнему (целевому) модулю п : загрузчиком, его заг узке и п ю приводят к поиск этого мо р реобразованию ссылки в относительный с считываемый от начала мо ля п л . ный адрес, отсвязывания имеется я и одуля приложения. У такого динамического о б спосо а р д преимуществ по сравнению со статической загрузкой. В'этом случае обле гчается возможность внесения изменений дуль, который, нап име, может в целевои мор р, представлять собой утилиту операционной системы. В случае статической компоновки изменения в я таком модуле пода это не только неэ могут потребовать полной сборки всего модуля п илож приложения заново, бол олька неэффективно, но зачастую и невозможно— льшияство комме ческих и ог олька неэффе — так, нап име р ро рамм Выпускаются в виде загрузочных модулей, и их исходные тексты и б л ", о ъектные модули попросту недоступны.
Наличие целев путем приво ого кода в динамически связываемом ай . о а ле естественным г амм риводит к совместном и у спользованию э~ого кода различными и раммами. Поскольку опе а и н "мм: р ционная система загружает и связывает целевой Всполья е ОД С ПрИЛОжЕНИеМ, Оиа МОжет ас О р и знать, что один и тот же целевой код ' ользуется несколькими приложениям система мо р ниями одновременно. Операционная для т ема может использовать имею юся ого что ы за зи щу в ее распоряжении информацию 3 У ать ее с н б гру ть в память только одну копию цел в е ого кода и свякаждого и несколькими приложениями вместо того чтобы загружать для го приложения отдельную копию. езаВИсим легче ым производителям и ог а расширять нкционал н р раммного обеспечения становит я с онн ых систем как н р, 1 ь~:ц нальность таких распространенных н х операци- НОВУЮ ПОЛ например, 1.1пнх.
р, 1 . азработчик может предоставить полезную функцию для яда и и компон уемого модуля. р да риложений в Виде динамически Часть , а7 правление памятью три динамической компоновке времени исполнения часть связей ос решенной до времени исполнения. При выполнении вызова подпрогр .утствующего модуля операционная система находит этот модуль, з вязывает его с вызывающим модулем. ~ак мы уже видели, динамическая загрузка позволяет перемещать в,.
,ь модуль целиком; однако структура модуля является статической''" 4, неизменной как во время работы процесса, так и при различных ,сса. Однако в некоторых случаях до начала выполнения невозмож' ' какие именно объектные модули будут необходимы. Такие сйту' ,«в приложениях обработки транзакций, таких, как система резер виабилетов или банковские приложения. Природа транзакций опре . именно модули требуются для выполнения программы; именно тем загружаются в память и связываются с основной программой. инство такого динамического связывания состоит в том, что д ,аммы не требуется выделять память до тех пор, пока эти модули действительно необходимыми.
Это свойство динамического свя ~ьзуется при поддержке системы сегментации. !«,роме того, приложению не надо знать ни имен всех модулей, подпрограмм, которые могут быть им вызваны. Например, у нас амма для построения диаграмм, которая может выводить результа '. ы на различных плоттерах, каждый из которых управляется сво ' й' ' «рэйверов. Приложение может узнать о том, какой плоттер испол «й системе, от другого процесса или из конфигурационного файла и'." ь соответствующие динамические компонуемые драйверы. Это и икенпю использовать новые плоттеры, которых попросту могло ие'.
ь в тот момент, когда была завершена разработка самого приложе ГЛАВА Ви Ртуальная память .1. Аппаратное обеспечение и управляющие 8.2. П * Рограммное обеспечение операционной систем 8 3 Управление памятью в Цаги и 8о1 8.4. Управление памятью в Ьшпх 8.5. Управление памятью в %'йпйов«в 2000 8.6. Рез юме, ключевые термины и контрольные вопросы 8.7. Рекомендуемая литература 8.8. Задачи Приложение. Хеп«'-таблицы ение памятью", вы познакомились с концепциями -лаве 7, "Управление гюй организации памяти и сегме ментапии и анализом их недостатков,:.. обсуждению виртуальной памяти. Трудность изуче ы перейдем к о су авление памятью представляет собой заключается в том, что управ между аппаратным обеспечением (процессором) и программным обес е апионной системы.
перва . а " .. С мы остановимся на рассмотрении апп накомимся с использованием страничной ' га вир ' ", накоми ~рту-льной памяти, познакоми М сегментации и их ком и б нации а затем обратимся к вопроса., Р и туальной памяти в операционных системах, три разработке средств виртуальн . АППАРАТНОБ ОБЕСПБЧЕНИБ "'::: И УПРАВЛЯЮЩИЕ СТРУКТУРЫ;-' чную организацию и сегментацию с фик равнивая простую страничну и динамическим расп— аспределением памяти, мы видим базу для ф.' ' управления памятью. ключевыми для ' ' .ого прорыва в технологии упра ся следующие х р арактеристики страничной организации и сегмента Все обращения к памяти в рамка мках процесса представляют собой ло ' адреса, которые динамич тически транслируются в физические адреса что процесс может быть выгружен н "' исполнения. Это означает, чт в емя аботы он и " вновь загружен .
н в основную память, так что во р р ходиться в разных местах основной памяти. П цесс может быть разбит на ряд ч ( р астей (ст аниц или сегментов),. ро ти еди ), не обязательно должны р располагаться в основнои памя ди ансл рывным блоком. то о е . 3 б спечивается за счет динамической тр сл ресов и использования таблицы стр ц ани или сегментов. Теперь перейдем к нашему прорыву в техноло у р гии п авления пам Ф в системе выполняются указанные р ха актеристики, то налиФ дениц или сегментов процесса в основной памя ти одновременно М, ! ательным условием.