Написать программу для передачи сообщений между процессами через общий файл. Программа включает один процесс Receiver
и несколько процессов Sender
. Процессы Sender
посылают сообщения процессу Receiver
.
Процесс Receiver должен выполнять следующие действия:
- Ввести с консоли имя бинарного файла и количество записей в бинарном файле, который будет использоваться для передачи сообщений.
- Создать бинарный файл для сообщений. Максимальная длина сообщения 20 символов.
- Ввести с консоли количество процессов
Sender
. - Запустить заданное количество процессов
Sender
. Каждому процессуSender
передать через командную строку имя файла для сообщений. - Ждать сигнал на готовность к работе от всех процессов
Sender
. - Выполнять циклически следующие действия по команде с консоли:
- читать сообщение из бинарного файла или
- завершить свою работу.
Замечание: Процесс Receiver переходит в состояние ожидания поступления нового сообщения, если вызывается команда чтения сообщения из пустого бинарного файла.
Процесс Sender должен выполнять следующие действия:
- Открыть файл для передачи сообщений. Имя файла получить из командной строки.
- Отправить процессу Receiver сигнал на готовность к работе.
- Выполнять циклически следующие действия по команде с консоли:
- отправить процессу Receiver сообщение или
- прекратить свою работу.
Текст сообщения вводится с консоли. Длина сообщения меньше 20 символов.
Замечание: Процесс Sender переходит в состояние ожидания, если вызывается команда записи сообщения в заполненный сообщениями бинарный файл.
Передача сообщений через бинарный файл должна быть организована как кольцевая очередь FIFO. Т.е. процесс Receiver должен читать сообщения в соответствии с порядком их отправления процессами Sender.