
- •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. Дисковый кеш. Ускорение выполнения дисковых операций: традиционный дисковый кеш, кеш на основе механизма виртуальной памяти.
У брадобрея есть парикмахерская с одним креслом для стрижки и залом ожидания с ограниченным числом мест. Клиенты приходят, и если кресло свободно, брадобрей их стрижёт. Если занято, клиенты ждут в зале. Если зал полон, клиент уходит. Брадобрей спит, если нет клиентов.
Решение строится на использовании семафоров, где один семафор регулирует доступ к креслу, а другой отслеживает свободные места в зале ожидания. Мьютексы защищают общие данные, например, счётчик клиентов, от одновременного изменения. Условные переменные позволяют уведомить брадобрея о приходе клиента или клиента об освобождении кресла, обеспечивая плавное взаимодействие.
37. Взаимные блокировки. Условия, необходимые для возникновения тупика
Взаимная блокировка – ситуация, когда несколько процессов борются за ресурсы, и ни один из них не может завершить начатую работу.
Коффман, Элфик и Шошани показали, что эти условия являются необходимыми. Все
вместе эти четыре условия являются необходимыми и достаточными. Т.е., если все эти 4 условия выполняются, значит, взаимоблокировка существует.
• Условие взаимного исключения
Каждый ресурс в данный момент или отдан одному процессу или свободен.
• Условие удержания и ожидания
Процесс, удерживающий в данный момент ресурс, может запрашивать новые ресурсы.
•Условие отсутствия принудительной выгрузки ресурса
Упроцесса нельзя забрать ранее полученные ресурсы.
•Условие циклического ожидания
Должна существовать круговая последовательность из процессов, каждый, из которых ждет доступа к ресурсу, удерживаемому следующим членом последовательности.
38. Обнаружение взаимоблокировки при наличии одного ресурса каждого типа.
Методы борьбы с блокировками:
● Метод страуса. Если мы будем игнорировать проблему, то она возможно не принесет вреда. Применяется, когда потери от взаимоблокировок незначительны. Популярные ОС обычно так и делают.
● Обнаружение и исправление после возникновения блокировки (если существуют методы)
● Динамическое избежание взаимоблокировок (ОС не допускает их
возникновения)
● Предотвращение с помощью опровержения первого условия необходимости (не давать ресурсы монопольно)
ОСНОВНАЯ СУТЬ - СТРОИТЬ ГРАФ


39. Обнаружение взаимоблокировки при наличии нескольких экземпляров ресурса каждого типа.
•m - число классов ресурсов
•n - количество процессов, P1… Pn
•E = (Е1, Е2, Е3 , …, Еm ) - вектор существующих ресурсов, где Ei - количество ресурсов класса i,
•A = (A1, A2, A3 , …, Am ) - вектор доступных ресурсов, Ai - количество доступных ресурсов класса i,
Элемент Cij - показывает, сколько экземпляров j-го класса ресурсов принадлежит i-му процессу
R - матрица запросов, показывает, сколько еще экземпляров ресурсов нужно процессу для благополучного завершения (j-го ресурса i-му процессу)
Алгоритм:
1) Ищем немаркированный процесс Pi, для которого i-я строка матрицы R <=A
(запросы меньше возможностей)

2) Если так, процесс найдет, прибавляем i-ю строку матрицы С к вектору А и возвращаемся к 1. Если таких процессов не существует, то алгоритм заканчивается (если все процессы промаркированы, то тупика нет).
ЕСЛИ КОРОТКО, ТО ПРОСТО ИЩЕМ КАК ПО АЛГОРИТМУ И ПРИМЕР ЗАДАЧИ НИЖЕ И ВСО
