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