- •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. Монитор
Классические задачи синхронизации: “производители-потребители”, “проблема обедающих философов”, “проблема спящего брадобрея”.
Производители-потребители
Проблема обедающих философов
Формулировка задачи
Пять философов сидят вокруг круглого стола. Перед каждым стоит тарелка с бесконечной лапшой. Ещё на столе лежат пять вилок, каждая ровно посередине между двумя ближайшими тарелками. Чтобы есть лапшу, каждому философу нужно держать в руках две вилки.
Философ может либо есть, либо размышлять. За одно действие философ может взять одну вилку со стола в руку или положить её из руки на стол.
Из-за того, что они будут делать всё синхронно, они снова не смогут приступить к еде: они вечно будут поднимать и опускать левую вилку, пока не умрут от голода. Это - проблема ресурсного голодания, возникающая из-за отсутствия синхронизации.
В прошлый раз мы обсуждали, почему это задача не так тривиальна, как может показаться. Сейчас мы рассмотрим три разных способа решения задачи.
1. Официант
Есть некий внешний человек, который и говорит, можно ли взять вилку или нет. Если, допустим, четыре философа держат по одной вилке, то пятому официант запретит брать вилку, чтобы не заблокировать остальных.
2. Иерархия вилок
Нумеруем вилки от 1 до 5. Каждый раз философ берёт вилку с меньшим номером, а потом с большим, а кладёт — наоборот. Если вилки с наименьшим номером нет, то философ ничего не берёт. Тогда следующим шагом эту вилку возьмёт тот философ, который уже взял одну вилку.
3. Монитор
Философы, прежде чем начать брать вилки, проверяют, что их соседи не едят. Тогда сначала будут есть философы 1 и 3, потом — 2 и 4. Чтобы философ 5 (или любой другой философ) не остался голодным, можно ещё отслеживать, сколько раз голодный философ ел, прежде чем он возьмет первую вилку. Если философ ел больше раз, чем другие, он тоже не может приступить к еде.
Опишите последствия повреждения блока данных для заданного файла: а) для непрерывных, б) связанных, в) индексированных (основанных на использовании таблицы) схем размещения блоков).