Лабораторная работа № 5

(8 часов)

Организация взаимодействия процессов

через каналы pipe и FIFO в OC UNIX.

Цель работы

Освоить технологию программного управления взаимодействием процессов с помощью объектов ядра - именованный канал FIFO и неименованный канал pipe; изучить особенности применения разных каналов.

Содержание работы

1.Освоить: понятие потока ввода-вывода; работу с файлами через системные вызовы и стандартную библиотеку ввода-вывода; понятие файлового дескриптора; системный вызов open(); с истемные вызовы close(),read(),write(). 2.Понятие pipe. Системный вызов pipe(). Организация связи через pipe между процессом-родителем и процессом-потомком. Наследование файловых дескрипторов при вызовах fork() и exec(). Особенности поведения вызовов read() и write() для pip'a.

3.Выполнить задание 1 в соответствии с вариантом и продемонстрировать работу программы преподавателю.

4. Понятие FIFO. Использование системного вызова mknod() для создания FIFO. Функция mkfifо(). Особенности поведения вызова open () при открытии FIFO.

5.Организовать программно на языке С модель клиент-сервер в соответствии с описанием в задании 2 и продемонстрировать работу модели с использованием двух псевдотерминалов преподавателю.

6.Составить отчет и защитить работу. В отчет должны быть включены тексты отлаженных программ с результатами их работы, а также структурные блок-схемы программных моделей.

Ключевые слова:поток ввода-вывода, файловый дескриптор, таблица открытых файлов процесса, стандартный поток ввода, стандартный поток вывода, стандартный поток вывода для ошибок, открытие файла, закрытие файла, pipe, FIFO, файл типа FIFO, системные вызовы open, read, write, close, pipe, mknod, mkfifo.

Методические указания


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: