
- •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)
8. Планирование процессов (потоков). (Лекция 2)
ОС должна распределять компьютерные ресурсы между множеством процессов с потенциально конкурирующими требованиями. При использовании процессора распределяемый ресурс представляет собой время выполнения, а само распределение именуется планированием (sheduling). Планирование должно быть разработано таким образом, чтобы удовлетворить ряду требований, включая беспристрастность, обеспечение отсутствия голодания любого из процессов, эффективное использование процессорного времени и малые накладные расходы. Планированию всегда уделялось много внимания со стороны исследователей и разработчиков. В этой области есть большое количество разработанных алгоритмов.
4 типа планирования: Долгосрочное (решение о добавление процесса в пул процессов), среднесрочное (решение о добавлении процесса к числу процессов, полностью или частично размещенных в основной памяти), краткосрочное (решение о том, какой из доступных процессов будет выполняться процессором), планирование ввода-вывода (решение о том, какой из запросов процессов на операции ввода-вывода будет обработан свободным устройством ввода-вывода).
Планировщик – механизм ОС, отвечающий за порядок использования потоками ЦПУ.
Ограничения для потоков: возможности ЦПУ, возможности устройств ввода-вывода.
Задачи алгоритмов планирования:
- справедливость;
- баланс занятости частей системы;
- время отклика;
- соразмерность или предсказуемость.
Циклическое планирование: Многоуровневая очередь:
Особенности:
Циклическое: неоптимальное распределение.
Приоритетное: требуется предотвращать захват ЦПУ высокоприоритетными процессами.
Многоуровневые очереди: алгоритмы разных ОС значительно отличаются; требуют повышения и понижения приоритета.
Некоторые другие методы планирования
Гарантированное – для N процессов должно выделяться по 1/N времени ЦПУ. Требуется непрерывный учет.
Лотерейное – выбор делается случайно. Приоритет потока – количество «лотерейных билетов».
Справедливое (fair-share sheduling) - учитывается принадлежность процессов пользователям, а потоков – процессам.
В многопользовательских системах при интерактивной работе пользователей процессы группируются в специальные структуры. С точки зрения пользователя, важно не то, как будет выполняться отдельное приложение, а то, как будет выполняться все множество процессов данного пользователя. Здесь применим термин «справедливое планирование». Каждому пользователю назначен определенный вес, который определяет долю использования системных ресурсов данным пользователем. В частности, каждый пользователь использует процессор. Если вес пользователя А в 2 раза больше веса пользователя В, то в течение длительного промежутка времени пользователь А должен выполнить в 2 раза большую работу, чем пользователь В.
9. Состояние потоков в Windows. (Лекция 3)
Поток
(thread)
– сущность внутри процесса, получающая
процессорное время для выполнения.
Поток: набор команд ЦПУ (центрального
процессорного устройства), стек, состояние
и уникальный идентификатор. Поток
– исполняемые команды:
счетчики команд; регистры ЦПУ; стек;
состояние потока.
Состояния потоков в процессе выполнения в Windows:
- Ready (готов) Поток в состоянии готовности ожидает выполнения. Выбирая следующий поток для выполнения, диспетчер принимает во внимание только пул потоков, готовых к выполнению.
- Standby (простаивает) В подходящий момент диспетчер переключает контекст на этот поток. В состоянии Standby может находиться только один поток для каждого процессора в системе. Поток может быть вытеснен даже в этом состоянии (если, например, до начала выполнения потока, который пока находится в состоянии Standby, к выполнению будет готов поток с более высоким приоритетом).
- Running (выполняется) Поток переходит в это состояние и начинает выполняться сразу после того, как диспетчер переключает на него контекст. Выполнение потока прекращается, как только он завершается, вытесняется потоком с более высоким приоритетом, переключает контекст на другой поток, самостоятельно переходит в состояние ожидания или истекает выделенный ему квант процессорного времени (и другой поток с тем же приоритетом готов к выполнению).
- Waiting (ожидает) Поток входит в состояние Waiting несколькими способами. Он может самостоятельно начать ожидание на синхронизирующем объекте или его вынуждает к этому подсистема окружения. По окончании ожидания поток - в зависимости от приоритета - либо немедленно начинает выполняться, либо переходит в состояние Ready.
- Transition (переходное состояние) Как только этот стек загружается в память, поток переходит в состояние Ready.
- Terminated (завершен) Заканчивая выполнение, поток переходит в состояние Terminated. После этого блок потока исполнительной системы (структура данных в пуле неподкачиваемой памяти, описывающая данный поток) может быть удален, а может и нет - это определяется диспетчером объектов.
- Initialized (инициализирован) В это состояние поток входит в процессе своего создания.
Планирование – выбор исполняемого потока.
Квант – интервал времени ЦПУ, отведенный потоку для выполнения.
События, вызывающие планирование:
- поток создан или вышел из ожидания;
- прекращается выполнение потока (вытеснение или истек квант);
- изменение приоритета потока;
- изменяется привязка потока к процессору.