Лабораторная 3.
Синхронизация работы параллельных задач
(с помощью системных блокировок)

Процесс может быть заблокирован в ожидании сигналов с внешних устройств или специальных объектов ОС, в ожидании освобождения используемых в данный момент файлов или других видов ресурсов. Таким образом выполняется синхронизация работы параллельно выполняющихся процессов, а также обеспечивается корректность доступа к таким видам ресурсов, которые не допускают своего одновременного использования различными процессами.

Задание

Используя системные средства синхронизации, решить следующую задачу:
Дан текстовый файл, содержащий целое число N. Разработать программу, ожидающую запуск N-1 аналогичных программ после своего запуска. По достижении требуемого количества запущенных копий, программа завершает свою работу. Иными словами, одновременно может быть запущено до N программ, образующих очередь, причем, если очередь заполнена, первая в очереди программа немедленно завершает свою работу, когда в конце очереди появляется новая программа.

Дополнительные задания: