Межпроцессное взаимодействие в ОС Linux
Лабораторная работа по курсу "Операционные системы"
I. Каналы (unnamed pipes)
execlp ("ls", "ls", "-l", "/home/student", 0);
несколькими системными вызовами write(), которые запишут в канал… Примечание. Для этой модификации оператор dup2(fd[1],1); НЕ НУЖЕН, его следует убрать.
Mkfifo fifo1
Убедитесь, что в текущем каталоге появился именованный канал. Выпишите в отчет его параметры. Затем выполните команду
Cat < fifo1
Запустите второй экземпляр оболочки. Перейдите во втором окне в каталог данной лабораторной работы. Расположите оба окна так, чтобы они были видны одновременно. Во втором окне введите команду
В программе именованный канал создается при помощи системного вызова mknod() или библиотечной функции mkfifo(), которая, в свою очередь, использует… В этой части лабораторной работы необходимо создать и проверить несколько… Задание3.
Порядок выполнения лабораторной работы
1. Выполните задания 1 - 3.
2. Занесите в отчет результаты выполнения заданий с ответами на все заданные в них вопросы.
Требования
1. При подготовке к лабораторной работе (дома) занесите в отчет тексты программ из заданий 1 (pipework1, pipework2, pipework3, pipework4) и 3 (server2, client2, server3, client3). Тексты программ должны быть прокомментированы.
2. Студент должен знать ответы на следующие вопросы:
2. Объясните параметры системного вызова pipe().
3. Что такое входной и выходной конец канала?
4. Как в программе соединить концы созданного канала со стандартным входным и выходным устройствами?
2. Как создать в программе именованный канал?
3. Каково действие режима O_NONBLOCK, указываемого при открытии именованного… 4. Пусть некоторый процесс пытается писать в именованный канал, в то время как нет процесса, читающего из него. Что…
2. Митчел М., Оулдем Дж., Самьюэл А. Программирование для Linux. Профессиональный подход. - М.: Издательский дом "Вильямс", 2003. (Глава… 3. Конспект лекций.