Cтраница 2
Многозадачность вносит две существенные проблемы, требующие решения, - это настройка адресов для перемещения программы в памяти и защита. Посмотрите на рис. 4.2. Из рисунка становится ясно, что разные задачи будут запущены по различным адресам. Когда программа компонуется ( то есть в едином адресном пространстве объединяются основной модуль, написанные пользователем процедуры и библиотечные процедуры), компоновщик должен знать, с какого адреса будет начинаться программа в памяти. [16]
Типы данных шаблонной переменной, указанные в объявлении блока и при настройке адреса в ресурсах, обязаны совпадать. [17]
Супервизоры второго уровня, находящиеся в виртуальной памяти пользователя, выполняются в режиме настройки адресов, подвергаются квантованию времени, могут постранично загружаться в основную память и удаляться из нее. [18]
О программе или структуре данных, которая может быть размещена в любом месте памяти без настройки адресов. [19]
Вполне возможно, программист пожелает адресоваться к меньшим объемам памяти внутри больших областей, не используя механизм настройки адресов. [20]
Программа в виде, пригодном для загрузки и выполнения; содержит программу в машинном коде и информацию для настройки адресов. [21]
Как и во многих других командах, для модификации отдельных частей полей, используемых командой UNPK, может применяться указатель длины и настройка адреса. [22]
![]() |
Исполняемый файл ( а. с вирусом в начале ( б. с вирусом в конце ( в. с вирусом, распределенным по свободным участкам программы ( г. [23] |
Windows, а также почти все современные двоичные форматы в UNIX позволяют программам состоять из нескольких сегментов текста и данных, которые загрузчик собирает в памяти и выполняет настройку адресов на лету. В некоторых системах ( например, Windows) размеры всех сегментов ( секций) кратны 512 байт. Если сегмент заполнен не целиком, компоновщик дополняет секцию нулями. Вирус, знакомый с этим, может попытаться спрятаться в этих промежутках. Если ему удается целиком запихать себя в свободные участки исполняемого файла, размер этого файла остается неизменным. А это является большим преимуществом, так как такой вирус сложнее обнаружить. Вирусы, использующие этот принцип, называются полостными вирусами. Конечно, если загрузчик не загружает пустые области в память при запуске программы, вирусу понадобится какой-либо другой способ, чтобы запуститься. [24]
Нерезидентная часть содержит подпрограмму обработки команд ДОС, поступающих с терминала или из командных файлов, загрузчик внешних программ, обеспечивающий чтение очередной программы с диска в ОЗУ, настройку адреса и переход на ее выполнение. [25]
Объектные модули, полученные в результате трансляции, не могут быть немедленно использованы для выполнения на машине, так как кроме текста программы они содержат некоторую дополнительную информацию, используемую для сборки программы и настройки адресов. Поэтому объектные модули должны быть отредактированы. Редактирование программы выполняется Редактором. [26]
Все загрузочные модули построены таким образом, что их можно брать из библиотеки и загружать в произвольное место оперативной памяти. При этом происходит настройка адресов, и модули становятся готовыми к выполнению. [27]
Заглушка вместо входа модуля G, занимающегося настройкой адресов, может содержать лишь оператор возврата, а вместо модуля С - печатать свои входные параметры. Поскольку следует тестировать и обработку ошибок в модуле А, нужны одна или несколько заглушек для функции настройки адресов - при вызове они должны возвращать код соответствующей ошибки. Это указывает на один из недостатков использования заглушек. При тестировании различных условий в программах часто требуется, чтобы модуль выдавал разные наборы выходных данных. [28]
При децентрализованном управлении адресованием адрес следования груза задается оператором или диспетчером при загрузке подвески конвейера. Оператор сам устанавливает на адресоносителе подвески необходимые комбинации элементов адресования или же нажимает соответствующий набор кнопок на пульте настройки адреса, когда адрес устанавливается автоматически адресователем при прохождении через него подвески с адресоносителем. [29]
Программа-загрузчик предназначена для активации в работу программ пользователя. Для этого загрузочные модули, являющиеся результатом трансляции программы пользователя с языка программирования в машинные команды, помещаются в область памяти, указываемую загрузчику управляющей программой ОС, и производится настройка адресов машинных команд на конкретное место МОЗУ. Совместно с загрузчиком работает редактор внешних связей ( РВС), при помощи которого происходит объединение независимо транслированных программных блоков в единую рабочую программу. После того как все загрузочные модули будут помещены в МОЗУ, настроены по месту их расположения и между ними установлены связи, управляющая программа ОС передает управление сформированной программе пользователя и контролирует ход ее работы, не допуская аварийных ситуаций, таких как попытка произвести запись в поле программы другого пользователя или переполнение разрядной сетки ЭВМ. [30]