- •1. Определение ос. Назначение и функции операционной системы. Место ос в структуре вычислительной системы.
- •3. Понятие ресурса. Основные ресурсы вычислительной системы. Управление ресурсами.
- •4. Критерии эффективности и классы ос.
- •8. Прерывания (понятие, классификация, обработка прерываний).
- •9. Требования, предъявляемые к современным ос.
- •10. Виртуализация. Гипервизор 1 и 2 типа. Контейнеры.
- •11. Архитектура ос. Ядро и вспомогательные модули.
- •12. Классическая архитектура ос. Монолитные и многослойные ос.
- •13. Микроядерная архитектура ос.
- •14. Процессы и потоки. Состояния потока
- •15. Планирование и диспетчеризация потоков, моменты перепланировки.
- •16. Алгоритм планирования, основанный на квантовании.
- •17. Приоритетное планирование.
- •18. Алгоритмы планирования в ос пакетной обработки: «первым пришел – первым обслужен», «кратчайшая задача – первая», «наименьшее оставшееся время выполнения».
- •Наименьшее оставшееся время выполнения
- •19. Алгоритмы планирования в интерактивных ос: циклическое, приоритетное, гарантированное, лотерейное, справедливое планирование.
- •Циклическое планирование (квантование)
- •Гарантированное планирование
- •Лотерейное планирование
- •Справедливое планирование
- •Приоритетное планирование
- •20. Алгоритм планирования Windows nt.
- •21. Алгоритмы планирования Linux: о(1), cfs.
- •22. Синхронизация процессов и потоков: цели и средства синхронизации.
- •23. Ситуация состязаний (гонки). Способы предотвращения.
- •24. Способы реализации взаимных исключений: блокирующие переменные, критические секции, мьютексы
- •25. Взаимные блокировки. Условия, необходимые для возникновения тупика.
- •26. Предотвращение взаимоблокировки. Алгоритм банкира для одного вида ресурсов.
- •27. Предотвращение взаимоблокировки. Алгоритм банкира для нескольких видов ресурсов.
- •28. Синхронизирующие объекты ос: системные семафоры, мьютексы, события, сигналы, барьеры, ждущие таймеры.
- •29. Организация обмена данными между процессами (каналы, разделяемая память, почтовые ящики, сокеты).
- •Каналы.
- •Разделяемая память
- •Почтовые ящики
- •Сокеты.
- •30. Функции ос по управлению памятью.
- •31. Алгоритмы распределения памяти без использования внешних носителей (фиксированные, динамические, перемещаемые разделы).
- •Распределение памяти динамическими разделами
- •32. Понятие виртуальной памяти Виртуализация памяти
- •Виртуальное адресное пространство - совокупность виртуальных адресов процесса. И эта совокупность может превышать объем физической памяти.
- •Структура виртуального адресного пространства
- •Виды виртуального адресного пространства:
- •33. Страничное распределение памяти.
- •34. Таблицы страниц для больших объемов памяти.
- •1 Многоуровневые таблицы страниц
- •2 Инвертированные таблицы страниц
- •35. Сегментное распределение памяти.
- •36. Сегментно-страничное распределение памяти.
- •37. Задачи ос по управлению файлами и устройствами.
- •38. Многослойная модель подсистемы ввода-вывода.
- •39. Физическая организация диска. Hdd, ssd устройства.
- •40. Файловая система. Определение, состав, типы файлов. Логическая организация файловой системы.
- •41. Физическая организация и адресация файлов.
- •42. Fat. Структура тома. Формат записи каталога. Fat12, fat16, fat32, exFat
- •43. Ufs, ext2: структура тома, адресация файлов, каталоги, индексные дескрипторы.
- •44. Ntfs: структура тома, типы файлов, организация каталогов.
- •45. Файловые операции. Процедура открытия файла.
- •46. Организация контроля доступа к файлам. Контроль доступа к файлам на примере Unix.
- •47. Отказоустойчивость файловых систем.
- •48. Избыточные дисковые подсистемы raid.
- •49. Многоуровневые драйверы.
- •50. Ускорение выполнения дисковых операций: традиционный дисковый кэш, кэш на основе механизма виртуальной памяти.
- •Классические задачи синхронизации: “производители-потребители”, “проблема обедающих философов”, “проблема спящего брадобрея”.
- •1. Официант
- •2. Иерархия вилок
- •3. Монитор
16. Алгоритм планирования, основанный на квантовании.
Квант – ограниченный непрерывный интервал процессорного времени, который поочередно предоставляется всем существующим в системе потокам. Они могут быть динамическими (длительность кванта времени может быть разной, либо может изменяться) и фиксированными (в системе определена длительность кванта времени, и она для всех одинакова и не изменяется).
Квантование - очередь потоков к процессору, из заголовка этой очереди выбирается поток, который получает квант времени, т.е. интервал процессорного времени, в течение которого он может выполняться, и когда квант времени истек, то поток снимается с выполнения и переходит в состояние готовности, если снимается принудительно.
Смена активного потока происходит, если:
Поток завершился и покинул систему;
Произошла ошибка;
Поток перешел в состояние ожидания;
Исчерпан квант процессорного времени, отведенный данному потоку.
Поток, который исчерпал свой квант, переводится в состояние готовности и ожидает, когда ему будет предоставлен новый квант процессорного времени, а на выполнение в соответствии с определенным правилом выбирается новый поток из очереди готовых.
Кванты, выделяемые потокам, могут быть одинаковыми для всех потоков или различными. Чем больше квант, тем выше вероятность того, что потоки завершатся в результате первого же цикла выполнения, и тем менее явной становится зависимость времени ожидания потоков от их времени выполнения. При достаточно большом кванте алгоритм квантования вырождается в алгоритм последовательной обработки, присущий однопрограммным системам, при котором время ожидания задачи в очереди вообще никак не зависит от ее длительности.
Допустим, есть 3 процесса: А - это длинная задача, Б - короткая задача, С - средняя. Этим задачам можно определить короткие и более длинные кванты времени.
Короткие кванты времени выгодны коротким задачам, то есть они могут завершиться за 1 квант времени, и времени перед ними пройдет меньше.
Короткий квант времени невыгоден длинным задачам, так как её время выполнения растягивается. Если мы приоритет хотим отдать им, то длительность кванта времени должна быть больше, за это платим снижением интерактивности.
17. Приоритетное планирование.
Приоритетное планирование предполагает наличие у потоков некоторой изначально известной характеристики — приоритета, на основании которой определяется порядок их выполнения. Приоритет — это число, характеризующее степень привилегированности потока при доступе к ресурсам ОС: чем выше приоритет, тем выше привилегии, тем меньше времени будет проводить поток в очередях, или наоборот, чем ниже приоритет, тем ниже привилегии. Приоритет может выражаться целым или дробным, положительным или отрицательным значением. Планировщик в момент перепланировки, просматривая очередь готовых к выполнению потоков, сравнивает значения их приоритетов и понимает, у кого больше прав в данный момент времени на процессорное время и, соответственно, этим временем наделяет потоки.
Приоритеты бывают:
Фиксированные - приоритет потоку назначается ОС при его создании и не изменяется за время существования потока.
Динамические - приоритет может изменяться либо по инициативе самого потока, либо по инициативе пользователя, либо ОС изменяет приоритеты потоков.
Приоритетное планирование бывает:
С относительными приоритетами - приоритет учитывается только при выборе потока на выполнение из очереди готовых к выполнению потоков. Просматриваются очереди и выбирается поток. Он выполняется до тех пор, пока он сам не покинет процессор, перейдя в состояние ожидания (или же произойдет ошибка, или поток завершится)
С абсолютными приоритетами выполнение активного потока прерывается, когда в очереди готовых к выполнению потоков появляется поток, приоритет которого выше, чем приоритет активного потока. В этом случае прерванный поток переходит в состояние готовности.
