- •1 Операционная система. Определение. Назначение. Функции ос.
- •2 История ос. Развитие операционных систем.
- •3 Классификация операционных систем.
- •4 Специальные регистры центрального процессора (счетчик команд, указатель стека, rsw)
- •5 Конвейерная и скалярная конструкция процессора
- •6 Устройство памяти. Виды памяти.
- •7 Базовый и предельный регистры. Диспетчер памяти.
- •8 Драйвера устройств ввода-вывода. Способы установки драйверов.
- •9 Три способа организации ввода-вывода.
- •10 Шины и их назначение.
- •11 Процесс. Характеристики процесса. Понятия, связанные с процессом (таблица процессов, оболочка и т.Д.)
- •12 Взаимоблокировки. Определение. Примеры.
- •13 Файловые системы. Определение. Понятия, связанные с файловыми системами.
- •14 Код защиты файлов в unix.
- •15 Оболочка. Определение. Командный интерпретатор unix.
- •16 Системные вызовы. Назначение, схема работы системного вызова.
- •17 Основные системные вызовы posix.
- •18 Системные вызовы для управления процессами. Работа, примеры.
- •19 Системные вызовы для управления файлами. Работа. Примеры.
- •20 Системные вызовы для управления каталогами. Работа. Примеры.
- •21 Системные вызовы в unix и windows сравнение.
- •22 Структура ос. Монолитные ос.
- •23 Многоуровневые ос.
- •24 Виртуальные машины.
- •25 Экзоядро. Модель клиент-сервер.
- •26 Многозадачность. Создание и завершение процесса.
- •27 Состояния процессов.
- •28 Последовательность обработки прерываний нижним уровнем ос.
- •29 Поток. Определение. Отличие потока от процесса. Примеры применения потоков.
- •30 Реализация потоков в пространстве пользователя и в ядре. Схема и отличия.
- •31 Всплывающие потоки. Проблемы при переводе программы из однопоточной в многопоточную.
- •32 Межпроцессорное взаимодействие. Состояние состязания. Примеры. 4 условия для эффективной совместной работы процессов.
- •33 Методы решения проблем межпроцессорного взаимодействия с активным ожиданием. Запрещение прерываний, переменные блокировки, строгое чередование.
- •34 Алгоритм Петерсона и команда tsl.
- •35 Примитивы межпроцессорного взаимодействия. Проблема производителя и потребителя.
- •36 Семафоры. Решение проблемы производителя и потребителя с помощью семафоров.
- •37 Мьютексы и мониторы.
- •38 Передача сообщений и барьеры.
- •40 Планирование. Назначение. Поведение процессов. Категории алгоритмов планирования.
- •41 Планирование в системах пакетной обработки: «Первым пришел – первым обслужен», «Кратчайшая задача – первая».
- •42 Алгоритмы планирования: Наименьшее оставшееся время выполнения, трехуровневое планирование.
- •43 Циклическое планирование и приоритетное планирование.
- •44 Алгоритмы планирования: «Самый короткий процесс – следующий», Гарантированное планирование, Лотерейное планирование.
- •45 Справедливое планирование и планирование в системах реального времени.
- •46 Выгружаемые и невыгружаемые ресурсы. Условия взаимоблокировки.
- •47 Моделирование взаимоблокировок.
- •48 Четыре стратегии избегания взаимоблокировок. Страусовый алгоритм.
- •49 Обнаружение взаимоблокировки при наличии одного ресурса каждого типа.
- •51 Выходы из взаимоблокировки. Траектории ресурсов.
- •52 Безопасные и небезопасные состояния. Алгоритм банкира. Предотвращение взаимоблокировок.
51 Выходы из взаимоблокировки. Траектории ресурсов.
Выходы из взаимоблокировки: - Восстановление при помощи принудительной выгрузки ресурса. Как правило, требует ручного вмешательства (например: принтер). - Восстановление через откат. Состояние процессов записывается в контрольных точках, и в случае тупика можно сделать откат процесса на более раннее состояние, после чего он продолжит работу снова с этой точки. С принтером опять будут проблемы. - Восстановление путем уничтожения процесса Самый простой способ. Но с принтером опять будут проблемы. [XD] В реальных системах они не годятся.
Траектория ресурсов: Рассмотрим модель из двух процессов и двух ресурсов. А1 - запрос принтера процессом А,А2 - запрос плоттера процессом А,А3 - освобождение принтера процессом А,А4 - освобождение плоттера процессом А,В1 - запрос плоттера процессом В,В2 - запрос принтера процессом В,В3 - освобождение плоттера процессом В,В4 - освобождение принтера процессом В. Т.к. процессор предоставляется поочередно, траектория может продолжаться только параллельно осям. Чтобы избежать тупика, процессам надо обойти прямоугольник, охватывающий всю заштрихованную область.
52 Безопасные и небезопасные состояния. Алгоритм банкира. Предотвращение взаимоблокировок.
Безопасные и небезопасные состояния В безопасном состоянии система может гарантировать, что все процессы закончат свою работу. Рассмотрим систему: 10 экземпляров ресурса, 3 процесса.
Процесс А занял 3 экземпляра, но ему необходимо 9. В этой ситуации можно спланировать так, сначала запустить процесс В, потом С и потом А. Процессы заканчивают работу без тупиковой ситуации. Рассмотрим другую ситуацию: Процесс А занял 4 экземпляра.
Возникает небезопасное состояние. В принципе, процесс А может в какой то момент ресурс освободить и тупика не возникнет. Видно, что в этом случае не стоило давать ресурс процессу А.
Алгоритм банкира для одного вида ресурсов
"Банкира", потому что аналогия такая, клиенты-процессы, кредиты-ресурсы. Рассмотрим систему: Банкир может дать 10 кредитов (ресурсы). К нему попеременно обращаются 4-ре клиента.
Алгоритм банкира: 1-Банкиру поступает запрос от клиента на получение кредита 2- Банкир проверяет, приводит ли этот запрос к небезопасному состоянию. 3- Банкир в зависимости от этого дает или отказывает в кредите.
Алгоритм банкира
Алгоритм банкира для несколько видов ресурсов
Рассмотрим систему:
вектора: E=(6342) - существующие ресурсы P=(5322) - занятые ресурсы A=(1020) - доступные ресурсы
Алгоритм поиска безопасного или небезопасного состояния.
Алгоритм банкира для несколько видов ресурсов
Если состояние безопасное то ресурс дать можно, если нет то нельзя. На практике все эти алгоритмы тяжело реализовать.
Предотвращение взаимоблокировок. 1 Предотвращение условия взаимного исключения. Можно минимизировать количество процессов борющихся за ресурсы. Например, с помощью спулинга для принтера, когда только демон принтера работает с принтером. 2 Предотвращение условия удержания и ожидания. Один из способов достижения этой цели, это когда процесс должен запрашивать все необходимые ресурсы до начала работы. Если хоть один ресурс недоступен, то процессу вообще ничего не предоставляется. 3 Предотвращение условия отсутствия принудительной выгрузки ресурса. Можно выгружать ресурсы, но могут быть проблемы с принтером. 4 Предотвращение условия циклического ожидания Способы предотвращения: - Процесс сначала должен освободить занятый ресурс, прежде чем занять новый. - Можно пронумеровать все ресурсы (и упорядочить), и процессы должны запрашивать ресурсы только по возрастающему порядку.