![](/user_photo/2706_HbeT2.jpg)
- •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 Алгоритм Петерсона
Первое решение проблемы, удовлетворяющее всем требованиям и использующее идеи ранее рассмотренных алгоритмов, было предложено датским математиком Деккером (Dekker). В 1981 году Петерсон (Peterson) предложил более изящное решение. Пусть оба процесса имеют доступ к массиву флагов готовности и к переменной очередности.
При исполнении пролога критической секции процесс Pi заявляет о своей готовности выполнить критический участок и одновременно предлагает другому процессу приступить к его выполнению. Если оба процесса подошли к прологу практически одновременно, то они оба объявят о своей готовности и предложат выполняться друг другу. При этом одно из предложений всегда последует после другого. Тем самым работу в критическом участке продолжит процесс, которому было сделано последнее предложение.
4 Алгоритм булочной (Bakery algorithm)
Алгоритм Петерсона дает нам решение задачи корректной организации взаимодействия двух процессов. Давайте рассмотрим теперь соответствующий алгоритм для n взаимодействующих процессов, который получил название алгоритм булочной. Основная его идея выглядит так. Каждый вновь прибывающий клиент (он же процесс) получает талончик на обслуживание с номером. Клиент с наименьшим номером на талончике обслуживается следующим. К сожалению, из-за неатомарности операции вычисления следующего номера алгоритм булочной не гарантирует, что у всех процессов будут талончики с разными номерами. В случае равенства номеров на талончиках у двух или более клиентов первым обслуживается клиент с меньшим значением имени (имена можно сравнивать в лексикографическом порядке). Разделяемые структуры данных для алгоритма - это два массива
Эквивалентность семафоров, мониторов и сообщений
Мы рассмотрели три высокоуровневых механизма, использующихся для организации взаимодействия процессов. Можно показать, что в рамках одной вычислительной системы, когда процессы имеют возможность использовать разделяемую память, все они эквивалентны. Это означает, что любые два из предложенных механизмов могут быть реализованы на базе третьего, оставшегося механизма.
8. Объект синхронизации «критическая секция».
Критическая секция – участок исполняемого кода программы, в котором производится доступ к общему ресурсу(данным или устройству), который не должен быть одновременно использован более чем одним потоком исполнения.
Также это объект синхронизации потоков, позволяющий предотвратить одновременное выполнение некоторого набора операций несколькими потоками.
Здесь есть один маленький и тонкий момент, который относится к синхронизации как таковой. Этот момент в том, что физически данные не защищены. Никто не помещает потоку обратиться к разделяемым данным. Синхронизация это подсказка как должен себя вести объект при доступе к данным. Хороший пример - это светофор. На красный нужно стоять. Но не факт, что все это выполняют.
9. Объект синхронизации «семафор».
Семафор – средство управления процессами, объект ограничивающий количество потоков через данный критический участок кода (счетчик). На семафоре 5 цветов(кр. Желт. Зел. Син. бел).
Семафоры традиционно использовались для синхронизации процессов, обращающихся к разделяемым данным. Каждый процесс должен исключать для всех других процессов возможность одновременно с ним обращаться к этим данным (взаимоисключение). Когда процесс обращается к разделяемым данным, говорят, что он находится в своем критическом участке.
Данный объект синхронизации позволяет ограничить доступ потоков к объекту синхронизации на основании их количества. Например, мы хотим, чтобы к какому-нибудь объекту могли обратиться максимум 3 потока. Не больше. Тогда нам нужен семафор. Сначала семафор инициализируется и ему передается количество потоков, которые к нему могут обратиться. Дальше при каждом обращении к ресурсу его счетчик уменьшается. Когда счетчик уменьшиться до 0 к ресурсу обратиться больше нельзя. При отсоединении потока от семафора его счетчик увеличивается, что позволяет другим потокам обратиться к нему. Сигнальному состоянию соответствует значение счетчика больше нуля. Когда счетчик равен нулю, семафор считается не установленным (сброшенным).