- •Вопросы к экзамену по спо
- •Перечислите и охарактеризуйте средства аппаратной поддержки функций ос.
- •Механизм виртуальной памяти и его реализация в процессорах фирмы Интел.
- •Понятие процесса и потока: раскройте и охарактеризуйте.
- •6. Перечислите и охарактеризуйте средства аппаратной поддержки функций ос.
- •7. Механизм виртуальной памяти и его реализация в процессорах фирмы Интел.
- •Страничное распределение
- •Сегментное распределение
- •Свопинг
- •8. Понятие процесса и потока: раскройте и охарактеризуйте.
- •9Двоичное кодирование информации. Представление элементарных типов данных: натуральные числа, целые числа со знаком, числа с плавающей точкой.
- •Странично-сегментное распределение
- •10.Компилятор ассемблер-программ, редактор связей (загрузчик).
- •11.Общая структура машинных команд.
- •12.История развития вт в связи с историей развития системного программного обеспечения.
- •13.Организация ввода-вывода, классификация внешних устройств.
- •14.Константы, метки, условная компиляция.
- •15.Атрибуты сегментов
- •17.Этапы проектирования и выполнения программ.
- •Обработка прерываний. Контекст процесса (потока). Особенности операционных систем реального времени.
10.Компилятор ассемблер-программ, редактор связей (загрузчик).
Компилятор с ассемблера обрабатывает исходный код, преобразуя его в код команд на машинном языке. Результат его работы называется объектным кодом. В объектном коде необязательно находится весь код программы – в нем могут быть т.н. внешние ссылки на библиотечные процедуры или процедуры в других модулях, а также на данные.
Следующий шаг – создание исполняемой программы. Сборкой всех частей программы занимается редактор связей. Он размещает все модули в памяти и настраивает адресные константы внутри них так, чтобы они соответствовали фактическому местоположению в памяти.
Редакторы бывают 3 разновидностей.
Загрузчик – загружает объектный модуль и передает управление на точку входа программы.
Компоновщик – формирует исполняемый файл, точно соответствующий образу программы в памяти, привязывая его к абсолютным адресам.
Компоновщик, генерирующий псевдоперемещаемый код – записывает в исполняемый файл таблицу перемещений (relocation table), где содержатся данные о ячейке внутри кода, которая зависит от местоположения в памяти. Такой исполняемый файл перед запуском программы требует настройки. Этим занимается операционная система, в формате которой создается исполняемый модуль.
11.Общая структура машинных команд.
Операнды, которые используются в операторах ассемблера, могут быть регистром (г), адресом памяти (mem), непосредственным значением, задаваемым прямо в операторе (imm), сегментным регистром (sr). В связи с этим существуют различные форматы одних и тех же команд:
· первый и второй операнды - регистры. Результат помещается по адресу первого операнда. Могут использоваться все регистры общего назначения.
· первый операнд - регистр, второй - адрес памяти. Результат помещается в регистр, указанный в операторе, например:
mov ах, DATA ; в регистр АХ помещается содержимое поля DATA
· первый операнд - адрес памяти, второй - регистр. Результат помещается по тому адресу, который используется в качество первого операнда.
· первый операнд - регистр, второй - непосредственные данные. Результат помещается в регистр.
· первый операнд - адрес памяти, второй - непосредственные данные. Результат помещается по указанному адресу.
· первый операнд - сегментный регистр, второй - регистр общего назначения. Результат помещается в сегментный регистр, причем задание регистра CS в таком формате команды не применяется.
· первый операнд - регистр общего назначения, второй - сегментный регистр. Результат помещается в регистр общего назначения.
Команды, работающие с одним операндом, могут работать с регистрами общего назначения, адресами памяти или с сегментными регистрами.
Способы адресации операндов.В программах на Assembler применяются следующие типы адресации операндов:
· регистровая;
· прямая;
· непосредственная;
· косвенная;
· базовая;
· индексная;
· базово-индексная.
Регистровая адресация подразумевает использование в качестве операнда регистра процессора, например: push DS mov BP,SP
При прямой адресации один операнд представляет собой адрес памяти, второй - регистр: mov DATA, АХ
Непосредственная адресация применяется, когда операнд длиной в байт или слово находится в ассемблерной команде: mov AX,4Ch
При использовании косвенной адресации исполнительный адрес формируется исходя из сегментного адреса в одном из сегментных регистров и смещения в регистрах ВХ, ВР,SI или DI, например: mov АL, [ВХ], mov АН, [SI].
В случае применения базовой адресации исполнительный адрес являетсй суммой значения смещения и содержимого регистра ВР или ВХ, например:
mov АХ, [ВР + 6]
mov [ВХ + Delta], АХ
При индексной адресации исполнительный адрес определяется как сумма значений указанного смещения и содержимого регистра SI или DI так же, как и при базовой адресации, например:
mov DX, [SI+5]
mov ES: [DI]+6, AL
Базово-индексная адресация подразумевает использование для вычисления исполнительного адреса суммы содержимого базового и индексного регистров, а также смещения, находящегося в операторе, например:
mov ВХ, [BP][SI]
mov ES:[BX+DI],AX
Кэш-память– сверхоперативная память, обращение к которой намного быстрее, чем к оперативной и в которой хранятся наиболее часто используемые участки последней. При обращении к памяти сначала нужные данные ищутся в кэш-памяти. При отсутствии производится обращение к оперативной памяти, в результате общее время доступа к памяти сокращается.
