- •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. Модель рабочего множества. Трешинг. Страничные демоны.
28. Стратегии управления виртуальной памятью
1. Стратегия подкачки. Заключается в следующем: когда загружать в физическую память логические страницы и в каком количестве. Варианты: 1) по запросу страница загружается только тогда, когда к ней производится обращение. 2) подкачка с упреждением. Наряду с запрошенной страницей, загружается также несколько соседних. Поскольку предполагается, что согласно свойству локальности в ближайшее время будут обращения и к ним тоже. Поскольку размер блока чтения-записи на жесткий диск обычно в несколько раз превышает размер страницы, то используется подкачка с упреждением: за один цикл чтения загружается несколько страниц.
2. Стратегия размещения. Заключается в следующем: куда загрузить новую страницу. Загружаемые страницы размещаются в любом свободном физическом фрейме.
3. Стратегия замещения. Заключается в следующем: какую страницу из загруженных можно выгрузить во вторичную память для того, чтобы освободить место для новой страницы. Процесс замещения заключается в следующем: при страничном нарушении управление передается менеджеру страниц, который определяет необходимость выгрузки какой-либо страницы. После этого, согласно алгоритму замещения, выбирает страницу, которая будет выгружена. Определяет, модифицировалась ли эта страница. Если да, то перезаписывает её во вторичной памяти. После этого загружает новую страницу, соответствующим образом изменяет таблицу страниц процесса и возвращает управление процессу в ту же команду, которая вызвала страничное нарушение.
29. Дисциплины замещения страниц: fifo
Алгоритм FIFO ассоциирует с каждым сегментом время, когда он был помещен в память. Для замещения выбирается наиболее старый сегмент. Учет времени необязателен, когда все сегменты в памяти связаны в FIFO-очередь и каждый помещаемый в память сегмент добавляется в хвост этой очереди. Алгоритм учитывает только время нахождения сегмента в памяти, но не учитывает фактическое использование сегментов.
Например, первые загруженные сегменты программы могут содержать переменные, используемые на протяжении работы всей программы. Это приводит к немедленному возвращению к только что замещенному сегменту.
Недостаток алгоритма: самая старая страница может быть одной из самых используемых, а, значит, в ближайшее время будут к ней обращения и страничные нарушения.
30. Дисциплины замещения страниц: оптимальный алгоритм
Выталкивается та страница, обращений к которой не будет в течение максимального времени.
На момент возникновения ошибки отсутствия страницы в памяти находится определенный набор страниц. К некоторым из этих страниц будет осуществляться обращение буквально из следующих команд (эти команды содержатся на странице). К другим страницам обращения может не быть и через 10, 100 или, возможно, даже через 1000 команд. Каждая страница может быть помечена количеством команд, которые должны быть выполнены до первого обращения к странице.
Оптимальный алгоритм замещения страниц гласит, что должна быть удалена страница, имеющая пометку с наибольшим значением. Если какая-то страница не будет использоваться на протяжении 8 миллионов команд, а другая какая-нибудь страница не будет использоваться на протяжении 6 миллионов команд, то удаление первой из них приведет к ошибке отсутствия страницы, в результате которой она будет снова выбрана с диска в самом отдаленном будущем. Компьютеры, как и люди, пытаются по возможности максимально отсрочить неприятные события.
Единственной проблемой такого алгоритма является невозможность его реализации. К тому времени, когда произойдет ошибка отсутствия страницы, у операционной системы не будет способа узнать, когда каждая из страниц будет востребована в следующий раз. Тем не менее при прогоне программы на симуляторе и отслеживании всех обращений к страницам появляется возможность реализовать оптимальный алгоритм замещения страниц при втором прогоне, воспользовавшись информацией об обращении к страницам, собранной во время первого прогона.
