Semaphores
1) Используйте аргументы project3 команда дополнительно указать количество посетителей парка. (По умолчанию 45 гостей).2) Добавить дельты часы на вашей операционной системе. Дельта тактов в десятом-оф-секунде. (См. Delta часов).3) Создать задачу для каждого посетителя парка (NUM_VISITORS), водитель (NUM_DRIVERS), и тур автомобиля (NUM_CARS). Эти задачи должны все работать на том же уровне приоритета.4) Обновление данных парк структуру переменных соответствующим образом, как посетитель, водитель и автомобиль государств изменения. Парк отображается с помощью парке данным строим каждый второй целевой jurassicTask.5) Каждая задача (посетитель, водитель и автомобиль) должен создать свою собственную семафора времени, которое используется для временных функций (т. е. задержка прибытия, стоя в очереди, время в сувенирный магазин или музей). Дельта часы должны быть использованы для semSignal эти семафоры.6) Парк посетители должны прибыть случайно в парке в течение 10 секундного периода. Кроме того, посетители должны стоять в очередях за случайное время, прежде чем обратиться билет или вход в музей или магазин сувениров (3 секунды максимум).7) Использование ресурсов семафоров (счета) для управления доступом к парку, число билетов, и количество людей, допускается в сувенирный магазин и музей.8) Используйте мьютекс семафоров (бинарный) для защиты любых критических секций кода в вашей реализации, например, при обновлении дельты часов, приобретая водителя, чтобы купить билет или диск тура автомобиля, доступа к глобальным данным, или выборка состоянии семафора.9) использование семафоров (бинарный) для синхронизации и общаться между событиями задач, таких как разбудить водителя, сигнал данные верны, сигнал изменения режима, и т.д.10) Используйте по крайней мере один semTryLock функции в моделировании.11) "SWAP" директива должна быть вставлена между каждой строки кода в юрский парк моделирования. Парк критический код должен быть защищен parkMutex мьютекс.12) Парк моделирования также создает "lostVisitor" задача, которая подводит критических переменных в парк, чтобы обнаружить любые потерянные посетители. Осторожно!13) Так как все 3 задачи проекта должны быть на одном уровне приоритетности, необходимо, чтобы парк полной инициализации прежде чем приступить к созданию вашего посетителя, автомобиль, и водитель задач. Для этого выполните ", а SWAP (parkMutex!)," Петля сразу после jurassicPark задача будет создана.14) Ты для осуществления справедливого алгоритма, который предотвращает тупик и голода, а не их обнаружения.