- •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. Монитор
14. Процессы и потоки. Состояния потока
Компьютерная программа - статический объект, комбинация компьютерных инструкций и данных, позволяющая аппаратному обеспечению вычислительной системы выполнять функции вычисления или функции управления.
Процесс – программа, находящаяся в стадии выполнения. Процесс рассматривается как заявка на потребление всех видов ресурсов, кроме одного – процессорного времени.
Потоки возникли как средство распараллеливания вычислений в рамках одного процесса. Процессорное время выделяется потокам, а не процессорам. В простейшем случае процесс состоит из одного потока.
Пример: Программа является рецептом в кулинарной книге. Процессом является сам процесс приготовления по этому рецепту. Ресурсы, выделяемые процессу, - это ингредиенты.
Преимущества использования потоков:
Создание потоков требует от ОС меньших накладных расходов, чем при создании процессов. Быстрота создания потока по сравнению с процессом
Потоки одного процесса могут взаимодействовать не обращаясь к ОС, а используя общую память, т.е. все потоки одного процесса имеют единое адресное пространство, и, таким образом, нет необходимости обращения к ОС, если надо обмениваться данными. Следовательно, повышается производительность программы.
Состояния потоков:
Выполнение – активное состояние, во время которого поток обладает всеми необходимыми ресурсами и непосредственно выполняется процессором. В этом состоянии поток выполняет все инструкции.
Готовность – пассивное состояние, поток заблокирован в связи с внешними по отношению к нему обстоятельствами. У потока есть все необходимые ресурсы, но процессорного времени у него нет. Как только планировщик выбирает этот поток, то он перейдёт в состояние выполнения.
Ожидание – пассивное состояние, находясь в котором поток заблокирован по своим внутренним причинам. Например, поток выполнил системный вызов и сообщил ОС, что он собирается синхронизировать свою работу с каким-то событием, а событие ещё не произошло.
Граф состояний потока:
Поток выбран на выполнение;
Поток ожидает завершения ввода/вывода;
Ввод/вывод завершен (событие произошло);
Поток вытеснен планировщиком.
15. Планирование и диспетчеризация потоков, моменты перепланировки.
Переход от одного потока к другому осуществляется в результате планирования и диспетчеризации.
Планирование включает в себя решение двух задач:
Определение момента времени для смены текущего активного потока;
Выбор для выполнения потока из очереди готовых потоков.
Планирование может быть динамическим (решения принимаются во время работы системы на основе анализа текущей ситуации (работа регулировщика на перекрёстке)) и статическим (решения приняты заранее, работа по расписанию (расписание на вокзале)).
Диспетчеризация - это реализация найденного в результате планирования решения, то есть в переключении процессора с одного потока на другой. Диспетчеризация сводится к следующему:
Сохранение контекста текущего потока, который требуется сменить;
Загрузка контекста нового потока, выбранного в результате планирования;
Запуск нового потока на выполнение.
Ситуации, когда необходимо перепланировка:
Время, отведенное активной задаче на выполнение, закончилось. Планировщик переводит задачу в состояние готовности и выполняет перепланирование. Надо выбрать новый поток на выполнение.
Активная задача выполнила системный вызов, связанный с запросом на ввод/вывод или на доступ к ресурсу, который в настоящий момент занят. Планировщик переводит задачу в состояние ожидания и выполняет перепланирование (поток выполняет системный вызов, и этот вызов - повод перевести поток в состояние ожидания).
Активная задача выполнила системный вызов, связанный с освобождением ресурса. Если есть, то она переводится из состояния ожидания в состояние готовность. Проверяются приоритеты готовых к выполнению задач (текущий поток освободил ресурс, и это повод активизироваться планировщику, и посмотреть, не дожидается ли кто-то освобождения этого ресурса, и если такой поток есть, то он переводится в состояние готовности из состояния ожидания).
Завершение периферийным устройством операции ввода/вывода переводит соответствующую задачу в очередь готовых, и выполняется планирование (устройство завершило операцию ввода-вывода, и кто-то ожидал завершения этой операции, и поток переводится в состояние готовности).
Внутреннее прерывание сигнализирует об ошибке, которая произошла в результате выполнения активной задачи. Планировщик снимает задачу и выполняет перепланирование.
