- •Список вопросов к экзамену по дисциплине «Операционные системы»
- •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. Дисковый кеш. Ускорение выполнения дисковых операций: традиционный дисковый кеш, кеш на основе механизма виртуальной памяти.
41. Предотвращение взаимоблокировки. Алгоритм банкира для нескольких видов ресурсов.
Предотвращение взаимоблокировки – это метод проектирования системы, при котором хотя бы одно из условий возникновения тупика (взаимное исключение, удержание и ожидание, невозможность изъятия ресурса, циклическое ожидание) нарушается, чтобы тупик не мог возникнуть.
Для нескольких видов ресурсов используется расширенный алгоритм банкира. Каждый процесс заранее сообщает максимальное количество каждого ресурса, которое он может потребовать. ОС проверяет каждый новый запрос, моделируя выделение ресурсов: если после удовлетворения запроса остаётся безопасное состояние (все процессы смогут завершить выполнение, получив необходимые ресурсы), запрос удовлетворяется; если нет – процесс блокируется до освобождения ресурсов.
Алгоритм позволяет управлять распределением ресурсов нескольких типов одновременно и гарантирует, что взаимоблокировка не возникнет, так как система никогда не допустит состояния, при котором процессам невозможно завершить выполнение.
42. Синхронизирующие объекты ос: системные семафоры, мьютексы, события, сигналы, барьеры, ждущие таймеры.
Синхронизирующие объекты ОС – механизмы для корректного взаимодействия потоков и процессов, контроля доступа к ресурсам и упорядочивания их выполнения.
Семафоры – неотрицательные счётчики, ограничивающие число потоков, одновременно использующих ресурс. Поток уменьшается счётчик при входе и блокируется, если он равен нулю. Бинарные семафоры (0 или 1) реализуют взаимное исключение, счётные – управление несколькими потоками.
Мьютексы – объекты взаимного исключения с двоичным состоянием: свободен (0) или захвачен (1). Только один поток может одновременно войти в критическую секцию. Разница между бинарным семафором и мьютексом в том, что семафор может освобождать любой поток, тогда как мьютекс может быть освобождён только потоком, который его захватил.
События – объекты состояния системы, уведомляющие потоки о наступлении события. Потоки ждут события и разблокируются после его установки.
Сигналы – программные уведомления процесса о событии (например, завершение ввода-вывода). При получении сигнала вызывается обработчик.
Барьеры – механизмы, заставляющие группу потоков ждать друг друга в определённой точке. После того как все достигнут барьера, они продолжают выполнение.
Ждущие таймеры – это объекты, позволяющие потоку приостановить выполнение на заданное время или до наступления определённого события.
43. Организация обмена данными между процессами (каналы, разделяемая память, почтовые ящики, сокеты).
Канал (pipe) – это буфер, позволяющий передавать данные последовательно от одного процесса к другому. Существуют анонимные каналы, работающие только между родственными процессами, и именованные каналы (named pipes), доступные любым процессам в системе. Канал обеспечивает упорядоченную передачу данных и блокирует процесс при попытке чтения из пустого канала или записи в полный.
Разделяемая память (shared memory) – это область памяти, доступная сразу нескольким процессам. Она обеспечивает быстрый обмен данными, так как процессам не требуется копирование через ядро. Для корректного использования разделяемой памяти необходима синхронизация через мьютексы, семафоры или другие объекты.
Почтовые ящики (message queues) – структуры, в которые процессы помещают сообщения для последующего извлечения другими процессами. ОС гарантирует порядок доставки сообщений и их сохранность, а также блокирует процесс при попытке чтения из пустого ящика или отправки в полный.
Сокеты (sockets) – универсальный механизм передачи данных между процессами, как внутри одной системы, так и между разными машинами через сеть. Поддерживают разные протоколы (TCP, UDP), обеспечивают соединение, обмен потоками данных и контроль доставки, что делает их основным средством межпроцессного взаимодействия в распределённых системах.
