- •Список вопросов к экзамену по дисциплине «Операционные системы»
- •1. Определение ос. Назначение и функции операционной системы. Место ос в структуре вычислительной системы.
- •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. Сегментно-страничное распределение памяти.
- •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. Дисковый кеш. Ускорение выполнения дисковых операций: традиционный дисковый кеш, кеш на основе механизма виртуальной памяти.
11. Требования, предъявляемые к современным ос.
Современная операционная система – это ОС, предназначенная для эффективной работы в условиях многозадачности, многопользовательского режима и разнообразия аппаратных платформ.
Основные требования к современным ОС включают:
Прозрачность (незаметность) работы – служебные программы и функции ОС должны выполняться незаметно для пользователя.
Надёжность и отказоустойчивость – гарантированное выполнение программ и устойчивость к сбоям.
Высокая производительность – максимальная скорость выполнения программ при эффективном использовании ресурсов.
Компактность кода – минимальный машинный код и стандартизированные средства связи с прикладными программами.
Безопасность и защита данных – контроль доступа к ресурсам, защита процессов и информации.
Многозадачность и параллельность – поддержка одновременного выполнения нескольких программ и процессов.
Расширяемость – возможность лёгкого добавления и модификации функциональности без нарушения целостности системы. Достигается через модульную структуру ОС, использование объектов для представления ресурсов, архитектуру клиент-сервер или микроядро и средства удалённого вызова процедур (RPC).
Переносимость (многоплатформенность) – возможность переноса ОС на различные процессоры и аппаратные платформы с минимальными изменениями в коде, что достигается использованием языков высокого уровня и изоляцией аппаратной платформы.
Совместимость – способность выполнять программы, написанные для других ОС или более ранних версий данной ОС, как на уровне исходного кода (через перекомпиляцию), так и на двоичном уровне, если команды процессора и системные вызовы совместимы.
Удобство для пользователя – развитый пользовательский интерфейс, средства сетевого взаимодействия и возможность расширения функциональности без нарушения работы системы.
Таким образом, современная ОС должна сочетать эффективность, надёжность, переносимость, совместимость и гибкость, обеспечивая комфортную работу пользователя и программного обеспечения на разнообразных аппаратных платформах.
12. Виртуализация. Гипервизор 1 и 2 типа. Контейнеры.
Виртуализация – это технология, позволяющая создавать и использовать несколько изолированных логических вычислительных сред на основе одних и тех же физических аппаратных ресурсов. Суть виртуализации заключается в том, что на одном компьютере могут одновременно выполняться несколько копий одной или разных операционных систем, каждая из которых функционирует так, как если бы она работала на отдельном компьютере.
Виртуальная машина (ВМ) – это программная и/или аппаратная система, эмулирующая работу аппаратного обеспечения целевой (гостевой) платформы и исполняющая программы для неё на хост-платформе. ВМ может эмулировать отдельные компоненты аппаратного обеспечения, такие как процессор, память, диски, периферийные устройства, или целый компьютер, включая BIOS. Основной элемент виртуализации – гипервизор (Virtual Machine Monitor, VMM), обеспечивающий независимое выполнение нескольких виртуальных машин на одном физическом оборудовании.
Гипервизор первого типа (автономный) запускается непосредственно на аппаратном обеспечении хоста, управляет оборудованием и виртуальными машинами в привилегированном режиме. Этот тип обеспечивает минимальные накладные расходы и высокую производительность, что характерно для серверной виртуализации. Примеры: Microsoft Hyper-V, Oracle VM Server.
Гипервизор второго типа (хостовый) запускается поверх хостовой ОС и использует её механизмы управления ресурсами. Он проще в установке и использовании, но имеет дополнительные накладные расходы по сравнению с гипервизором первого типа. Примеры: VMware Workstation, VirtualBox.
Контейнеры представляют собой лёгкую виртуализацию на уровне ОС, где изоляция приложений достигается через пространства имён (namespaces) и контрольные группы (cgroups). Контейнеры используют ядро хостовой ОС и позволяют запускать приложение с минимальным набором библиотек в стандартизированном образе, обеспечивая изолированное выполнение процессов без эмуляции полного оборудования. Примеры реализации: Docker, OpenVZ.
Контейнеризация обеспечивает высокую плотность размещения и меньшие накладные расходы по сравнению с виртуальными машинами, позволяет ограничивать ресурсы CPU, RAM, сети и ввода-вывода, а также повторно использовать готовые образы приложений на различных хост-платформах.
