ВУЗ:
Составители:
119
read 1 bytes, type = 100
msgrcv /tmp/testl
read 3 bytes, type = 300
msgrcv -n /tmp/testl
msgrcv error: No message of desired type
В первом примере запрашивается сообщение с типом 200, во вто-
ром примере – сообщение с наименьшим значением типа, не превы-
шающим 300, а в третьем – первое сообщение в очереди. Последний за-
пуск msgrcv иллюстрирует действие флага IPC_NOWAIT.
Удалить очередь можно, вызвав
msgrmid /tmp/test1
4.2. ПОСЛЕДОВАТЕЛЬНОСТЬ ВЫПОЛНЕНИЯ РАБОТЫ
1. Ознакомиться с теоретическим материалом.
2. Запустить несколько заданий (например, команд просмотра
файлов less), возвращаясь в командную строку комбинацией клавиш
Ctrl-Z и изучить действие команд ps, jobs, fg, bg, kill, killall.
3. Обеспечить синхронизацию процессов и передачу данных меж-
ду ними на примере двух приложений «клиент» и «сервер», создав два
процесса (два исполняемых файла) – процесс «клиент» (первый испол-
няемый файл) и процесс «сервер» (второй исполняемый файл).
С помощью механизмов межпроцессного взаимодействия обеспечить
передачу информации от «клиента» к «серверу» и наоборот. В качестве
типа передаваемой информации можно использовать: данные, вводи-
мые с клавиатуры; данные, считываемые из файла; данные, генерируе-
мые случайным образом и т. п.
4. Обмен данными между процессами «клиент»-«сервер» осуще-
ствить следующим образом:
• с использованием программных каналов (именованных либо
неименованных, по указанию преподавателя);
• с использованием (по указанию преподавателя) одного из пере-
численных вариантов:
− разделяемая память (обязательна синхронизация процессов,
например с помощью семафоров);
− очередь сообщений.
