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