
- •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. Дисковый кеш. Ускорение выполнения дисковых операций: традиционный дисковый кеш, кеш на основе механизма виртуальной памяти.

Достоинства
• Повышенная безопасность Благодаря небольшому размеру ядра его код проще верифицировать, а само
оно имеет меньшую поверхность атаки.
•Масштабируемость
•Отказоустойчивость
Благодаря модульной архитектуре сбой в одном компоненте не повлияет на систему в целом.
Недостатки
• Риск снижения производительности Так как отдельные компоненты ОС работают в разных пространствах, их
взаимодействие может вызывать «накладные расходы» в межпроцессном взаимодействии. ПРИЛОЖЕНИЕ - МИКРОЯДРО - СЕРВЕР - МИКРОЯДРО - ПРИЛОЖЕНИЕ
•Сложность проектирования системы
•Сложности обеспечения аппаратной совместимости
Вмикроядерных ОС различные компоненты системы работают независимо друг
от друга. Это может вызвать проблемы в обеспечении поддержки драйверов и повлиять на их совместимость с аппаратным обеспечением.
17. Процессы и потоки. Состояния потока.
Три события приводят к созданию процесса: ● загрузка системы;
● уже работающий процесс вызывает запрос на создание процесса; ● запрос пользователя на создание процесса.
Создать процесс означает:
● создать описатель процесса;
● загрузить коды и данные исполняемой программы процесса с диска в оперативную память
● в многопоточной системе для каждого создаваемого процесса создать как минимум один поток выполнения.

Дескриптор содержит информацию, необходимую в течение всего жизненного цикла процесса, и где содержится информация о состоянии процесса, о расположении его в памяти и на диске, информация о приоритете и пр.
Контекст содержит информацию, которая необходима для возобновления процесса.
Потоки возникли как средство распараллеливания вычислений в рамках одного процесса.
Поток - системный объект, получающий процессорное время, в рамках потоков
выполняются инструкции процессором. Каждый процесс должен иметь хотя бы один
поток (если ОС поддерживает потоки). Потоки одного процесса делят между собой адресное пространство, глобальные переменные, открытые файлы, таймеры,
семафоры, статическую информацию своего процесса.

В состоянии выполнения в однопроцессорной системе может находиться не более одного потока, а в каждом из состояний ожидания и готовности – несколько потоков. Эти потоки организуются в очереди.
18. Функции ОС по управлению процессами.
1. распределяет процессорное время между несколькими одновременно выполняющимися в системе процессами;
2. создает и уничтожает процессы; 3. обеспечивает процессы необходимыми ресурсами;
4. поддерживает синхронизацию процессов;
5. реализует межпроцессное взаимодействие
19. Планирование и диспетчеризация потоков, моменты перепланировки.
На протяжении существования процесса выполнение его потоков может быть многократно прервано и продолжено. Переход от одного потока к другому осуществляется в результате планирования и диспетчеризации.
Планирование включает в себя решение двух задач:
● определение момента времени для смены текущего активного потока;
● выбор для выполнения потока из очереди готовых потоков.
Планирование может быть динамическим (решения принимаются во время работы системы на основе анализа текущей ситуации) и статическим (решения приняты заранее, работа по расписанию).
Диспетчеризация заключается в реализации найденного в результате планирования решения, то есть в переключении процессора с одного потока на другой.
Диспетчеризация сводится к следующему:
● сохранение контекста текущего потока, который требуется сменить; ● загрузка контекста нового потока, выбранного в результате планирования; ● запуск нового потока на выполнение.
Ситуации, когда необходимо планирование:
1)Время, отведенное активной задаче на выполнение, закончилось. Планировщик переводит задачу в состояние готовности и выполняет перепланирование.
2)Активная задача выполнила системный вызов, связанный с запросом на ввод/вывод или на доступ к ресурсу, который в настоящий момент занят. Планировщик переводит задачу в состояние ожидания и выполняет перепланирование.
3)Активная задача выполнила системный вызов, связанный с освобождением ресурса. Если есть, то она переводится из состояния ожидания в состояние готовность. Проверяются приоритеты готовых к выполнению задач.
4)Завершение периферийным устройством операции ввода/вывода переводит соответствующую задачу в очередь готовых, и выполняется планирование.
5)Внутреннее прерывание сигнализирует об ошибке, которая произошла в результате
выполнения активной задачи. Планировщик снимает задачу и выполняет перепланирование.
20. Кооперативная и вытесняющая многозадачность, достоинства и недостатки.
Алгоритмы планирования делятся на вытесняющие и невытесняющие.
Невытесняющие (КООПЕРАТИВНАЯ) алгоритмы позволяют активному потоку выполняться, пока он сам не передаст управление операционной системе (ОС) для выбора другого потока. Планирование распределено между ОС и приложением, что усложняет разработку: программа должна сама возвращать управление ОС, иначе система может потерять отзывчивость. Это создает проблемы для пользователей (например, невозможность переключения задач) и требует от программистов высокой
квалификации для создания «дружественных» приложений. Преимущество — высокая
скорость переключения потоков и возможность разработчику задавать оптимальный
алгоритм планирования, избегая нерациональных прерываний и упрощая совместное
использование данных.
Вытесняющие алгоритмы централизованы: ОС сама решает, когда прервать поток,
сохраняет его контекст, выбирает и запускает следующий. Это упрощает разработку,
так как программист не заботится о многозадачности, а ОС предотвращает зависания,
снимая проблемные задачи. Недостаток — возможные прерывания в «неудобные»
моменты.
Примечание: Вытесняющие и невытесняющие алгоритмы не связаны с приоритетами
— приоритеты могут использоваться или не использоваться в обоих случаях.