- •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. Дисковый кеш. Ускорение выполнения дисковых операций: традиционный дисковый кеш, кеш на основе механизма виртуальной памяти.
3. Понятие ресурса. Основные ресурсы вычислительной системы. Управление ресурсами.
Ресурс – всякий объект, который может распределяться внутри ОС. ● процессоры (процессорное время)
● память ● периферийные устройства (диски, таймеры, наборы данных, принтеры, сетевые
устройства и т.п.) Ресурсы могут быть:
● разделяемые (несколько процессов используют их одновременно) и неделимые ● выгружаемые (могут быть отобраны у процесса без негативных последствий – например, оперативная память) и невыгружаемые (принудительная выгрузка
приводит к сбою – например, компакт-диск)
Управление ресурсами включает в себя решение следующих задач: ● планирование ресурса (когда, кому и в каком объёме)
● удовлетворение запросов на ресурсы ● отслеживание состояния и учёт использования ресурса
● разрешение конфликтов между процессами
4. Критерии эффективности и классы ОС.
Класс ОС |
Критерий эффективности |
|
|
ОС пакетной обработки |
максимальная пропускная способность |
|
(максимальная загрузка процессора) |
|
|
Интерактивные ОС (ОС разделения |
Отзывчивость (удобство работы |
времени) |
пользователя), иллюзия работы нескольких |
|
процессоров |
|
|
ОС реального времени |
Реактивность (гарантированное время |
|
реакции системы на то или иное событие) |
|
|
Главная цель систем пакетной обработки — максимальная пропускная способность, то есть выполнение как можно большего числа задач за единицу времени. Для этого:
● Формируется пакет заданий, где каждое задание указывает, какие ресурсы ему нужны.
● Из пакета создаётся мультипрограммная смесь — набор задач, которые выполняются одновременно.
● Задачи выбираются так, чтобы они использовали разные ресурсы, обеспечивая равномерную загрузку всех компонентов компьютера.
● Выбор следующей задачи зависит от текущей ситуации в системе.
Из-за этого в таких системах нельзя гарантировать, что конкретная задача будет выполнена за определённое время.
Цель планирования в системах разделения времени - повышение удобства и эффективности работы пользователя. В системах разделения времени пользователям (или одному пользователю) предоставляется возможность интерактивной работы сразу с несколькими приложениями. ОС принудительно периодически приостанавливает приложения, не дожидаясь, когда они добровольно освободят процессор. Всем приложениям попеременно предоставляется квант процессорного времени, таким образом, что пользователи, запустившие программы на выполнение, получают возможность поддерживать с ними диалог.
ОС реального времени предназначены для управления различными техническими объектами или технологическими процессами. В таких системах мультипрограммная смесь обычно представляет собой фиксированный набор заранее разработанных программ, а выбор программы на выполнение осуществляется по прерываниям (исходя из состояния управляемого объекта) или в соответствии с расписанием
плановых работ. Критерий эффективности работы ОС реального времени –
способность системы выдерживать заранее заданные интервалы времени между запуском программы и получением результата (реактивность системы).
5. Функциональные компоненты ОС персонального компьютера.
1)Подсистема управления процессором: распределяет процессорное время, создает и уничтожает процессы, создает контекст процесса, наделяет процессы ресурсами,
выполняет синхронизацию процессов, реализует межпроцессное взаимодействие.
2)Подсистема управления памятью: организует виртуальную память, отслеживает свободную и занятую память, выделение памяти процессам и освобождение её, настройка адресов программы на нужную область физической памяти, динамическое
выделение памяти, защита памяти (аппаратно и программно), возможно дефрагментация памяти.
3)Подсистема управления файлами и внешними устройствами: хранение данных на
дисках, организация параллельной работы устройств ввода\вывода, согласование скоростей обмена данных между процессором и устройствами, разделение устройств и данных между процессами, организация удобного интерфейса для других частей системы, поддержка широкого спектра драйверов и малого времени включения нужного драйвера при обнаружении нужного устройства, поддержка нескольких
файловых систем, а так же синхронных и асинхронных операций.
4)Защита данных и администрирование: защита от сбоев аппаратуры (резервирование), ошибки ПО, защита от несанкционированного доступа, процедура логического входа (аутентификация), подтверждение прав доступа (авторизация), средства аудита
5)Прикладной программный интерфейс
6. Понятие интерфейса прикладного программирования
Возможности ОС доступны прикладному программисту виде набора функций, которые составляют интерфейс прикладного программирования (Application Programming Interface, API).
Роль API:
● Обеспечивает доступ к функциям ОС (например, управление файлами, памятью, процессами).
● Упрощает разработку программ, предоставляя готовые инструменты.
Типы API в ОС:
● Системные API: Функции ядра ОС (например, WinAPI для Windows, POSIX для Unix-подобных систем).
● Библиотечные API: Высокоуровневые функции в библиотеках (например, стандартные библиотеки C).
● Внешние API: Предоставляются сторонними библиотеками или сервисами.
Структура API:
● Включает функции, их параметры и правила использования. ● Зависит от архитектуры ОС и системы программирования.
7. Пользовательский интерфейс.
Пользовательский интерфейс (UI) — это средства и способы взаимодействия пользователя с операционной системой или программным обеспечением. Он определяет, как человек вводит команды и получает информацию от системы.
Основные типы пользовательских интерфейсов:
1. Алфавитно-цифровой (командный) интерфейс (CLI):
○ Пользователь вводит текстовые команды в командной строке.
○ Примеры: командная строка Windows (cmd), терминал в Linux (bash).
○ Преимущества: высокая скорость для опытных пользователей, низкие требования к ресурсам.
○ Недостатки: требует знания команд, неинтуитивен для новичков. ○ Применение: управление ОС, автоматизация задач через скрипты.
2. Графический интерфейс (WIMP: Window, Image, Menu, Pointer): ○ Использует окна, изображения, меню и указатель мыши для
взаимодействия.
○ Примеры: Windows, macOS, графические оболочки Linux (GNOME, KDE). ○ Преимущества: интуитивно понятен, удобен для большинства
пользователей.
○ Недостатки: требует больше ресурсов, чем CLI.
○ Применение: повседневная работа, мультимедиа, офисные приложения. 3. Голосовой интерфейс (SILK: Speech, Image, Language, Knowledge):
○ Управление системой с помощью голосовых команд, часто с поддержкой обработки изображений и знаний.
○ Примеры: Siri, Google Assistant, Alexa.
○ Преимущества: удобство для задач без рук, поддержка естественного языка.
○ Недостатки: зависимость от качества распознавания речи, ограничения в сложных задачах.
○ Применение: умные устройства, голосовые помощники.
4. Биометрическая технология:
○ Использует биометрические данные (отпечатки пальцев, распознавание лица, сканирование радужки) для аутентификации или управления.
○ Примеры: разблокировка смартфона по лицу, сканеры отпечатков в
Windows Hello.
○ Преимущества: высокая безопасность, удобство.
○ Недостатки: высокая стоимость, возможные ошибки распознавания. ○ Применение: защита доступа, персонализация.
