- •1. Определение ОС. Назначение и функции операционной системы. Место ОС в структуре вычислительной системы.
- •2. Области применения ОС: ОС мейнфреймов, серверные ОС, ОС многопроцессорных систем, персональных компьютеров, смартфонов и планшетов, встроенные ОС, ОС сенсорных узлов, смарт-карт, ОС для IoT устройств.
- •3. Понятие ресурса. Основные ресурсы вычислительной системы. Управление ресурсами.
- •4. Критерии эффективности и классы ОС.
- •5. Функциональные компоненты ОС персонального компьютера.
- •6. Понятие интерфейса прикладного программирования
- •7. Пользовательский интерфейс.
- •8. Системные вызовы.
- •9. Прерывания (понятие, классификация, обработка прерываний).
- •10. Обработка аппаратных прерываний.
- •11. Требования, предъявляемые к современным ОС.
- •12. Виртуализация. Гипервизор 1 и 2 типа. Контейнеры.
- •13. Классификации ОС
- •14. Архитектура ОС. Ядро и вспомогательные модули.
- •15. Классическая архитектура ОС. Монолитные и многослойные ОС.
- •16. Микроядерная архитектура ОС.
- •17. Процессы и потоки. Состояния потока.
- •18. Функции ОС по управлению процессами.
- •19. Планирование и диспетчеризация потоков, моменты перепланировки.
- •20. Кооперативная и вытесняющая многозадачность, достоинства и недостатки.
- •21. Алгоритм планирования, основанный на квантовании
- •22. Приоритетное планирование.
- •23. Алгоритмы планирования в ОС пакетной обработки: «первым пришел – первым обслужен», «кратчайшая задача – первая», «наименьшее оставшееся время выполнения».
- •24. Алгоритмы планирования в интерактивных ОС: циклическое, приоритетное, MLFQ.
- •25. Равномерные планировщики: гарантированное, лотерейное, справедливое планирование.
- •26. Планирование в многопроцессорных системах.
- •27. Планирование в системах реального времени.
- •28. Алгоритм планирования Windows NT.
- •29. Алгоритмы планирования Linux: О(1)
- •30. Алгоритмы планирования Linux: CFS
- •31. Планирование в ОС реального времени.
- •32. Межпроцессное взаимодействие (почему необходимы системные средства и в каких ситуациях применяются, примеры таких средств).
- •33. Синхронизация процессов и потоков: цели и средства синхронизации
- •34. Ситуация состязаний (гонки). Способы предотвращения.
- •35. Способы реализации взаимных исключений: блокирующие переменные, критические секции, семафоры.
- •36. Классические задачи синхронизации: «производители-потребители», «проблема обедающих философов», «проблема спящего брадобрея».
- •37. Взаимные блокировки. Условия, необходимые для возникновения тупика
- •38. Обнаружение взаимоблокировки при наличии одного ресурса каждого типа.
- •39. Обнаружение взаимоблокировки при наличии нескольких экземпляров ресурса каждого типа.
- •40. Предотвращение взаимоблокировки. Алгоритм банкира для одного вида ресурсов.
- •41. Предотвращение взаимоблокировки. Алгоритм банкира для нескольких видов ресурсов.
- •42. Синхронизирующие объекты ОС: системные семафоры, мьютексы, события, сигналы, барьеры, ждущие таймеры.
- •43. Организация обмена данными между процессами (каналы, разделяемая память, почтовые ящики, сокеты).
- •44. Функции ОС по управлению памятью.
- •45. Алгоритмы распределения памяти без использования внешних носителей (одиночное непрерывное распределение, фиксированные, динамические, перемещаемые разделы).
- •46. Понятие виртуальной памяти.
- •47. Страничное распределение памяти.
- •48. Таблицы страниц для больших объемов памяти.
- •49. Алгоритмы замещения страниц.
- •50. Сегментное распределение памяти.
- •51. Сегментно-страничное распределение памяти.
- •52. Кеш-память (понятие, принцип действия кеш-памяти).
- •53. Случайное отображение основной памяти на кеш.
- •54. Детерминированное отображение основной памяти на кеш.
- •55. Комбинированный способ отображения основной памяти на кеш.
- •56. Задачи ОС по управлению файлами и устройствами.
- •57. Многослойная модель подсистемы ввода-вывода.
- •58. Физическая организация диска. HDD, SSD устройства.
- •59. Файловая система. Определение, состав, типы файлов. Логическая организация файловой системы.
- •60. Физическая организация и адресация файлов.
- •61. FAT. Структура тома. Формат записи каталога. FAT12, FAT16, FAT32, exFAT.
- •62. ext2, ext3, ext4: структура тома, адресация файлов, каталоги, индексные дескрипторы.
- •63. NTFS: структура тома, типы файлов, организация каталогов.
- •64. Файловые операции. Процедура открытия файла.
- •65. Организация контроля доступа к файлам.
- •66. Отказоустойчивость файловых систем.
- •67. Процедура самовосстановления NTFS.
- •68. Избыточные дисковые подсистемы RAID.
- •69. Многоуровневые драйверы.
- •70. Дисковый кеш. Ускорение выполнения дисковых операций: традиционный дисковый кеш, кеш на основе механизма виртуальной памяти.
25. Равномерные планировщики: гарантированное, лотерейное, справедливое планирование.
Цель планирования – справедливость, все существующие в системе задачи получают определенную долю процессорного времени
Гарантированное планирование
Если в процессе работы в системе зарегистрировано n пользователей, то каждый из них получит 1/n от мощности центрального процессора. Аналогично этому, в однопользовательской системе, имеющей n работающих процессов, каждый из них получит 1/n от общего числа процессорных циклов.
Стс должна вести учет времени, получаемого каждым потоком, в момент перепланировки вычисляется отношение фактически получаемого воремени к времени гарантированному. На выполнение выбирается тот поток, у которого это отношение наименьшее.
Лотерейное планирование
Процессам раздаются "лотерейные билеты", дающие право доступа к ресурсам.
Планировщик может выбрать любой билет случайным образом. Чем больше билетов у процесса, тем больше у него шансов захватить ресурс. Взаимодействующие процессы
могут при необходимости обмениваться билетами.
Справедливое планирование.
Учитывается принадлежность процессов пользователям, в отличие от других алгоритмов. Процессорное время делится между пользователями.
26. Планирование в многопроцессорных системах.
Планирование в многопроцессорных системах направлено на эффективное распределение задач между процессорами с учетом отзывчивости, балансировки нагрузки, синхронизации, привязки к процессору и когерентности кешей.
Дополнительные задачи:
● Синхронизация: Для доступа к общим данным используются блокировки, но при росте числа процессоров конкуренция за ресурсы замедляет работу.
● Привязка к процессору: Процесс предпочтительно выполняется на одном
CPU, где его состояние (кеш, TLB) сохранено, что повышает производительность. Запуск на разных CPU снижает эффективность из-за перезагрузки состояния.
● Когерентность кешей: Разные процессоры могут хранить разные копии данных в кешах, что приводит к ошибкам. Решается аппаратно, например, через bus snooping: кеш отслеживает обновления памяти и обновляет/аннулирует данные.
Подходы к планированию:
1. Планирование с одной очередью (SQMS):
○ Все задачи в общей очереди, процессоры берут их по мере готовности. ○ Преимущества: простота, использование однопроцессорной
инфраструктуры, справедливость.
○ Недостатки: блокировки очереди снижают масштабируемость, отсутствие привязки к процессору ухудшает локальность кеша.
2. Планирование с несколькими очередями (MQMS):
○ Каждому процессору — своя очередь, задачи распределяются по эвристике (например, в наименее загруженную).
○ Преимущества: масштабируемость, автоматическая привязка к процессору, улучшение локальности кеша.
○ Недостатки: риск несбалансированности нагрузки, когда один процессор простаивает, а другой перегружен.
Проблема несбалансированности и миграция:
● При MQMS завершение задач может привести к простою процессоров (например, 4 задачи А, В, С, Д на двух CPU: если С завершается, CPU1
перегружен, CPU0 простаивает).
● Решение — миграция задач между процессорами. Техника "work stealing": процессор с малой нагрузкой заимствует задачи из перегруженной очереди.
● Проблемы миграции: частая миграция увеличивает накладные расходы, редкая
— приводит к несбалансированности. Требуется компромисс.
Пример: В SQMS 5 задач (А, В, С, Д, Е) на 4 процессорах распределяются из одной очереди, но без привязки, что снижает эффективность. В MQMS задачи А, В на CPU0, С, Д на CPU1; если С завершается, миграция (например, Д на CPU0) балансирует нагрузку.
Вывод: SQMS прост, но не масштабируется и не учитывает привязку. MQMS
масштабируем и поддерживает привязку, но требует миграции для балансировки.
Синхронизация и когерентность кешей усложняют планирование, требуя аппаратных и
программных решений.
27. Планирование в системах реального времени.
Системы реального времени делят на жесткие и мягкие ( недопустимы никакие задержки никогда и нарушения нежелательно допустимы).
Внешние события, на которые система должна реагировать, делятся:
● периодические – начиная с момента первоначального запроса все будущие
моменты возникновения задачи можно определить заранее; ● спорадические - моменты возникновения запросов заранее неизвестны.
Алгоритм “пропорционально частоте” RMS - Лью-Лайланда СТАТИЧЕСКИЙ
для жестких систем с 1 процессом
Суть алгоритма: Каждому процессу назначается фиксированный приоритет, равный частоте его запуска.
Может не справляться при высокой загрузке.
Теоретически было показано, что данный алгоритм гарантированно работает в любой системе периодических процессов при условии ∑ сi /pi ≤ n(21/n -1), где n – число задач.
Алгоритм “процесс с ближайшим сроком завершения в первую очередь” EDF
ДИНАМИЧЕСКИЙ
Каждый раз, когда процессу требуется процессорное время, он объявляет о своем присутствии и требуемом сроке завершения. Приоритет процессу назначается исходя из близости времени его завершения.
Алгоритм EDF работает с любым набором процессов, для которых возможно
планирование. Платой за это является использование более сложного алгоритма.
28. Алгоритм планирования Windows NT.
Алгоритм планирования потоков Windows NT объединяет в себе обе базовых
концепции - квантование и приоритеты. Как и во всех других алгоритмах, основанных на квантовании, каждому потоку назначается квант, в течение которого он может выполняться. Поток освобождает процессор, если:
● блокируется, уходя в состояние ожидания; ● завершается; ● исчерпан квант;
● в очереди готовых появляется более приоритетный
Использование динамических приоритетов, изменяющихся во времени,
позволяет реализовать адаптивное планирование, при котором не дискриминируются интерактивные задачи, часто выполняющие операции ввода-вывода и
недоиспользующие выделенные им кванты.
Если поток полностью исчерпал свой квант, то ее приоритет понижается на
некоторую величину. В то же время приоритет потоков, которые перешли в состояние ожидания, не использовав полностью выделенный им квант, повышается. Приоритет не изменяется, если поток вытеснен более приоритетным.
Также может возникать инверсия приоритета, когда планируются 2+ потоков с разными приоритетами.
Пример ситуации:
Поток 1 (высокий приоритет): Готов к выполнению, но ожидает общий ресурс (например, мьютекс), занятый потоком 2.
Поток 2 (низкий приоритет): Находится в критическом разделе, удерживая ресурс, но не может завершиться, так как его вытесняют другие потоки.
Поток 3 (средний приоритет): Не нуждается в ресурсе и занимает процессор, так как его приоритет выше, чем у потока 2, но ниже, чем у потока 1.
Проблема: Поток 1 (высокий приоритет) не может выполняться, так как ждёт
освобождения ресурса от потока 2. Поток 2 не получает процессорного времени,
потому что поток 3 (средний приоритет) вытесняет его. В результате поток 3 получает больше времени процессора, чем ожидалось, а поток 1 задерживается, что недопустимо в системах реального времени.
Решение: Наследование приоритета (Priority Inheritance)
Для устранения инверсии приоритета используется механизм наследования приоритета:
Когда поток 1 (высокий приоритет) блокируется, ожидая ресурс, удерживаемый
потоком 2 (низкий приоритет), поток 2 временно наследует приоритет потока 1.
