Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Семинар 5.docx
Скачиваний:
0
Добавлен:
13.01.2020
Размер:
60.59 Кб
Скачать

Семинар 5. Организация взаимодействия процессов через pipe и fifo в unix.

(Основывается на лекции 4)

Предыдущий семинар | Программа курса | Следующий семинар

Программа семинара

  1. Понятие о потоке ввода-вывода

  2. Понятие о работе с файлами через системные вызовы и стандартную библиотеку ввода-вывода.

  3. Понятие о файловом дескрипторе.

  4. Открытие файла. Системный вызов open().

  5. Системные вызовы close(), read(), write().

  6. Понятие о pipe. Системный вызов pipe().

  7. Организация связи через pipe между процессом-родителем и процессом-потомком. Наследование файловых дескрипторов при вызовах fork() и exec().

  8. Особенности поведения вызовов read() и write() для pip’а.

  9. Понятие о FIFO. Использование системного вызова mknod для создания FIFO. Функция mkfifo.

  10. Особенности поведения вызова open() при открытии FIFO.

Цели занятия

  1. Дать понятие о потоке данных в UNIX.

  2. Научить использовать системные вызовы open(), read(), write(), close() при работе с файлами.

  3. Научить создавать pipe и использовать его для связи между родственными процессами.

  4. Научить создавать FIFO и использовать его для связи между неродственными процессами.

  5. Студент должен четко осознать, что содержимое FIFO хранится в оперативной памяти, а не на диске.

Практические работы

  1. Прогон программы для записи в файл, используя вызовы open(), write(), close().

  2. Написание, компиляция и запуск программы для чтения из файла, используя вызовы open(), read(), close()

  3. Прогон программы для pipe в одном процессе.

  4. Прогон программы для организации однонаправленной связи между родственными процессами через pipe.

  5. Написание, компиляция и запуск программы для организации двунаправленной связи между родственными процессами через pipe.

  6. Прогон программы c FIFO в родственных процессах.

  7. Написание, компиляция и запуск программы с FIFO в неродственных процессах.

  8. Неработающий пример для связи процессов на различных компьютерах.

План занятия

  1. Понятие о потоке ввода-вывода.

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

С уществует две модели передачи данных по каналам связи — поток ввода-вывода и сообщения. Из них более простой идеологически является потоковая модель, в которой операции передачи/приема информации вообще не интересуются содержимым того, что передается или принимается. Вся информация в канале связи рассматривается как непрерывный поток байт, не обладающий никакой внутренней структурой. Изучению механизмов, обеспечивающих потоковую передачу данных в операционной системе UNIX, и будет посвящен этот семинар.  

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]