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

Цель работы

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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



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