- •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)
25. Восстановление при взаимной блокировке. Исключение условий появления взаимоблокировок. (Лекция 6)
Восстановление при взаимной блокировке. Условия работы алгоритмов:
- необходимо знать максимальные требования процессов к ресурсам;
- процессы не должны завершаться в состоянии захвата ресуров;
- кол-во ресурсов фиксированное.
Недостаток – кол-во процессов и ресурсов сильно изменяется.
Восстановление: 1. Прекратить выполнение всех заблокированных процессов (Уничтожение всех заблокированных процессов – грубый, но распространенный метод).
2. Вернуть каждый из заблокированных процессов в некоторую раннее определенную точку и перезапустить все процессы (Откат – создаются контрольные точки сохранения состояния, система поддерживает восстановление и перезапуск процессов).
3. Последовательно прекращать работу заблокированных процессов до тех пор, пока взаимоблокировки не прекратятся. Порядок выбора заблокированных процессов должен базироваться на некотором критерии минимальной стоимости (Последовательное уничтожение по одному заблокированному процессу. После каждой операции – поиск взаимоблокировки).
4. Последовательно перераспределять ресурсы пока взаимоблокировки не прекратятся. Выбор процесса осуществляется с учетом критерия минимальной стоимости. И после осуществления перераспределения вызывается алгоритм обнаружения взаимоблокировки. Процесс, ресурсы которого перераспределяются, возвращается к состоянию, в котором он находился до получения этого ресурса (Принудительная выгрузка ресурса – перераспределение выполняется до выхода из взаимоблокировки).
Исключение условий появления взаимоблокировок.
1. Условие взаимного исключения (mutual exclusion ). Каждый ресурс в текущий момент или занят ровно одним процессом или свободный. То есть, ресурсы находятся в режиме эксклюзивного пользования. Подкачка данных на диск (виртуальная память, печать). Различные типы доступа к ресурсу – чтение и запись. Условие взаимного исключения, или эксклюзивного пользования должна выполняться для неразделимых ресурсов. Например, принтер должен использоваться экслюзивно, одним процессом. Однако, некоторые раздельные ресурсы, такие, как доступ к файлам на чтение, могут раздаваться многим процессам.
В общем случае, условие взаимного исключения невозможно обойти, поскольку некоторые из ресурсов должны использоваться только в эксклюзивном режиме.
2. Условие удержания и ожидания (hold and wait ). Процессы, в текущий момент удерживают полученные ранее ресурсы, могут делать запросы на получение новых ресурсов. Двухфазное блокирование, предварительное декларирование ресурсов, предварительное освобождение ресурсов. Получать все ресурсы в начале работы процесса до выполнения остальных операций. Получать новый ресурс при условии высвобождения занятых ресурсов. Перед запросом нового ресурса, процесс освобождает занятые им ресурсы. Недостатком первого алгоритма является неэффективное использование и простой ресурсов. Также, существует возможность «голода»: в перегружены системе, процесс, требующий несколько популярных ресурсов, может никогда их не получить, поскольку хотя бы один из них может быть занят другим процессом.
3. Условие отсутствия принудительного освобождения ресурсов (no preemption ). Невозможно заставить процесс освободить ранее полученные ресурсы. Процесс, обладающий ресурсами, должен сам их увольнять. Подходит для выгружаемых ресурсов. В случаях, когда процесс запрашивает доступ к ресурсу, который не может быть сразу предоставлено, он освобождает остальных занятых ресурсов, и передает их в очередь на запрос. Работу процесса будет возобновлено после получения доступа ко всем ресурсам в очереди (старые и новые ресурсы).
4. Условие циклического ожидания (circular wait ). Должно существовать кольцевая последовательность из двух или более процессов, каждый из которых ожидает увольнение ресурса, удерживаемого следующим членом последовательности. Иными словами, должно существовать множество процессов {P0, P1,... Pn}, так, что процесс P0 ожидает освобождения ресурс процесса P1, P1 ожидает P2,..., PN - 1 ожидает PN, а PN ожидает освобождения ресурсов процессом P0. Ресурсы нумеруются, процесс не может захватить ресурс с номером меньшим, чем он уже захватил. Варианты – для каждого типа своя нумерация и свой алгоритм.
Для возникновения ситуации взаимной блокировки, необходимо выполнение всех четырех условий одновременно. Если хотя бы одно из условий не выполняется, взаимная блокировка невозможна.
Двухфазное блокирование: Первая фаза - попытка заблокировать все записи за один раз. Вторая фаза – захват и освобождение ресурсов. Если фаза 1 не удалась – ожидание. Недостаток – не годится для систем реального времени.