
- •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. Монитор
29. Организация обмена данными между процессами (каналы, разделяемая память, почтовые ящики, сокеты).
Пользовательские процессы изолированы в своих адресных пространствах. И в случае необходимости обмена данными между потоками разных процессов это становится проблемой.
Конвейер. Представляет собой буфер в оперативной памяти, поддерживающий очередь байт по алгоритму ФИФО
Два виртуальных адресных пространств: процесс - отправитель/получатель, пользовательских код, буфер обмена. Передать напрямую не получается, так как адресные пространства изолированы. Поэтому с помощью системной области через буфер общей системной памяти передаем нашу последовательность байт.
Каналы.
безымянные каналы. Позволяют обмениваться данными только родственным процессам. Т.е. если у вас родственные процессы, то действует и используется дескриптор канала. Отличие неименованного канала от файла: прочитанная информация удаляется и не м.б. прочитана повторно.
именованные каналы. Более универсальны. Имеют имя, которое является записью в каталоге файловой системы ОС (не только про файлы). Пригодны для обмена данными между произвольными процессами или потоками этих процессов.
Каналы являются одной из самых сильных и характерных особенностей ОС Linux, доступных даже на уровне командного интерпретатора. Программный канал – это файл особого типа (FIFO (first in, first out) – «первым вошел – первым вышел»). Процессы могут записывать и считывать данные из канала как из обычного файла. Если канал заполнен, процесс записи в канал останавливается до тех пор, пока не появится свободное место, чтобы снова заполнить его данными. С другой стороны, если канал пуст, то читающий процесс останавливается до тех пор, пока пишущий процесс не запишет данные в этот канал. В отличие от обычного файла здесь нет возможности позиционирования по файлу с использованием указателя.
Разделяемая память
Искусственно делаем так, что части виртуальных адресных пространств разных процессов отображается на одну и ту же область физической памяти. И это делает данные доступными и 1-ому и 2-ому процессу.
Использование общей или разделяемой памяти заключается в создании специальной области памяти, позволяющей иметь к ней доступ нескольким процессам. Системные вызовы для работы с разделяемой памятью.
Почтовые ящики
Очереди сообщений в отличии от каналов, представляющих собой неструктурированную последовательность байт, это форматированные сообщения, являющиеся глобальными средствами коммуникации. Каждая очередь в пределах ОС имеет уникальное имя.
Почтовые ящики - особенность Виндовс. Однонаправленные соединения. Поддерживают в отличии от каналов широковещание (рассылку).
Сокеты.
Сокет — это средство связи, позволяющее разрабатывать клиентсерверные системы для локального или сетевого использования.
Представляют собой интерфейс транспортного уровня. Используются для передачи данных по сети от одного процесса к другому.
Для обмена данными каждый процесс (процесс А и процесс Б) реализуют сокет.
Представляют собой клиент-серверную архитектуру. На сервере создается сокет, привязывается к какому-то порту, находится в цикле ожидания (слушает) и когда появляется новое подключение он просыпается.
Не только по сети, но и для обмена на одном устройстве.