- •1. Требования, предъявляемые к алгоритмам организации взаимодействия процессов.
- •2. Способы реализации взаимного исключения: запрещение прерываний
- •3. Способы реализации взаимного исключения: переменная-замок
- •4. Способы реализации взаимного исключения: строгое чередование
- •5. Способы реализации взаимного исключения: флаги готовности
- •6. Способы реализации взаимного исключения: алгоритм Петерсона
- •7. Способы реализации взаимного исключения: алгоритм булочной
- •8. Аппаратная реализация взаимоисключений.
- •9. СемафорныепримитивыДейкстры. Решение задачи производителя и потребителя с помощью семафоров.
- •10. Монитор Хоара как примитив синхронизации высокого уровня. Решение задачи производителя и потребителя с помощью мониторов.
- •11. Тупиковые ситуации.
- •12. Методы борьбы с тупиками: Игнорирование проблемы тупиков.
- •13. Методы борьбы с тупиками: Предотвращение тупиков.
- •14. Методы борьбы с тупиками: Алгоритм Банкира.
- •15. Методы борьбы с тупиками: Нарушение условий возникновения тупиков.
- •16. Методы борьбы с тупиками: Обнаружение тупиков.
- •17. Методы борьбы с тупиками: Восстановление после тупиков.
- •18. Иерархия памяти. Локальность.
- •22. Динамическое распределение памяти: разделы с подвижными границами. Уплотнение памяти. Свопинг.
- •23. Сегментная организация памяти.
- •24. Страничная организация памяти.
- •25. Таблицы страниц: одноуровневые, многоуровневые, инвертированные.
- •26. Сегментно-страничная организация памяти
- •27. Понятие виртуальной памяти. Страничный механизм трансляции.
- •28. Стратегии управления виртуальной памятью
- •29. Дисциплины замещения страниц: fifo
- •30. Дисциплины замещения страниц: оптимальный алгоритм
- •31. Дисциплины замещения страниц: выталкивание дольше всего не использовавшейся страницы.
- •32. Дисциплины замещения страниц: выталкивание редко используемой страницы.
- •33. Модель рабочего множества. Трешинг. Страничные демоны.
15. Методы борьбы с тупиками: Нарушение условий возникновения тупиков.
Тупик – это ситуация, в которой находится процесс, ожидающий событие, которое никогда не произойдет(deadlock).
Тупики возникают вследствие :
Ошибок программирования (отсутствия семафора).
Занятости ресурсов, которые необходимы процессам. Ресурсы бывают разделяемыми и выделяемыми(монопольного владения). Тупики могут возникнуть с одними и с другими, но обычно с ресурсами монопольного владения.
1. Нарушение условия взаимоисключения. Необходимо сделать монопольные ресурсы разделяемые например используя spooling.
2. Нарушение условия ожидания.
Двухфазный захват ресурсов.
Первая фаза: запрос всех необходимых ресурсов сразу.
Вторая фаза: если все ресурсы свободны, то их захват. Если хоты бы один занят, то ожидание.
3. Нарушение условия неперераспределяемости.
Некоторые ресурсы могут безболезненно быть отобраны у одних процессов и выделены другим.
Для некоторых ресурсов такая схема невозможна поскольку не позволит восстановить процесс в исходном состоянии. Сохранение контекстов процесса может быть недостаточно для последовательного восстановления процесса и ресурса в исходном положении.
4. Нарушение условия кругового ожидания.
Ресурсы могут быть пронумерованы и запрашиваться только в порядке возрастания. Вследствие чего ситуация, когда будет запрошен занятый ресурс с меньшим номером, не возникнет.
16. Методы борьбы с тупиками: Обнаружение тупиков.
Тупик – это ситуация, в которой находится процесс, ожидающий событие, которое никогда не произойдет(deadlock).
Тупики возникают вследствие :
Ошибок программирования (отсутствия семафора).
Занятости ресурсов, которые необходимы процессам. Ресурсы бывают разделяемыми и выделяемыми(монопольного владения). Тупики могут возникнуть с одними и с другими, но обычно с ресурсами монопольного владения.
ОС необходимо определять наличие тупиковой ситуации, для того чтобы принять соответствующие действия и, возможно, избежать данной ситуации в последующем. Часто используют алгоритмы обнаружения колец на графах.
17. Методы борьбы с тупиками: Восстановление после тупиков.
Тупик – это ситуация, в которой находится процесс, ожидающий событие, которое никогда не произойдет(deadlock).
Тупики возникают вследствие :
Ошибок программирования (отсутствия семафора).
Занятости ресурсов, которые необходимы процессам. Ресурсы бывают разделяемыми и выделяемыми(монопольного владения). Тупики могут возникнуть с одними и с другими, но обычно с ресурсами монопольного владения.
Большинство систем не имеют достаточно эффективных средств для того, чтобы приостановить процесс, вывести его из системы нарушив тупиковую ситуацию, а после продолжить его с того же самого места. Чаще всего это требует внимание оператора. Самый простой способ восстановления системы после тупика это завершение всех процессов участвующих в круговом ожидании. Чуть сложнее временное перераспределение ресурсов.
