
- •1. Функции современных мп, реализованные аппаратурой и программами.
- •2. Вызовы функций в Windows.
- •1. Задачи, решаемые спо про распределении ресурсов вычислительной системы.
- •2. Windows - динамически вызываемые библиотеки.
- •2.Характеристика системы прерывания
- •1. Определение языкового процессора. Виды языковых процессоров.
- •2. Роль системы прерывания в современных компьютерах.
- •1. Принципы работы Ассемблера
- •2. Режимы пакетной обработки и разделения времени.
- •1.Принципы работы компилятора.
- •2.Прерывания при вводе и выводе данных.
- •1. Принципы работы интерпретатора.
- •2. Программные прерывания.
- •1. Стэк.
- •2. Временные прерывания.
- •1. Очередь.
- •2. Дисциплины обслуживания прерываний.
- •1. Магазин.
- •2. Общая структура системы прерывания.
- •1. Функции операционной системы при управлении языковым процессором.
- •2. Функционирование системы прерывания.
- •1. Объектный модуль.
- •1. Загрузочный модуль.
- •1. Редактирование связей.
- •1. Разрешение внешних ссылок.
- •2.Многозадачность и многопоточность.
- •1. Выполнение задания.
1. Объектный модуль.
ОБЪЕКТНЫЙ МОДУЛЬ (object module). Программный модуль, являющийся результатом компиляции исходного модуля. О. м. представляет собой последовательность машинных команд, готовую к объединению с другими О. м. с помощью редактора связей (компоновщика). О. м. реализует машинными командами в точности те действия, которые были описаны в исходном модуле посредством операторов исходного языка системы программирования. Обычно О. м. выполнен в относительных (иногда в абсолютных) адресах и обладает свойством перемещаемости. Если О. м. не нуждается в редактировании связей и представляет законченную программу, готовую к загрузке и исполнению, то он является загрузочным модулем. Так как О. м. не нужна трансляция и они могут непосредственно обрабатываться редактором связей, то, в целях экономии машинного времени и памяти ЭВМ, многие подпрограммы и часто используемые другими программами программные модули хранятся в библиотеках программ в виде О. м.
Объектный модуль – код программы после трансляции (компиляции), преобразованный в машинные коды. Помимо них содержит внешние ссылки и информацию для редактора связей и может также содержать отладочную информацию (debug info).
№17
1. Загрузочный модуль.
ЗАГРУЗОЧНЫЙ МОДУЛЬ (load module). Программный модуль в виде, пригодном для загрузки и выполнения. 3. м. получается из объектного модуля при редактировании связей и представляет собой программу в виде последовательности машинных команд, имеющую принятый для данной операционной системы формат. 3. м. обычно выполнен в относительных (иногда в абсолютных) адресах и содержит информацию для их настройки загрузчиком в соответствии с отведенной для него областью оперативной памяти. 3. м. являются исполняемые файлы
№19
1. Редактирование связей.
Редактирование связей – разрешение внешних ссылок и создание исполняемого модуля из объектных.
Сборкой всех частей программы занимается редактор связей. Он размещает все модули в памяти и настраивает адресные константы внутри них так, чтобы они соответствовали фактическому местоположению в памяти.
Редакторы бывают 3 разновидностей.
1) Загрузчик – загружает объектный модуль и передает управление на точку входа программы.
2) Компоновщик – формирует исполняемый файл, точно соответствующий образу программы в памяти, привязывая его к абсолютным адресам.
3) Компоновщик, генерирующий псевдоперемещаемый код – записывает в исполняемый файл таблицу перемещений (relocation table), где содержатся данные о ячейке внутри кода, которая зависит от местоположения в памяти. Такой исполняемый файл перед запуском программы требует настройки. Этим занимается операционная система, в формате которой создается исполняемый модуль.
№20
1. Разрешение внешних ссылок.
Внешние ссылки из сегмента позволяют получать доступ к данным, которые объявлены в другом модуле. Для объявления внешних ссылок в компиляторах с ассемблера используется директива EXTRN. Пример использования:
EXTRN maybe:far
Статическое и динамическое разрешение внешних ссылок.
Процесс разрешения внешних ссылок на этапе создания исполняемого модуля – статическое разрешение ссылок. Возможно и динамическое подсоедиение нужных модулей на этапе работы программы.
а) Динамически вызываемый загрузчик, т.е. программа вызывает загрузчик и подсоединяет недостающие части. Такой подход невыгоден (сложен и требует много времени)
б) DLL – принцип разделяемых библиотек. DLL – это пакет функций, отредактированный для исполнения в позиционно-независимом стиле. Имеет таблицу всех содержащихся функций. Для работы с ним программа выполняет 1) функцию загрузки DLL, 2)переход по смещению в таблице функций.
№21