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