
- •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. Монитор
8. Прерывания (понятие, классификация, обработка прерываний).
Это все что было в презентациях…
Прерывание (англ. interrupt) — сигнал, сообщающий процессору о наступлении какого-либо события. При этом выполнение текущей последовательности команд приостанавливается, и управление передаётся обработчику прерывания, который реагирует на событие и обслуживает его, после чего возвращает управление в прерванный код
Прерывания обычно обрабатываются модулями операционной системы, так как действия, выполняемые по прерыванию, относятся к управлению разделяемыми ресурсами вычислительной системы — принтером, диском, таймером, процессором и т. п. Процедуры, вызываемые по прерываниям, обычно называют обработчиками прерываний, или процедурами обслуживания прерываний. Аппаратные прерывания обрабатываются драйверами соответствующих внешних устройств, исключения — специальными модулями ядра, а программные прерывания — процедурами ОС, обслуживающими системные вызовы. Кроме этих модулей в операционной системе может находиться так называемый диспетчер прерываний, который координирует работу отдельных обработчиков прерываний.
9. Требования, предъявляемые к современным ос.
максимальная скорость выполнения
прозрачность работы служебных программ (незаметность)
гарантированная надежность
минимальность машинного кода
использование стандартных средств для связи с прикладными программами
расширяемость, переносимость, совместимость
надежность, отказоустойчивость
Расширяемость - код должен быть написан так, чтобы систему можно было легко наращивать и модифицировать по мере изменения потребностей рынка. В то время как аппаратная часть компьютера устаревает за несколько лет, полезная жизнь операционных систем может измеряться десятилетиями. Сохранение целостности кода, какие бы изменения не вносились в операционную систему, является главной целью. Расширяемость достигается за счет модульной структуры ОС и использования объектов для представления системных ресурсов.
Переносимость (многоплатформенность) дает возможность перемещать всю систему на машину, базирующуюся на другом процессоре или аппаратной платформе, делая при этом по возможности небольшие изменения в коде
Совместимость - способность ОС выполнять программы, написанные для других ОС или для более ранних версий данной ОС, а также для других аппаратных платформ. Различают двоичную совместимость и сов. на уровне исходного кода. Для последней хватит лишь совместимости на уровне системных вызовов и наличия нужного компилятора. Используется эмуляция и виртуальные машины.
10. Виртуализация. Гипервизор 1 и 2 типа. Контейнеры.
Виртуализация - группа технологий, основанных на преобразовании формата или параметров программных или сетевых запросов к компьютерным ресурсам с целью обеспечения независимости процессов обработки информации от программной или аппаратной платформы информационной системы.
Виртуализация - это механизм позволяющий разделить аппаратные компоненты одного компьютера (процессоры, память, хранилище и др.) на несколько виртуальных компьютеров, называемых виртуальными машинами
Гипервизоры первого типа (автономные гипервизоры).
ГИПЕРВИЗОРЫ - МОНИТОРЫ ВИРТУАЛЬНЫХ МАШИН (КОРОЛЬКОВА)
Запускаются на аппаратном обеспечении хоста, управляют оборудованием и виртуальными машинами. Этот гипервизор похож на ОС, поскольку это единственная программа, запущенная в самом привилегированном режиме. Его работа заключается в поддержке нескольких копий имеющегося оборудования, которое называется виртуальными машинами, что похоже на выполнение процессов в обычной операционной системе.
К гипервизорам первого типа относятся: Microsoft Hyper-V , VMware ESX / ESXi. KVM, Citrix Hypervisor (Xen), Oracle VM Server для SPARC, Oracle VM Server для x86
Гипервизоры второго типа
Иногда называются хостовыми гипервизорами. Запускаются на ОС как любые другие процессы. В этом случае гипервизоры разделяют ОС машины хоста и ОС гостевой машины, а гостевая ОС представлена обычным процессом хоста.
К гипервизорам второго типа относятся VMware Workstation, VMware Player, VirtualBox, Parallels Desktop для Mac.
На практике действительным различием между гипервизорами типа 1 и типа 2 является то, что в типе 2 для создания процессов, сохранения файлов и т. д. используется основная операционная система и ее файловая система. Гипервизор типа 1 не имеет основной поддержки и должен выполнять все эти функции самостоятельно.
Контейнеры (Docker - это контейнер)
Контейнеризация – это легковесная виртуализация и изоляция ресурсов на уровне операционной системы, которая позволяет запускать приложение и необходимый ему минимум системных библиотек в полностью стандартизованном контейнере, соединяющемся с хостом или чем-либо внешним по отношению к нему при помощи определенных интерфейсов. Контейнер не зависит от ресурсов или архитектуры хоста, на котором он работает. Все компоненты, необходимые для запуска приложения, упаковываются как один образ и могут быть использованы повторно. Приложение в контейнере работает в изолированной среде и не использует память, процессор или диск хостовой операционной системы. Это гарантирует изолированность процессов внутри контейнера.
ПРЕИМУЩЕСТВА КОНТЕЙНЕРОВ
Гибкая среда. Самое большое преимущество в использовании технологий контейнеров заключается в том, что их можно создавать гораздо быстрее, чем экземпляры виртуальных машин. Их легкий вес обеспечивает меньшие накладные расходы с точки зрения производительности и размера.
Повышенная производительность. Контейнеры повышают производительность разработчиков за счет устранения межсетевых зависимостей и конфликтов. Каждый контейнер может рассматриваться как отдельный микросервис и, следовательно, может быть независимо обновлен без каких-либо проблем с синхронизацией.
Управление версиями позволяет отслеживать версии контейнера, следить за различиями между ними и т. д. Переносимость среды вычислений. Контейнеры инкапсулируют все соответствующие детали, такие как зависимости приложений и операционные системы, необходимые для запуска приложения. Это облегчает переносимость образа контейнера из одной среды в другую. Например, один и тот же образ можно использовать для работы в среде Windows/Linux или dev/test/stage. Стандартизация. Большинство контейнеров основаны на открытых стандартах и могут работать во всех основных дистрибутивах Linux, Microsoft и т. д.
Безопасность. Контейнеры изолируют процессы одного контейнера от другого и от базовой инфраструктуры. Таким образом, любое обновление или изменение в одном контейнере не влияет на другой контейнер.
НЕДОСТАТКИ КОНТЕЙНЕРОВ
Повышенная сложность: при n числе контейнеров, работающих с приложением, также увеличивается коэффициент сложности. Управление множеством контейнеров может быть сложной задачей в производственной среде. Такие инструменты, как Kubernetes и Mesos, могут облегчить управление большим количеством контейнеров. Также сложность заключается в том, что обычно в контейнер «пакуется» гораздо больше ресурсов, чем нужно, а это приводит к разрастанию образа и большому размеру контейнера.
Поддержка Native Linux: большинство контейнерных технологий, таких как Docker, основаны на Linux-контейнерах (LXC). Поэтому запуск этих контейнеров в среде Microsoft - немного неуклюжий процесс.