Сделать ОДНУ НА ВЫБОР программу на С++. Методичка в файле.
1. Задача о картинной галерее. Вахтер следит за тем, чтобы в картинной галерее было не более 50 посетителей. Для обозрения представлены 5 картин. Посетитель ходит от картины к картине, и если на картину любуются более чем десять посетителей, он стоит в стороне и ждет, пока число желающих увидеть картину не станет меньше. На экран нужно вывести номер картины и количество посетителей возле нее.
Необходимо реализовать синхронизацию двух потоков, которые инициализируют массив целых чисел. Этот массив будет разделяемым ресурсом. Выбрать средство синхронизации. На экран нужно вывести номер потока, номер ячейки, которую он инициализирует и элемент этой ячейки.
2. Задача о каннибалах. Племя из n дикарей ест вместе из большого горшка, который вмещает m кусков тушеного миссионера. Когда дикарь хочет обедать, он ест из горшка 1 кусок, если только горшок не пуст, иначе дикарь будит повара и ждет, пока тот не наполнит горшок. Повар, сварив обед, засыпает. Создать многопоточное приложение, моделирующее обед дикарей. При решении задачи пользоваться семафорами. На экран нужно выводить состояние каждого из n дикарей (ест или ждет), состояние повара (спит или готовит). сообщение о наполненности горшка (полон или пуст).
3. Задача о болтунах. N болтунов имеют телефоны, ждут звонков и звонят друг другу, чтобы побеседовать. Если телефон занят, болтун будет звонить, пока ему кто-нибудь не ответит. Побеседовав, болтун не унимается и или ждет звонка или звонит на другой номер. Создать многопоточное приложение, моделирующее поведение болтунов. Для решения задачи использовать мьютексы. В результате выполнения программы на экран нужно вывести номер болтуна, который звонит и номер болтуна, который с ним разговаривает. После окончания разговора вывести на экран сообщение о состоянии болтуна (ждет или звонит).
4. Задача о клумбе. На клумбе растет 40 цветов, за ними непрерывно следят два садовника и поливают увядшие цветы, при этом оба садовника очень боятся полить один и тот же цветок. Создать многопоточное приложение, моделирующее состояние клумбы и действия садовников. Для изменения состояния цветов создать отдельный поток. На экран нужно вывести номер садовника и номер цветка, который он полил. После того, как все цветки были политы, вывести их новое состояние.