- •1. Виды прерываний. Их роль в ос.
- •2. Понятие ресурса. Свойства и классификация ресурсов. Действия над ресурсами.
- •3. Понятие исключительной ситуации. Причины возникновения и механизмы обработки исключительных ситуаций.
- •4. Задачи синхронизации
- •5. Понятия чередования, состояния гонки и взаимоисключения.
- •6. Понятие атомарной операции. Механизмы поддержки атомарных операций.
- •7. Способы и алгоритмы синхронизации. Эквивалентность механизмов синхронизации.
- •1 Запрет прерываний
- •2 Переменная-замок
- •3 Алгоритм Петерсона
- •4 Алгоритм булочной (Bakery algorithm)
- •Эквивалентность семафоров, мониторов и сообщений
- •8. Объект синхронизации «критическая секция».
- •9. Объект синхронизации «семафор».
- •10. Объект синхронизации «мьютекс».
- •11. Понятие операционной системы. Назначение и функции операционной системы.
- •12. Классификация операционных систем.
- •13. Основные компоненты операционной системы. Взаимодействие компонентов операционной системы.
- •14. Ядро операционной системы. Состав и функции ядра операционной системы.
- •15. Архитектура операционных систем с «большим ядром».
- •16. Архитектура микроядерных операционных систем.
- •17. Архитектура нано- и пикоядерных операционных систем.
- •18. Концепция монолитного ядра операционной системы.
- •19. Концепция модульного ядра операционной системы.
- •20. Понятие процесса. Свойства и характеристики процессов.
- •21. Понятие вычислительного потока. Свойства и характеристики потоков (нитей)
- •23. Многозадачность в операционных системах. Различные типы многозадачности.
- •24. Простейшие схемы управления памятью.
- •25. Критерии планирования процессов и требования к алгоритмам планирования.
- •26, 29. Страничная, сегментная и странично-сегментная организация памяти.
- •27. Алгоритмы планирования процессов fcfs, rr, sjf.
- •28. Понятие адресного пространства. Виды адресных пространств.
- •29. Страничная, сегментная и странично-сегментная организация памяти.
- •30. Его нету.
- •31. Понятие ресурса. Виды ресурсов. Управление ресурсами.
- •33. Память, как ресурс операционной системы
- •34. Аппаратная поддержка виртуальной памяти
- •36. Алгоритмы замещения страниц. Fifo, lru, nfu, оптимальный алгоритм
- •37. Механизм трансляции адреса. Структура таблицы страниц. Аппаратная поддержка
- •40. Понятие директории. Реализация директории. Корневая директория.
- •50.Сообщения как механизм межпроцессного взаимодействия.
- •51. Сообщения как механизм межпроцессного взаимодействия.
- •52. Механизм межпроцессного взаимодействия «общая память».
- •53. Механизм межпроцессного взаимодействия «пайп».
- •54. Механизм межпроцессного взаимодействия «сокет».
5. Понятия чередования, состояния гонки и взаимоисключения.
В мультипрограммных однопроцессорных системах процессы чередуются, обеспечивая эффективное выполнение программ. В многопроцессорных системах возможно не только чередование, но и перекрытие процессов.
Про недетерминированный набор программ говорят, что он имеет race condition (состояние гонки, состояние состязания).
Каждый процесс, обращающийся к разделяемым ресурсам, исключает для всех других процессов возможность одновременного с ним общения с этими ресурсами, если это может привести к недетерминированному поведению набора процессов. Такой прием называется взаимоисключением (mutual exclusion). Если очередность доступа к разделяемым ресурсам важна для получения правильных результатов, то одними взаимоисключениями уже не обойтись.
6. Понятие атомарной операции. Механизмы поддержки атомарных операций.
Атомарные операции — операции, выполняющиеся как единое целое, либо не выполняющиеся вовсе. Атомарность операций имеет особое значение в многопроцессорных компьютерах (и многозадачных операционных системах), так как доступ к разделяемым ресурсам должен быть обязательно атомарным. Атомарная операция открыта влиянию только одного потока.
В RISC-процессорах с архитектурой DEC Alpha, PowerPC, MIPS и ARM (ARMv6 и старше) поддерживается механизм неблокирующего эксклюзивного доступа к памяти. Метод основывается на паре инструкций эксклюзивного чтения-записи LL/SC:
загрузка с пометкой (LL—load linked),
попытка записи (SC—store conditional)
Первая инструкция загружает переменную из памяти в регистр и помечает адрес памяти для эксклюзивного доступа. Далее производятся необходимые изменения в регистре. Запись из регистра в память производится только если значение в памяти не менялось с момента последней инструкции загрузки. Если операция не выполнена, следует повторить всю последовательность операций от момента чтения переменной из памяти до попытки сохранения в память.
7. Способы и алгоритмы синхронизации. Эквивалентность механизмов синхронизации.
1 Запрет прерываний
Наиболее простым решением поставленной задачи является следующая организация пролога и эпилога:
while (условие) {
запретить все прерывания
критическая секция
разрешить все прерывания
остальной код }
Поскольку, выход процесса из состояния исполнения без его завершения осуществляется по прерыванию, то внутри критической секции никто не может вмешаться в его работу. Однако такое решение чревато далеко идущими последствиями, поскольку разрешает процессу пользователя разрешать и запрещать прерывания во всей вычислительной системе.
2 Переменная-замок
В качестве следующей попытки решения задачи для пользовательских процессов рассмотрим другое предложение. Возьмем некоторую переменную, доступную всем процессам, и положим ее начальное значение равным 0. Процесс может войти в критическую секцию только тогда, когда значение этой переменной-замка равно 0, одновременно изменяя ее значение на 1 - закрывая замок. При выходе из критической секции процесс сбрасывает ее значение в 0 - замок открывается.