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