Содержание
 Введение
 1.    Анализ задания и разработка алгоритма
 2.    Функции, используемые в работе
 3.    Листинг программы
 4.    Тестирование
 Выводы
 Литература
 
  Введение
 Целью выполнения работы является закрепление знаний умений и навыков в области взаимодействия модулей, использования системных вызовов и библиотечных функций управления процессами и файлами современных операционных систем для создания системных и пользовательских программ, процедур и функций на примере ОС семейства UNIX/Linux. В ходе выполнения работы студенту необходимо продемонстрировать знания функций, алгоритмов, механизмов управления процессами, разделяемыми ресурсами, файлами, вводом-выводом.
 Файловая система Unix, это иерархическая, многопользовательская файловая система. Ее можно представить в виде дерева. В корне дерева находится “корневой каталог”, узлами, отличными от листьев дерева являются каталоги. Листьями могут являться: файлы (в традиционном понимании — именованные наборы данных), пустые каталоги (каталоги, с которыми не ассоциировано ни одного файла). В системе определено понятие имени файла — это имя, которое ассоциировано с набором данных в рамках каталога, которому принадлежит этот файл.
 Процесс — понятие, которое определяется по-разному. Это может быть — “упорядоченный набор команд и принадлежащих ему ресурсов”. С точки зрения ОС Unix процесс — это объект, зарегистрированный в специальной таблице процессов.
 Телом процесса называется набор команд и данных, которыми оперирует процесс.
 Контекст процесса — атрибут, который присутствует практически во всех ОС, в разных ОС он может называться по-разному. Контексты всех процессов размещаются в адресном пространстве ОС и содержат оперативную информацию о состоянии процесса и текущую информацию, связанную с процессом и его запуском.
 
  1. Анализ задания и разработка алгоритма
 По заданию согласно варианта 5 по списку необходимо организовать циклический обмен содержимым всех файлов (1->2->3->4->1).
 Рассмотрим основные принципы по которым будет создаваться программа:
 ·          Будут созданы 4-е процесса, а именно 4-ый процесс породит 1-ый процесс, 1-ый процесс, в свою очередь породит 2-ой процесс, 2-ой процесс породит 3-тий процесс.
 ·          Каждый процесс будет иметь файл с соответствующими именами – 1, 2, 3, 4.
 ·          Процессы между собой будут обмениваться через разделяемую память и временный (буферный) файл.
 ·          Обмен содержимым файлов будет происходить циклически.
 Общая схема взаимодействия процессов показана на рис. 1.
  Рис.1 Схема взаимодействия процессов.
  
 
  2. Функции, используемые в работе
 Директива #include включает в текст программы содержимое указанного файла. Эта директива имеет две формы: 
 #include "имя файла"
 #include <имя файла>
 Имя файла должно соответствовать соглашениям операционной системы и может состоять либо только из имени файла, либо из имени файла с предшествующим ему маршрутом. Если имя файла указано в кавычках, то поиск файла осуществляется в соответствии с заданным маршрутом, а при его отсутствии в текущем каталоге.  ............