- •Список вопросов к экзамену по дисциплине «Операционные системы»
- •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. Дисковый кеш. Ускорение выполнения дисковых операций: традиционный дисковый кеш, кеш на основе механизма виртуальной памяти.
37. Взаимные блокировки. Условия, необходимые для возникновения тупика.
Взаимные блокировки (deadlock) – это ситуация, когда два или более процесса (или потоков) блокируют друг друга, ожидая ресурсы, занятые другими, и ни один из них не может продолжить выполнение.
Для возникновения тупика необходимы четыре условия одновременно: 1. Взаимное исключение – ресурсы, необходимые процессам, не могут использоваться совместно; в каждый момент ресурс доступен только одному процессу. 2. Удержание и ожидание – процесс удерживает уже выделенные ресурсы и одновременно ожидает новые, занятые другими процессами. 3. Невозможность принудительного изъятия ресурса – ОС не может принудительно забрать ресурс у процесса; процесс освобождает его только добровольно. 4. Циклическое ожидание – существует замкнутый цикл процессов, где каждый процесс ожидает ресурс, занятой следующим в цикле.
Если выполняются все четыре условия, система входит в тупик, и ни один из процессов в цикле не сможет продолжить выполнение без вмешательства ОС или внешнего управления.
38. Обнаружение взаимоблокировки при наличии одного ресурса каждого типа.
При наличии одного ресурса каждого типа для обнаружения взаимоблокировки строят граф ресурсов и процессов: процессы и ресурсы изображаются вершинами, а ребра показывают, какой процесс удерживает ресурс и какой ожидает.
Если в графе появляется замкнутый цикл, это означает, что процессы в цикле взаимоблокированы: каждый ожидает ресурс, удерживаемый другим, и ни один не может продолжить выполнение без внешнего вмешательства.
Метод позволяет системе или администратору своевременно выявлять тупики и принимать меры, например прерывать процесс или освобождать ресурс.
39. Обнаружение взаимоблокировки при наличии нескольких экземпляров ресурса каждого типа.
Для обнаружения взаимоблокировки при наличии нескольких экземпляров ресурсов каждого типа используют матрицу выделения и запроса ресурсов (Resource Allocation Graph или метод Банковского алгоритма).
Система хранит информацию о том, сколько экземпляров каждого ресурса уже выделено процессам и сколько запрошено. Планировщик проверяет, существует ли безопасная последовательность, при которой все процессы смогут завершить выполнение, получая необходимые ресурсы.
Если такой последовательности нет, это означает, что возникла или может возникнуть взаимоблокировка, и ОС может предпринять меры: приостановить или прервать один из процессов, либо ждать освобождения ресурсов.
Этот метод позволяет корректно выявлять тупики в системах с множественными экземплярами ресурсов и предотвращать их последствия.
40. Предотвращение взаимоблокировки. Алгоритм банкира для одного вида ресурсов.
Предотвращение взаимоблокировки – это метод проектирования системы так, чтобы хотя бы одно из условий возникновения тупика (взаимное исключение, удержание и ожидание, невозможность изъятия ресурса, циклическое ожидание) никогда не выполнялось.
Для одного вида ресурса используется алгоритм банкира: каждому процессу заранее задаётся максимальное количество ресурсов, которые он может запросить. ОС проверяет каждый новый запрос: если после его удовлетворения система остаётся в безопасном состоянии (то есть все процессы смогут завершить выполнение, получая необходимые ресурсы), запрос удовлетворяется; иначе процесс блокируется до освобождения ресурсов.
Таким образом, алгоритм гарантирует, что взаимоблокировка не возникнет, так как система никогда не позволит войти в состояние, где процессы могут ожидать ресурсы бесконечно.
