Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
IT4.doc
Скачиваний:
8
Добавлен:
03.03.2016
Размер:
97.79 Кб
Скачать

Министерство образования и науки Украины

Севастопольский национальный технический университет

ВЗАИМОДЕЙСТВИЕ ПРОЦЕССОВ: ПРОГРАММНЫЕ КАНАЛЫ

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

к выполнению лабораторной работы № 4

по дисциплине «Системное программирование»

для студентов направления подготовки

050201 «Системная инженерия»

дневной формы обучения

Севастополь

2009

УДК 681.5

Взаимодействие процессов: программные каналы: Методические указания к выполнению лабораторной работы № 4 по дисциплине «Системное программирование» для студентов направления подготовки 050201 «Системная инженерия» дневной и заочной форм обучения / Разраб. Д.Н. Старинская, П.Л. Светличный. – Севастополь: Изд-во СевНТУ, 2009. – 11с.

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

Методические указания предназначены для студентов по направлению подготовки 050201 «Системная инженерия» дневной и заочной форм обучения.

                1. Методические указания рассмотрены и утверждены на заседании кафедры

технической кибернетики,

протокол № от « » 2009 г.

Допущено учебно-методическим центром и научно-методическим советом СевНТУ в качестве методических указаний.

Рецензент:

1Цель работы

Изучение системных вызовов Linux, предназначенных для управления пользовательскими процессами. Изучение механизма взаимодействия отдельных процессов посредством программных каналов.

2 Задание на работу

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

Должно создаваться три процесса:

  • процесс, генерирующий значения параметров состояния устройства;

  • процесс, упаковывающий параметры состояния в единое (упакованное) слово состояния;

  • процесс, распаковывающий слова состояния.

Процесс-генератор должен передавать данные и процессу-упаковщику через один программный канал. Процесс-упаковщик должен передавать данные процессу-распаковщику через другой программный канал.

Возможный алгоритм работы и взаимодействия процессов может выглядеть так.

Основной процесс (упаковщик) должен осуществлять следующие действия:

  • создавать первый программный канал

  • порождать дочерний процесс для генерации параметров устройства (процесс-генератор)

  • создавать второй программный канал

  • порождать дочерний процесс для распаковки упакованных чисел (процесс-распаковщик)

  • пока первый канал открыт:

    • читать из канала один набор неупакованных чисел, сгенерированный процессом-генератором

    • формировать упакованное число

    • записывать это число во второй программный канал

  • закрывать записываемый конец второго канала

Дочерний процесс-генератор должен осуществлять следующие действия:

  • заданное количество раз

    • генерировать набор неупакованных чисел

    • записывать этот набор чисел в первый канал

  • закрывать записываемый конец первого канала

Дочерний процесс-распаковщик должен осуществлять следующие действия:

  • закрывать себе доступ к первому программному каналу

  • пока второй канал открыт:

    • читать из второго канала упакованное число, записанное основным процессом

    • распаковывать составные части этого числа

    • выводить распакованные части на экран

В программе должен быть предусмотрен вывод на экран промежуточных результатов (идентификаторов процессов, считываемых из канала данных, результатов распаковки и т.п.).

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