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

•Стандартизация: Контейнеры создаются на основе открытых стандартов, что позволяет работать с ними в большинстве дистрибутивов Linux, Microsoft и MacOS. Все зависимости приложений и ОС, необходимые для работы приложения, инкапсулируются, что упрощает перенос образа контейнера из одной среды в другую.
•Безопасность: Контейнеры изолированы друг от друга и от базовой инфраструктуры. Изменение, обновление или удаление одного контейнера не влияет на другие, что повышает общую безопасность системы.
Недостатки контейнеризации
•Высокая сложность: увеличение количества контейнеров, работающих с приложением, может усложнить управление ими. В производственной среде для работы с множеством контейнеров рекомендуется использовать оркестраторы, такие как Kubernetes или Mesos.
•Разрастание: нередко в контейнеры упаковывается гораздо больше ресурсов, чем реально требуется. Это может привести к увеличению размера образа, что занимает больше места на диске.
•Поддержка Native Linux: Docker и многие другие контейнерные технологии основаны на Linux-контейнерах (LXC). Из-за этого запуск контейнеров в Windows-среде может быть менее удобным, а их использование сложнее, чем при работе в Linux.
•Недостаточная зрелость: технологии контейнеризации приложений появились на рынке сравнительно недавно. Не всегда удается сразу решить возникающие проблемы, и иногда требуется время на поиск решения.
13. Классификации ОС
Операционные системы (ОС) можно классифицировать по различным критериям, включая число одновременно выполняемых задач, количество
пользователей, способ распределения времени, многопроцессорную обработку, тип аппаратных платформ, области использования и структурную организацию.
1. По числу одновременно выполняемых задач:
•Однозадачные ОС (например, MS-DOS, MSX) предоставляют пользователю виртуальную машину, упрощая взаимодействие с компьютером. Они включают средства управления периферийными устройствами, управления файлами и общения
спользователем.
•Многозадачные ОС (например, MS-DOS, Linux, Windows) помимо вышеуказанных функций управляют разделением совместно используемых ресурсов, таких как процессор, оперативная память, файлы и внешние устройства.
2. По числу одновременно работающих пользователей:
•Однопользовательские ОС (например, MS-DOS, Windows 3.x, ранние версии
OS/2) предназначены для работы одного пользователя.
•Многопользовательские ОС (например, UNIX, Windows NT) обеспечивают защиту информации каждого пользователя от несанкционированного доступа других пользователей.
Важно отметить, что не каждая многозадачная система является многопользовательской, и не каждая однопользовательская ОС является однозадачной.
3. По способу распределения времени:
•Невытесняющая многозадачность (например, NetWare, Windows 3.x) позволяет активному процессу выполняться до тех пор, пока он сам не отдаст управление операционной системе.
•Вытесняющая многозадачность (например, Windows NT, OS/2, UNIX) предполагает, что решение о переключении процессора с одного процесса на другой принимает операционная система.
4. Многопроцессорная обработка:
•Асимметричные ОС выполняются на одном из процессоров, распределяя прикладные задачи по остальным.
•Симметричные ОС полностью децентрализованы и используют все
доступные процессоры, разделяя их между системными и прикладными задачами.
5. По типу аппаратных платформ:
ОС могут быть предназначены для персональных компьютеров, миникомпьютеров, мейнфреймов, кластеров и сетей ЭВМ. Специфика аппаратных средств часто отражается на особенностях операционных систем.
6. По областям использования:
•Пакетные системы (например, ОС EC) предназначены для решения задач, не требующих быстрого получения результатов, с акцентом на максимальную пропускную
способность. Главная цель — максимальная пропускная способность, то есть выполнение максимального числа задач за единицу времени.
•Системы разделения времени (например, UNIX, VMS) обеспечивают пользователям терминалы для диалога с программами, выделяя квант процессорного времени для каждой задачи. Каждой задаче выделяется квант процессорного времени, что обеспечивает приемлемое время ответа. Хотя пропускная способность ниже, чем у систем пакетной обработки, удобство и эффективность работы пользователя становятся приоритетом.
•Системы реального времени (например, QNX, RT/11) используются для управления техническими объектами, где критично соблюдать заранее заданные интервалы времени для выполнения программ. Критерием эффективности является время реакции системы, то есть способность выполнять задачи в установленные сроки.
7. По способу структурной организации:
•Классические ОС используют монолитное ядро, работающее в привилегированном режиме и обеспечивающее быстрые переходы между процедурами.
•Микроядерные ОС основаны на микроядре, выполняющем минимальный набор функций по управлению аппаратурой, в то время как более высокоуровневые функции реализуются специализированными компонентами ОС, работающими в пользовательском режиме. Это делает систему более гибкой, хотя и может снижать производительность из-за частых переключений между режимами.
Некоторые ОС могут сочетать свойства различных типов, например, выполнять задачи в пакетном режиме и режиме реального времени, где пакетная обработка часто называется фоновым режимом.

14. Архитектура ОС. Ядро и вспомогательные модули.
Операционная система состоит из ядра и вспомогательных модулей.
Ядро выполняет:
● базовые функции ОС (управление процессами, памятью, устройствами ввода/вывода;
● функции, решающие внутрисистемные задачи организации вычислительного
процесса, (переключение контекстов, загрузка/выгрузка страниц, обработка
прерываний). Эти функции недоступны для приложений;
● функции для поддержки приложений, создающие для них прикладную программную среду.
Приложения могут обращаться к ядру с запросами (системными вызовами) для выполнения тех или иных действий. Функции ядра, которые могут вызываться приложениями, образуют интерфейс прикладного программирования – API.
Для обеспечения высокой скорости работы все модули ядра или большая их часть постоянно находятся в оперативной памяти, то есть являются резидентными. Кроме того, одним из определяющих свойств ядра является работа в привилегированном режиме.