- •1. Предназначение операционных систем. Основные понятия ос. (Лекция 1)
- •2. Системные вызовы. (Лекция 1)
- •3. Аппаратные особенности выполнения программ. (Лекция 1)
- •4. Аппаратные прерывания. Выполнение операций ввода/вывода. (Лекция 1)
- •5. Обработка прерываний в Windows. (Лекция 1)
- •6. Процессы и потоки (определения). Отличия методов klt и ult. (Лекция 2)
- •7. Состояния потока (модели с двумя и с пятью состояниями). (Лекция 2)
- •8. Планирование процессов (потоков). (Лекция 2)
- •9. Состояние потоков в Windows. (Лекция 3)
- •10. Уровни приоритета, квант потока в Windows. (Лекция 3)
- •11. Сценарии планирования потоков в Windows. (Лекция 3)
- •12. Динамическое управление приоритетом потоков в Windows. (Лекция 3)
- •13. Проблема переключения контекста. Виртуальная память процесса в Windows. (Лекция 3)
- •14. Проблема разделяемых ресурсов. Требования к реализации механизма взаимных исключений. (Лекция 4)
- •15. Взаимное исключение с активным ожиданием. Алгоритмы переменной-замка, строгого чередования, флагов готовности, Петерсона. (Лекция 4)
- •16. Взаимное искл. С активным ожиданием. Алгоритм Петерсона. Недост. Алгоритмов с активным ожиданием. (Лекция 4)
- •17. Решение задачи о производителях и потребителях с помощью примитивов (функций ядра) блокирования и запуска процессов. (Лекция 4)
- •18. Семафоры и мьютексы. (Лекция 5)
- •19. Применение семафоров и мьютексов в задаче о производителях и потребителях. (Лекция 5)
- •20. Передача данных как метод синхронизации. (Лекция 5)
- •2 1. Применение сообщений в задаче о производителях и потребителях. (Лекция 5)
- •22. Проблема взаимоблокировки, траектории ресурсов, граф распределения. Стратегии устранения взаимоблокировок. (л6)
- •23. Алгоритм поиска взаимоблокировок. (Лекция 6)
- •24. Алгоритм предотвращения взаимоблокировок. (Лекция 6)
- •25. Восстановление при взаимной блокировке. Исключение условий появления взаимоблокировок. (Лекция 6)
- •26. Проблемы управления оперативной памятью. Физическая и логическая адресация. (Лекция 7)
- •27. Сегментная логическая адресация. (Лекция 7)
- •28. Страничная логическая адресация. (Лекция 7)
- •29. Распределение физической памяти. (Лекция 7)
- •30. Страничная логическая адресация. Виртуальная память. (Лекция 7)
- •31. Управление памятью: Стратегии виртуальной памяти. Замещение страниц. (Лекция 7)
- •32. Управление памятью: Управление резидентным множеством. (Лекция 7)
- •33. Принципы организации ввода-вывода. Компоненты ядра Windows, относящиеся к вводу-выводу. (Лекция 8)
- •34. Функции базовой подсистемы и интерфейс драйверов. (Лекция 8)
- •35. Буферизация ввода-вывода. (Лекция 8)
- •36. Система ввода-вывода Windows. (Лекция 8)
- •37. Типы драйверов. Запрос к одноуровневому и многоуровневому драйверу. (Лекция 9)
- •38. Системные механизмы dpc и apc. (Лекция 9)
- •39. Объекты ввода-вывода. Связи между объектами "файл", "устройство" и "драйвер". (Лекция 9)
- •40. Дерево устройств, узлы устройств. (Лекция 9)
- •41. Стек драйверов и объектов ввода-вывода (на примере устройства "джойстик")
- •42. Файлы и каталоги. Жесткие и символьные ссылки. Общие сведения о размещении файловой системы на диске. (Лек 10)
- •43. Реализация файла (непрерывные файлы, связные списки, I-узел). Методы учета свободных блоков.. (Лекция 10)
- •44. Основы резервного копирования (основные режимы резервного копирования). (Лекция 10)
- •45. Основы технологии raid. (Лекция 10)
- •46. Дисковые массивы raid0, raid1, raid10. (Лекция 10)
- •47. Дисковые массивы raid3, raid5. (Лекция 10)
- •48. Общая дисковая структура ntfs. (Лекция 11)
- •49. Запись mft файловой системы ntfs. Атрибуты. (Лекция 11)
- •50. Структура атрибутов данных и индексов в ntfs. (Лекция 11)
- •51. Разреженные и сжатые файлы ntfs. (Лекция 11)
- •52. Проблемы надежности и производительности файловых систем. Метод опережающего протоколирования. (Лекция 11)
- •53. Журнал lfs (структура, типы записей) для протоколирования работы ntfs. (Лекция 11)
- •54. Восстановление ntfs. Повтор и отмена транзакций. (Лекция 11)
- •55. Локальный и удаленный драйверы файловой системы Windows. (Лекция 12)
- •56. Преобразование пути в обращение к драйверу файловой системы в Windows. Объекты «устройство» тома и файловой системы, их связь. (Лекция 12)
- •5 7. Компоненты операций ввода-вывода файловой системы Windows. (Лекция 12)
- •58. Обзор диспетчера кэша Windows. (Лекция 12)
- •59. Внешняя память в Windows. Базовый жесткий диск. (Лекция 12)
- •60. Динамические диски в Windows. (Лекция 12)
- •61. Драйверы дисков, объекты дисков, иерархия драйверов в Windows. (Лекция 12)
- •62. Присвоение имен устройствам, управление дисками в Windows. (Лекция 12)
- •64. Сетевые компоненты Windows. (Лекция 13)
- •65. Именованные каналы, почтовые ящики, cifs в Windows. (Лекция 13)
- •66. Сетевые api Winsock и rpc в Windows. (Лекция 13)
- •67. Поддержка сетей в Windows: стандарты tdi, ndis. (Лекция 13)
- •68. Участник системы безопасности, проверка подлинности и авторизация, структура идентификатора безопасности в Windows. (Лекция 14)
- •69. Маркер доступа и его формирование в Windows. (Лекция 14)
- •Составляющие маркера доступа:
- •70. Дескриптор безопасности ресурса, состав ace, наследование доступов в Windows. (Лекция 14)
- •71. Доступ к ресурсу с использованием маркера в Windows. (Лекция 14)
- •72. Разрешения в дескрипторах безопасности Windows. (Лекция 14)
- •73. Права пользователя, взаимодействие прав и разрешений в Windows. (Лекция 14)
- •74. Группы безопасности и их роль, механизм управления правами и разрешениями в Windows. (Лекция 14)
23. Алгоритм поиска взаимоблокировок. (Лекция 6)
Идея – обнаружить наличие блокировки, а потом выполнить восстановление нормальной работы системы.
Стратегия обнаружения взаимоблокировок не ограничивает доступ к ресурсам и не налагает никаких ограничений на действия процесса. При обнаружении взаимоблокировок запрошенные ресурсы выделяются процессам по первому требованию. Периодически ОС выполняет алгоритм позволяющий обнаружить циклическое ожидание.
П роцесс или блокирован (0) или работает (1). Первоначально все процессы отмечены как блокированные
Шаг 1. Ищем блокированный , для которого строка матрицы запросов может быть выполнена:
Ш аг 2. Если процесс найден, то
Возвращаемся к шагу 1.
Шаг 3. Завершение, если процесс не найден.
Имеется взаимоблокировка, если хотя бы один процесс останется блокирован
На каждом шаге идет поиск процесса, потребности которого могут быть удовлетворены. Т.е. запросы процессов фактически выполняются последовательно, а после удовлетворения потребностей ресурс возвращается системе.
Пример
Вариант 1’
E={1,1} A={0,0} C={{1,1} R={{0,0}
{0,0}} {1,0}}
Начальное состояние P={0,0}
Проход 1
Найден процесс i=1, т.к.
R[1]={0,0} A={0,0}, R[1] <= A
Отмечаем процесс: P={1,0}
Возвращаем ресурсы: A={1,1}
Проход 2
Найден процесс i=2, т.к.
R[2]={1,0} A={1,1}, R[2] <= A
Отмечаем процесс: P={1,1}
Блокировки нет
Вариант 3
E={1,1} A={0,0} С={{1,0} R={{0,1}
{0,1}} {1,0}}
Начальное состояние P={0,0}
Проход 1
Процесс не найден
R[1]={0,1} A={0,0}, R[1] > A
R[2]={1,0} A={0,0}, R[2] > A
Обнаружена взаимоблокировка, поэтому надо выполнить процедуру восстановления нормальной работы системы. Восстановление:
1. Прекратить выполнение всех заблокированных процессов.
2. Вернуть каждый из заблокированных процессов в некоторую раннее определенную точку и перезапустить все процессы.
3. Последовательно прекращать работу заблокированных процессов до тех пор, пока взаимоблокировки не прекратятся. Порядок выбора заблокированных процессов должен базироваться на некотором критерии минимальной стоимости.
4. Последовательно перераспределять ресурсы пока взаимоблокировки не прекратятся. Выбор процесса осуществляется с учетом критерия минимальной стоимости. И после осуществления перераспределения вызывается алгоритм обнаружения взаимоблокировки. Процесс, ресурсы которого перераспределяются, возвращается к состоянию, в котором он находился до получения этого ресурса.
24. Алгоритм предотвращения взаимоблокировок. (Лекция 6)
Предотвращение взаимоблокировок обеспечивает меньшую параллельность вычислений, чем предотвращение.
Предотвращение 4 условий, необходимых для взаимоблокировок:
- Предотвращение условия взаимного исключения. Можно минимизировать количество процессов борющихся за ресурсы.
- Предотвращение условия удержания и ожидания. Один из способов достижения этой цели, это когда процесс должен запрашивать нужные ресурсы до начала работы. Если хоть 1 ресурс недоступен, то процессу вообще ничего не предоставляется.
- Предотвращение условия отсутствия принудительной выгрузки ресурса. Можно выгружать ресурсы, но могут быть проблемы с принтером.
- Предотвращение условия циклического ожидания.Процесс сначала должен освободить занятый ресурс, прежде чем занять новый.
Можно пронумеровать все ресурсы (и упорядочить), и процессы должны запрашивать ресурсы только по возрастающему порядку.
Запрет запуска нового процесса – новый процесс не запускается, если его требования могут привести к взаимоблокировке.
Определяются: - вектор-ресурс, т.е. общее количество ресурсов в системе. - вектор-доступность, т.е. общее количество каждого ресурса, не выделенного процессу. - матрица требования, здесь определены запросы каждого процесса на каждый из ресурс.
- матрица распределения, определяет текущее распределение ресурсов.
Процесс запускается только тогда, когда : Ri ≥ C(n+1) + сумма( по n, при к=1) Cik
Означает, что запуск процесса происходит в том случае, если м/б удовлетворены максимальные требования всех текущих процессов. Эта стратегия не оптимальна, т.к. предполагает худшее, что все процессы предъявят максимальные требования одновременно.
Запрет выделения ресурса – процесс не получает ресурс, если эта операция переведет систему в небезопасное состояние (Дейкстра, 1965 – «алгоритм банкира»). Матрица запроса – матрица требований процесса. В каждый момент времени процесс может иметь несколько выделенных ему ресурсов или не иметь ни одного. Состояние системы представляет собой текущее распределение ресурсов по процессам. Состояние можно представить как два вектора: ресурсы и доступность. И две матрицы: требования и распределения. Сначала выполняется проверка того, что запрос не превышает исходное требование процесса. Если запрос корректен, то определяем возможность удовлетворения запроса. Если нет, то процесс приостанавливается. Если ресурсов достаточно, то выполняется последняя проверка: безопасно ли выполнение запроса. Для этого процессу гипотетически выделяются ресурсы, получается новое состояние системы, которое и проверяется на безопасность использования алгоритма. Достоинства: не нужно перераспределения, не нужен откат процесса, как в случае обнаружения взаимоблокировок; накладывает меньше ограничений, чем метод предотвращения взаимоблокировок.
Ограничения метода запрета выделения ресурсов: - д/б заранее указаны максимальные требования каждого процесса; - процессы должны быть независимыми; - должно иметься фиксированное количество распределяемых ресурсов; - ни один процесс не должен завершаться в состоянии захвата ресурса.