Введение в архитектуру компьютеров

Рассмотрим набор из восьми частично


1. Рассмотрим набор из восьми частично упорядоченных заданий {A, B, C, D, E, F, G, H}. Задание A должно предшествовать заданиям C, B и E. Задания E и D должны предшествовать заданию F. Задания C и B должны
предшествовать заданию D. Задание F должно предшествовать заданиям

G и H.
a)
Изобразите выполнение этой последовательности заданий в виде программы с помощью элементарных операций "parbegin" и "parend", используя везде, где возможно, параллелизм заданий.
b)  Теперь допустим, что добавлено дополнительное ограничение: задание E должно предшествовать заданию C. Можете ли вы по-прежнему найти "максимально использующее параллельность" решение с помощью операций "parbegin" и "parend"?
c)   Если бы было разрешено пользоваться семафорами, как бы изменились ваши ответы на вопросы (а) и (б)?
2. Используя защиту памяти, организуйте взаимное исключение между n процессами, у каждого из которых есть один критический участок.
3. Задача о спящем парикмахере (Дейкстра, 1968). Парикмахерская состоит из комнаты ожидания W и комнаты В, в которой стоят парикмахерские кресла. Через раздвижные двери D можно попасть из комнаты В в комнату W, а из комнаты W на улицу. Если парикмахер заходит в комнату W и никого там не обнаруживает, то он идет спать. Если клиент входит в парикмахерскую и находит парикмахера спящим, то он должен его разбудить. В комнате ожидания имеется конечное число стульев n. Запрограммируйте парикмахера и клиентов как процессы. Для синхронизации их работы воспользуйтесь аппаратом пересылки сообщений. Что, если бы были два парикмахера?
4. Пусть дан обеденный стол с пятью стульями и пятью приборами. Около каждого прибора имеется вилка. Чтобы съесть свою порцию спагетти, гостю необходимы две вилки, находящиеся по соседству с его тарелкой. Пусть за столом сидят пятеро гостей, которые попеременно то едят спагетти, то говорят о политике (для разговоров о политике вилок не требуется). Запрограммируйте гостей как набор процессов, используя семафоры для передачи сообщений.

Содержание раздела