
- •Список вопросов к экзамену по дисциплине ос 2013/14 уч. Год
- •Определение ос. Назначение и функции операционной системы.
- •Место ос в структуре вычислительной системы.
- •Понятие ресурса. Управление ресурсами в вычислительной системе.
- •Критерии эффективности и классы ос.
- •Эволюция ос.
- •Современный этап развития ос.
- •Функциональные компоненты ос персонального компьютера.
- •Требования, предъявляемые к современным ос.
- •Классификации ос.
- •Системные вызовы.
- •Архитектура ос. Ядро и вспомогательные модули.
- •Классическая архитектура ос. Монолитные и многослойные ос.
- •Микроядерная архитектура ос.
- •Многослойная модель ядра ос.
- •Функции ос по управлению процессами.
- •Процессы и потоки.
- •Состояния потока.
- •Планирование и диспетчеризация потоков, моменты перепланировки.
- •Алгоритм планирования, основанный на квантовании.
- •Приоритетное планирование.
- •Алгоритмы планирования ос пакетной обработки: «первым пришел – первым обслужен», «кратчайшая задача – первая», «наименьшее оставшееся время выполнения».
- •Алгоритмы планирования в интерактивных ос: циклическое, приоритетное, гарантированное, лотерейное, справедливое планирование.
- •Алгоритм планирования Windows nt.
- •Алгоритм планирования Linux.
- •Планирование в ос реального времени.
- •Синхронизация процессов и потоков: цели и средства синхронизации.
- •Ситуация состязаний (гонки). Способы предотвращения.
- •Способы реализации взаимных исключений: блокирующие переменные, критические секции, семафоры Дейкстры. Блокирующие переменные
- •Критические секции
- •Семафоры
- •Взаимные блокировки. Условия, необходимые для возникновения тупика.
- •Обнаружение взаимоблокировки при наличии одного ресурса каждого типа.
- •Обнаружение взаимоблокировок при наличии нескольких ресурсов каждого типа.
- •Предотвращение взаимоблокировки. Алгоритм банкира для одного вида ресурсов.
- •Предотвращение взаимоблокировки. Алгоритм банкира для нескольких видов ресурсов.
- •Синхронизирующие объекты ос: системные семафоры, мьютексы, события, сигналы, ждущие таймеры.
- •Организация обмена данными между процессами (каналы, разделяемая память, почтовые ящики, сокеты).
- •Прерывания (понятие, классификация, обработка прерываний).
- •Обработка аппаратных прерываний
- •Функции ос по управлению памятью.
- •Виртуальная память.
- •Алгоритмы распределения памяти без использования внешних носителей (фиксированные, динамические, перемещаемые разделы).
- •Страничное распределение памяти.
- •Алгоритмы замещения страниц.
- •Сегментное распределение памяти.
- •Сегментно-страничное распределение памяти.
- •Средства поддержки сегментации памяти в мп Intel Pentium.
- •Сегментный режим распределения памяти в мп Intel Pentium.
- •Сегментно-страничный режим распределения памяти в мп Intel Pentium.
- •Средства защиты памяти в мп Intel Pentium.
- •Случайное отображение основной памяти на кэш.
- •Детерминированное отображение основной памяти на кэш.
- •Кэширование в мп Intel Pentium. Буфер ассоциативной трансляции.
- •Кэширование в мп Intel Pentium. Кэш первого уровня.
- •Задачи ос по управлению файлами и устройствами.
- •Многослойная модель подсистемы ввода-вывода.
- •Физическая организация жесткого диска.
- •Файловая система. Определение, состав, типы файлов. Логическая организация файловой системы.
- •Физическая организация и адресация файлов.
- •Fat. Структура тома. Формат записи каталога. Fat12, fat16, fat32.
- •Ufs : структура тома, адресация файлов, каталоги, индексные дескрипторы.
- •Ntfs: структура тома.
- •Ntfs: типы файлов, организация каталогов.
- •Файловые операции. Процедура открытия файла.
- •Организация контроля доступа к файлам.
- •Отказоустойчивость файловых систем.
- •Процедура самовосстановления ntfs.
- •Избыточные дисковые подсистемы raid.
- •Многоуровневые драйверы.
- •Дисковый кэш.
- •Классификация угроз вс.
- •Системный подход к обеспечению безопасности.
- •Шифрование.
- •Аутентификация, авторизация аудит.
- •Показатели эффективности ос
- •Настройка и оптимизация ос.
-
Обнаружение взаимоблокировки при наличии одного ресурса каждого типа.
Методы борьбы с блокировками:
-
Метод страуса. Если мы будем игнорировать проблему, то она возможно не принесет вреда. Применяется, когда потери от взаимоблокировок незначительны. Популярные ОС обычно так и делают.
-
Обнаружение и исправление после возникновения блокировки (если существуют методы)
-
Динамическое избежание взаимоблокировок (ОС не допускает их возникновения)
-
Предотвращение с помощью опровержения первого условия необходимости (не давать ресурсы монопольно)
Обнаружение взаимоблокировки при наличии одного ресурса каждого типа:
Рисунок 8. Система из 7ми процессов и 6ти ресурсов
-
Начальное условие: задаем L - пустой список. Ребра не маркированы
-
Текущий узел добавляем в конец списка L и проверяем количество появлений узла в списке. Если есть повторы, то есть цикл, то алгоритм завершается
-
Для заданного узла смотрим, выходит ли у него хоть 1 немаркированное ребро. Да - переход к 4, нет - переход к 5
-
Случайным образом выбираем немаркированное ребро и отмечаем его. По нему переходим к новому текущему узлу и возвращаемся к 2.
-
Удаляем последний узел из списка и возвращаемся к следующему узлу. Обозначаем его текущим и возвращаемся к 2. Если это первоначальный узел, значит граф не содержит циклов и алгоритм завершится.
-
Обнаружение взаимоблокировок при наличии нескольких ресурсов каждого типа.
В системе имеем наборы однотипный ресурсов (одного класса). Классов ресурсов m. Процессов n. Для обнаружения тупиков поддерживается несколько структур.
-
E - вектор существующих ресурсов
-
С - матрица текущего распределения
Элемент Cij - показывает, сколько экземпляров j-го класса ресурсов принадлежит i-му процессу.
-
R - матрица запросов, показывает, сколько еще экземпляров ресурсов нужно процессу для благополучного завершения (j-го ресурса i-му процессу)
-
A - вектор доступных ресурсов.
Алгоритм:
-
Ищем немаркированный процесс Pi, для которого i-я строка матрицы R <=A (запросы меньше возможностей)
-
2Если так, процесс найдет, прибавляем i-ю строку матрицы С к вектору А и возвращаемся к 1. Если таких процессов не существует, то алгоритм заканчивается (если все процессы промаркированы, то тупика нет).
-
Предотвращение взаимоблокировки. Алгоритм банкира для одного вида ресурсов.
Говорят, что состояние безопасно, если оно не находится в тупике и существует некоторый порядок планирования, при котором каждому процессу можно работать до завершения даже если все процессы захотят немедленно получить свое максимальное количество ресурсов.
Алгоритм банкира для 1 вида ресурсов (основан на избегании опасных состояний):
Алгоритм рассматривает запросы на предоставления ресурсов по мере их поступления. Каждый раз проверяет, приведет ли удовлетворение запроса к безопасному состоянию. Если да - запрос удовлетворяется, если нет - откладывается на более позднее время.
-
Предотвращение взаимоблокировки. Алгоритм банкира для нескольких видов ресурсов.
Рассмотрим систему:
Вектора: E=(6342) - существующие ресурсы, P=(5322) - занятые ресурсы, A=(1020) - доступные ресурсы.
Рисунок 9. Алгоритм банкира для несколько видов ресурсов
Если состояние безопасное, то ресурс выделить можно, если нет - нельзя. На практике эти алгоритмы сложно реализовать.