- •Определение ос. Назначение и функции операционной системы. Место ос в структуре вычислительной системы.
- •3, Понятие ресурса. Основные ресурсы вычислительной системы. Управление ресурсами.
- •4, Критерии эффективности и классы ос
- •5, Функциональные компоненты ос персонального компьютера
- •6, Понятие интерфейса прикладного программирования
- •7, Системные вызовы
- •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. Таблицы страниц для больших объемов памяти.
- •35.Сегментное распределение памяти.
- •36. Сегментно-страничное распределение памяти.
- •37. Задачи ос по управлению файлами и устройствами.
- •38. Многослойная модель подсистемы ввода-вывода.
- •39. Физическая организация жесткого диска. (там еще про hdd, ssd устройства добавление в вопрос) (я пробежался глазами тут вроде нет)
- •40. Файловая система. Определение, состав, типы файлов. Логическая организация файловой системы.
- •41. Физическая организация и адресация файлов.
- •42. Fat. Структура тома. Формат записи каталога. Fat12, fat16, fat32.
- •43. Ufs: структура тома, адресация файлов, каталоги, индексные дескрипторы.
- •44. Ntfs: структура тома, типы файлов, организация каталогов.
- •45. Файловые операции. Процедура открытия файла.
- •46. Организация контроля доступа к файлам. Контроль доступа к файлам на примере Unix
- •47. Отказоустойчивость файловых систем.
- •48. Избыточные дисковые подсистемы raid.
- •49. Многоуровневые драйверы.
- •50. Дисковый кэш.
7, Системные вызовы
Системный вызов - это обращение из кода в User Mode (User Space) к коду ядра. Самые важные функции находятся как раз в ядре
Реализация системных вызовов должна обеспечивать:
• переключение в привилегированный режим;
• высокую скорость вызова процедур ОС;
• по возможности единообразное обращение к системным вызовам для всех аппаратных платформ, для которых предназначена ОС;
• возможность расширения набора системных вызовов;
• контроль со стороны ОС использования системных вызовов
Системные вызовы реализуются с помощью механизма программных прерываний.
Системные вызовы бывают синхронными (процесс прерывается для обработки системного вызова) и асинхронными (данные при обработке сразу передаются в процесс)
Схема обработки системных вызовов:
Децентрализованная схема (обращения происходят напрямую)
Централизованная (обращения происходят через диспетчер системных вызовов)
8, Прерывания (понятие, классификация, обработка прерываний)
1. Аппаратные – возникают как реакция микропроцессора на физический сигнал от некоторого устройства (клава, хард и тд) Прерывания асинхронные, происходят в случайное время, обрабатываются драйверами
2. Программные – вызываются искусственно с помощью соответствующей команды из программы (int), предназначены для выполнения некоторых действий ОС, синхронные, обрабатываются процедурами ОС, обслуживающими системные вызовы
3. Исключения – реакция микропроцессора на нестандартную ситуацию, возникшую внутри микропроцессора во время выполнения некоторой команды программы (деление на 0, трассировка) обрабатываются специальными модулями ядра
Прерывание (англ. interrupt) — сигнал, сообщающий процессору о наступлении какого-либо события. При этом выполнение текущей последовательности команд приостанавливается, и управление передаётся обработчику прерывания, который реагирует на событие и обслуживает его, после чего возвращает управление в прерванный код
9, Требования, предъявляемые к современным ос
1. максимальная скорость выполнения
2. прозрачность работы служебных программ (незаметность)
3. гарантированная надежность
4. минимальность машинного кода
5. использование стандартных средств для связи с прикладными программами
6. расширяемость (код должен быть написан так, чтобы систему можно было легко наращивать и модифицировать по мере изменения потребностей рынка. достигается за счет модульной структуры ОС и использования объектов для представления системных ресурсов), переносимость ((многоплатформенность) дает возможность перемещать всю систему на машину, базирующуюся на другом процессоре или аппаратной платформе, делая при этом по возможности небольшие изменения в коде), совместимость (способность ОС выполнять программы, написанные для других ОС или для более ранних версий данной ОС, а также для других аппаратных платформ)
7. надежность, отказоустойчивость
10, Виртуализация. Гипервизор 1 и 2 типа. Контейнеры
Виртуализация - это механизм позволяющий разделить аппаратные компоненты одного компьютера (процессоры, память, хранилище и др.) на несколько виртуальных компьютеров, называемых ВМ.
Гипервизоры – мониторы ВМ
Гипервизоры первого типа (автономные гипервизоры).
Запускаются на аппаратном обеспечении хоста, управляют оборудованием и виртуальными машинами. Этот гипервизор похож на ОС, поскольку это единственная программа, запущенная в самом привилегированном режиме. Его работа заключается в поддержке нескольких копий имеющегося оборудования, которое называется ВМ, что похоже на выполнение процессов в обычной ОС.
Гипервизоры второго типа (хостовые гипервизоры)
Запускаются на ОС как любые другие процессы. В этом случае гипервизоры разделяют ОС машины хоста и ОС гостевой машины, а гостевая ОС представлена обычным процессом хоста.
Различия состоят в том, что в 2 для создания процессов, сохранения файлов и т. д. используется основная операционная система и ее файловая система. 1 не имеет основной поддержки и должен выполнять все эти функции самостоятельно.
Контейнеры (Docker)
Приложение в контейнере работает в изолированной среде и не использует память, процессор или диск хостовой операционной системы. Это гарантирует изолированность процессов внутри контейнера.
+Гибкая среда (меньше расходов в производительности и размере)
+Повышенная производительность
+Управление версиями
+Стандартизация
+Безопасность (изоляция)
-Повышенная сложность (при n числе контейнеров, работающих с приложением, также увеличивается коэффициент сложности)
-Поддержка Native Linux
