Операционные системы. Теория и практика. Замятин А.В. - 278 стр.

UptoLike

Составители: 

278
Сначала происходит попытка создания очереди с помощью имени не-
существующего файла. Пример показывает, что файл, указываемый в ка-
честве аргумента функции ftok, обязательно должен существовать. Затем
создается файл /tmp/testl и используется его имя при создании очереди
сообщений. После этого в очередь помещаются три сообщения длиной 1, 2
и 3 байта со значениями типа 100, 200 и 300. Программа ipcs показывает,
что в очереди находятся 3 сообщения общим объемом 6 байт.
Теперь c помощью аргумента type при вызове msgrcv считываются
сообщения в произвольном порядке:
msgrcv -t 200 /tmp/testl
read 2 bytes, type 200
msgrcv -t -300 /tmp/testl
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
9.5 Последовательность выполнения работы
1. Ознакомиться с теоретическим материалом.
2. Запустить несколько заданий (например, команд просмотра фай-
лов less), возвращаясь в командную строку комбинацией клавиш Ctrl-Z
и изучить действие команд ps, jobs, fg, bg, kill, killall.
3. Обеспечить синхронизацию процессов и передачу данных между
ними на примере двух приложений «клиент» и «сервер», создав два
процесса (два исполняемых файла) процесс «клиент» (первый испол-
няемый файл) и процесс «сервер» (второй исполняемый файл).
С помощью механизмов межпроцессного взаимодействия обеспечить
передачу информации от «клиента» к «серверу» и наоборот. В качестве
типа передаваемой информации можно использовать: данные, вводимые