Многопоточная Windows программная модель посещения почтового отделения
Разработать – в визуальном представлении на консоли – многопоточную модель поведения
посетителей почтового отделения.
Приложение должно содержать программу на языке С, решающую поставленную задачу, и командный файл для ее трансляции на всем изучаемом семействе ОС, поддерживаемых в настоящее время, и использующий транслятор gcc.
Суть задачи:
Модерируется поведение 24 посетителей, каждый из которых
назависимо от других входит в почтовое отделение, подходит к автомату выдачи талонов на
обслуживание, если кто-то уже берет талон, то встает в очередь к этому автомату. Затем, когда
подошла его очередь или ее нет, ждет, пока не появиться объявление о его талоне и окне к которому
нужно подойти. Таких окон в модели должно быть 3. Подойдя к окну он обслуживается некоторой
время, задаваемое в программе случайно в пределах 0,6 — 1 минут, после чего отходит и выходит из
помещения. Появление посетителей моделируется как случайное в интервале времени модели от 0,5 до
5 минут. Время срабытавания автомата талонов — 3 сек.
Поведение модели должно отображаться в консольном окне с помощью условных схем, значков и текстов, размер окна не менее 40 строк на 100 столбцов, занимая в ходе моделирующих движений все пространство окна. Отдельный посетитель обозначается одной латинской буквой. Для правильного взаимодействия использовать семафоры или мьютексы, входящие в API Windows.
Также требуется схема алгоритма программы и описание функций(1), глобальных величин(2), семафоров и мьютексов(3).
Пример:
1) int main() – точка входа в программу. Включает в себя инициализацию функции отрисовки городов и дорог, а также запуск нитей городов, инициализацию семафоров и мьютексов.
2) const int stationsCount – целочисленная константа задающая количество станций.
3) print_lock – мьютекс, отвечающий за доступ к выводы в консоль.
Заявки фрилансеров
