- •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. Дисковый кеш. Ускорение выполнения дисковых операций: традиционный дисковый кеш, кеш на основе механизма виртуальной памяти.
Вспомогательные модули ОС обычно подразделяются на следующие группы:
● утилиты – программы, решающие отдельные задачи управления и
сопровождения компьютерной системы, например, программы сжатия диска,
архивирования и т.д.
● системные обрабатывающие программы – текстовые и графические редакторы,
компиляторы, компоновщики, отладчики; ● программы дополнительных услуг – специальный вариант пользовательского
интерфейса, калькулятор, игры;
● библиотеки процедур – библиотека математических функций, функций
ввода/вывода и т.д.
15. Классическая архитектура ОС. Монолитные и многослойные ОС.
Вся ОС работает как единая программа в режиме ядра. Монолитная ОС написана как набор процедур, связанных в одну большую исполняемую программу. Каждая процедура имеет возможность при необходимости вызвать другую. Все процедуры работают в привилегированном режиме. Для монолитной операционной системы ядро совпадает со всей системой. Монолитное ядро - старейший способ организации операционных систем.
Такая организация ОС предполагает следующую структуру:
● Главная программа, которая вызывает требуемые сервисные процедуры. ● Набор сервисных процедур, реализующих системные вызовы.
● Набор утилит, обслуживающих сервисные процедуры.
Многослойная ОС - организация ОС как иерархии уровней с хорошо определенными связями между ними, так чтобы объекты уровня N могли вызывать только объекты из уровня N-1.
Нижним уровнем в таких системах обычно является аппаратура, верхним уровнем интерфейс пользователя. Чем ниже уровень, тем более привилегированные команды и действия может выполнять модуль, находящийся на этом уровне. Уровни образуются группами функций операционной системы - файловая система, управление процессами и устройствами и т.п. Прикладные программы или модули самой операционной системы передают запросы вверх и вниз по этим уровням. Они хорошо реализуются, но сложны в разработке так как трудно рассчитать порядок слоев и что к какому слою относится, системы менее эффективны чем монолитные ОС.
Ядро может состоять из следующих слоев:
- средства аппаратной поддержки (система прерываний, средства переключения контекстов процессов, средства поддержки привилегированного режима, средства защиты областей памяти и т. д.);
- машинно-зависимые компоненты ОС; в идеале этот слой полностью экранирует вышележащие слои ядра от особенностей аппаратуры (пример – слой HAL ОС
Windows NT);
- базовые механизмы ядра, этот слой выполняет наиболее примитивные операции ядра, реализует решения о распределении ресурсов, принятые на более высоком уровне;
- менеджеры ресурсов; слой состоит из мощных функциональных модулей,
реализующих стратегические задачи по управлению основными ресурсами ОС;
- интерфейс системных вызовов является самым верхним слоем ядра и взаимодействует непосредственно с приложениями и системными утилитами, образуя прикладной программный интерфейс ОС.
16. Микроядерная архитектура ОС.
В микроядерной архитектуре в привилегированном режиме остается работать только очень небольшая часть ОС, называемая микроядром. Микроядро защищено от остальных частей ОС и приложений. В состав микроядра обычно входят
машинно-зависимые модули, а также модули, выполняющие базовые функции ядра по управлению процессами, обработке прерываний, управлению виртуальной памятью, пересылке сообщений и управлению устройствами ввода/вывода, которые практически
невозможно выполнить в пользовательском режиме. Все остальные функции ядра
оформляются в виде приложений, работающих в пользовательском режиме, которые теперь называются серверами ОС.
Клиент, которым может быть либо другой компонент ОС, либо прикладная
программа, запрашивает сервис, посылая сообщение на сервер. Микроядро, работающее в привилегированном режиме, доставляет сообщение нужному серверу,
сервер выполняет операцию, после чего ядро возвращает результаты клиенту с
помощью другого сообщения Поддержка этого механизма является одной из главных задач микроядра.
