рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Межпроцессное взаимодействие в ОС Linux

Межпроцессное взаимодействие в ОС Linux - раздел Компьютеры, Межпроцессное взаимодействие в ОС Linux Цель Работы: Научиться Использовать Каналы И Именованные...

Цель работы: научиться использовать каналы и именованные каналы для межпроцессного взаимодействия в ОС Linux.

 

I. Каналы (unnamed pipes)

 

Неименованный канал, или просто канал, - это однонаправленный канал связи в ОС UNIX. Каждый канал имеет два конца: входной (для записи, upstream end) и выходной (для чтения, downstream end). Каждый из двух концов канала имеет свой собственный дескриптор, являющийся целым числом, как и дескриптор файла. Оба дескриптора создаются при создании канала системным вызовом pipe(). Используя канал, один процесс может записывать данные во входной конец канала, а другой процесс может читать эти данные из выходного конца канала.

Неименованные каналы обычно используются для обмена сообщениями между связанными процессами (например, между двумя дочерними процессами, имеющими одного и того же родителя). Через канал возможно взаимодействие между родителем и его дочерним процессом, между дедом и внуком и т.п. С логической точки зрения канал является специальным файлом, и если канал был создан каким-либо процессом, то он может использоваться любыми процессами в группе, включая процесс-создатель и всех его потомков.

В команде оболочки канал создается при помощи символа "|" (см. лабораторную работу 1).

В программе неименованный канал создается при помощи системного вызова pipe():

ret = pipe (fd);

где ret - код возврата целого типа, fd - массив int fd[2]из двух элементов, в который записываются значения в результате этого системного вызова. Системный вызов pipe() возвращает 0 в случае успеха и -1 в случае ошибки.

Если системный вызов pipe() завершился успешно, то в первый элемент массива, fd[0], записывается дескриптор выходного конца созданного канала (для чтения), и в fd[1] - дескриптор входного конца (для записи).

В этой части лабораторной работы необходимо создать неименованный канал в начале работы родительского процесса, затем создать два дочерних процесса. Один из этих дочерних процессов будет выполнять какую-либо команду оболочки (например, ls -l /home/student) и записывать результаты работы во входной конец канала. Другой дочерний процесс (выполняющий, например, команду sort) будет получать данные из выходного конца того же канала. Таким образом, результат выполнения этих двух дочерних процессов будет идентичен выполнению последовательности двух команд оболочки (см. рис.1):

– Конец работы –

Эта тема принадлежит разделу:

Межпроцессное взаимодействие в ОС Linux

На сайте allrefs.net читайте: "Межпроцессное взаимодействие в ОС Linux"

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Межпроцессное взаимодействие в ОС Linux

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Ls -l /home/student | sort
где "|" - символ операции канала в оболочке.     Задание 1.

Ls -l /home/student | sort
1.3. Замените в исходном тексте программы оператор (дайте этой программе имя pipework1.c) execlp ("ls", "ls", "-l",

Cat > fifo1
Затем набирайте произвольные строки, завершите ввод символом конца файла CTRL-d. Что будет выведено в первом окне? В программе именованный канал создается при помощ

Вопросы к части I
1. Для чего предназначены неименованные каналы? 2. Объясните параметры системного вызова pipe(). 3. Что такое входной и выходной конец канала? 4. Как в п

Вопросы к части II
1. В чем отличие именованных каналов от неименованных? 2. Как создать в программе именованный канал? 3. Каково действие режима O_NONBLOCK, указываемого при открыт

Источники информации
1. Стивенс У. UNIX: взаимодействие процессов. - СПб: Питер, 2003. (Глава 4). 2. Митчел М., Оулдем Дж., Самьюэл А. Программирование для Linux. Профессиональный подход. - М.: Издательский до

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги