- •Список вопросов к экзамену по дисциплине «Операционные системы»
- •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. Дисковый кеш. Ускорение выполнения дисковых операций: традиционный дисковый кеш, кеш на основе механизма виртуальной памяти.
47. Страничное распределение памяти.
Страничное распределение памяти – это метод организации виртуальной памяти, при котором адресное пространство процесса и физическая память делятся на страницы одинакового, фиксированного размера. Каждая виртуальная страница процесса может быть сопоставлена с физическим фреймом памяти с помощью таблицы страниц, содержащей информацию о номере физической страницы, правах доступа и признаках присутствия, модификации и обращения.
При обращении процесса к странице, отсутствующей в ОЗУ, происходит прерывание страницы (page fault), после чего страница подкачивается с диска. Этот метод снижает внешнюю фрагментацию, упрощает управление памятью и позволяет динамически выделять и освобождать блоки памяти, обеспечивая эффективное использование ОЗУ при многозадачности и виртуальной памяти.
Аппаратная поддержка, включая TLB (translation lookaside buffer), позволяет ускорять преобразование виртуальных адресов в физические, снижая накладные расходы при частых обращениях к памяти.
48. Таблицы страниц для больших объёмов памяти.
Таблицы страниц для больших объёмов памяти – это структуры данных, которые ОС использует для сопоставления виртуальных адресов страниц с физическими фреймами в памяти, когда адресное пространство процесса очень велико.
Для больших объёмов памяти обычная линейная таблица страниц становится слишком большой и неэффективной. Поэтому применяются многоуровневые таблицы страниц, где первая таблица указывает на вторую, а вторая – на физические фреймы. Такой подход позволяет хранить только те части таблицы, которые реально используются процессом, экономя память и ускоряя поиск соответствий.
Кроме того, применяются инвертированные таблицы страниц (IPT), где каждая запись соответствует физическому фрейму, а не виртуальной странице, и содержит информацию о процессе и виртуальной странице, которая его использует. Инвертированные таблицы уменьшают общий объём памяти для хранения таблиц и облегчают управление адресным пространством при больших объёмах виртуальной памяти.
Для ускорения преобразования виртуальных адресов в физические используется хеш-функция, которая быстро находит соответствующую запись в инвертированной таблице, минимизируя коллизии и обеспечивая быстрый доступ к данным.
49. Алгоритмы замещения страниц.
Алгоритмы замещения страниц – это методы, с помощью которых ОС выбирает страницы для выгрузки из оперативной памяти при её недостатке, чтобы освободить место для новых страниц и минимизировать количество page fault.
Оптимальный алгоритм (OPT, MIN) – теоретически выгружается страница, которая понадобится позже всех. Служит эталоном эффективности, но в реальных условиях не реализуем.
NRU (Not Recently Used) – удаляет страницы, к которым в последнее время не было обращений. Использует биты обращения (R) и модификации (M) для классификации страниц и выбора наименее активных.
FIFO (First In, First Out) – страница, находящаяся в памяти дольше всех, выгружается первой. Простой, но не учитывает актуальную активность страниц.
Алгоритмы улучшения FIFO:
Второй шанс – проверяется бит R: если страница недавно использовалась, она получает «второй шанс» и перемещается в конец списка.
Часы (Clock) – логическая модификация «второго шанса», где страницы проверяются циклически по указателю стрелки.
LRU (Least Recently Used) – выгружается страница, к которой дольше всего не было обращений. Реализуется аппаратно (счётчики, матрица бит) или программно (списки, NFU с алгоритмом старения).
NFU (Not Frequently Used) и алгоритм старения – это методы, приближённо имитирующие алгоритм LRU. В NFU каждая страница имеет счётчик, который увеличивается при обращении к странице, показывая её частоту использования. Алгоритм старения улучшает NFU: периодически счётчик сдвигается вправо, а новый бит обращения добавляется в старший разряд. Так старые обращения постепенно «забываются», а счётчик отражает недавнюю активность страницы. Это позволяет выбирать для замещения страницы, которые реже всего использовались недавно, не требуя полного ведения истории обращений.
Рабочий набор и WSClock – это методы, ориентированные на страницы, активно используемые процессом за последнее время. Рабочий набор определяет набор страниц, к которым было обращение за последние t секунд или k операций; страницы вне этого набора считаются кандидатами на замену. WSClock реализует идею рабочего набора с помощью «часовой стрелки»: страницы проверяются по кругу, учитываются биты обращения и модификации, и только страницы, которые не использовались недавно и (если изменены) уже сохранены на диске, выгружаются. Такой подход снижает число ненужных замен страниц и делает использование памяти более эффективным.
Замещение страниц может использоваться совместно с дисковым пространством (свопинг), где каждая страница может быть выгружена на заранее выделенный раздел подкачки или динамически на диск при необходимости. Современные ОС часто комбинируют методы, используя приближения LRU и алгоритмы типа WSClock для эффективного управления многозадачностью.
