
- •Системное программное обеспечение Кошкин в. В.
- •Место программных средств в вычислительных системах
- •Состав по
- •Общие требования к программному обеспечению
- •Требования к проектируемому программному обеспечению
- •(2) Основные принципы проектирования программного обеспечения (по).
- •Механизмы выполнения программы
- •Последовательность выполнения программы. Основные положения.
- •2) Понятие процедур.
- •(3) Прерывания
- •(4) Процедура ввода/вывода.
- •Управление реальной памятью.
- •Управление виртуальной памятью.
- •Р абота с файлами.
- •Планирование заданий.
- •Распределение ресурсов
- •Защита пользователей.
- •Синхронизация процессов. (1) Синхронизация. Мониторы как инструмент синхронизации.
- •(2) Синхронизация. Реализация взаимного исключения. Семафоры.
- •Загрузчики.
- •Загрузчик, абсолютный загрузчик
- •Перемещающий загрузчик.
- •Управление процессами загрузки.
- •Связывающие загрузчики.
- •Динамическое связывание.
- •Макропроцессоры. (1) понятия о макропроцессорах.
- •(2 )Варианты построения макропроцессоров.
- •Компиляторы Основные функции компиляторов. Последовательность компиляции.
- •Свойства компиляторов, варианты построения.
- •Интерпретаторы.
- •Компиляторы в р-код.
- •Автоматизация процедуры компиляции.
- •Тестовое по. Основные принципы построения тестового по.
- •Основы методики тестирования.
- •Генерация тестовых последовательностей.
- •Вопросы для подготовки к экзаменам по Системному программному обеспечению
- •Объектный файл 1.Obj
- •Выполняемый файл 1.Exe
- •Если нужны изменения
Управление процессами загрузки.
Рассмотренные процедуры абсолютного загрузчика, перемещающего загрузчика ориентировались на «линейную» выполняющую программу. Т.е. все команды загружаются в память. Выполняются в последовательности согласно алгоритма самой программы. Как дано, так загружено, так и должно выполняться. Изменения в загруженной программе, выбор того или иного сегмента в ней не предусматривалось. Но это не удобно, поскольку не всякие сегменты, загруженной программы, могут выполняться по переменному алгоритму. В интерактивном режиме можно изменять параметры программ. Но неизменная загруженная программа все равно будет просматривать все загруженные файлы. Отсюда целесообразно исполнять не вес части программы, а только требуемые и перегружать только требуемые в ОЗУ. Эта процедура реализуется с помощью управляющих параметров. Т.е. используют для задания управляющих параметров специальные команды. Эти команды размещаются в отдельном входном файле, либо эти команды включаются в основной поток программы между объектными программами. Если управляющие команды включены в исходную программу, ассемблер переносит их в объектную. Одной из возможностей является выбор входного потока команд. Команды могут загрузчику приказать прочитать ту или иную подпрограмму. Например, из библиотеки или из внешних подпрограмм.
Второй
подход. В управлении процесса загрузки
исключить некоторые внешние имена,
ссылки на подпрограммы и даже целые
программы. Введенная команда запрещает
обращение к той или иной метке, внешнему
имени, тем самым не давая ее загружать.
Эти команды особо полезны в интерактивном
режиме. В частности команды могут
вызывать те или иные библиотеки или их
части. Если поиск библиотек автоматический,
необходимо исключить те ссылки, которые
могут вызвать загрузку того или иного
содержимого библиотеки. В этом режиме
лучше отказаться от библиотечного
поиска. Причина. Если какая-то переменная
или ссылка оставлена, эта подпрограмма
автоматически разгрузиться. В процессе
загрузки возможно управление
дополнительными функциями. Например,
печатью. Командой пользователь может
определить, нужна или нет распечатка
таблицы, степень детализации этой
таблицы. Нужны ли имена внешних ссылок
и перекрестные ссылки. Так же у загрузчика
имеются некоторые дополнительные
возможности. Например, определение
стартовой точки программы, т.е. физический
адрес. Либо разрешение или запрет
выполнения текущей программы в которой
в процессе загрузки обнаружена ошибка.
Помимо отдельных команд, определяющих
процедуры загрузки, применяют алгоритмы
динамической загрузки, так называемую
оверлейную структуру. Суть процесса
загрузки выполняется по мере необходимости.
Новая подпрограмма загружается на место
обработанной, что позволяет сэкономить
в памяти пространство. Однако такие
процедуры имеют определенное ограничение.
Например, головная программа А может
вызвать подпрог
А
Е
Д
С
В
раммы
одного уровня В и С. В свою подпрограмма
В обращается к двум дочерним Д и Е. Можно
предположить, что при выполнении А
возникнет пот
одпрограмм
следующего уровня В или С. Если необходимо
з
агрузчик
обращается к С. Отработав, эта программа
может быть з
Процедуры управления загрузкой преследую главную цель – загружать в память не всю исходную программу, а лишь те ее сегменты, которые необходимы для конкретного задания. С этой целью принимают специальные команды и динамический режим загрузки.