Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Практическая работа № 8. Синхронизация процессов



Синхронизация процессов

Цель работы

Практическое освоение механизма синхронизации процессов и их взаимодействия посредством программных каналов.

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

1. Выбрать набор системных вызовов, обеспечивающих решение задачи.

2. Для указанного варианта составить программу на языке Си, реализующую требуемые действия.

3. Отладить и оттестировать составленную программу, используя инструментарий ОС UNIX.

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

В предыдущей работе были рассмотрены различные программные средства, связанные с созданием и управлением процессами в рамках ОС UNIX. Данная лабораторная работа предполагает комплексное их использование при решении задачи синхронизации процессов и их взаимодействия посредством программных каналов. Кратко перечислим состав системных вызовов, требуемых для выполнения данной практической работы:

Создание, завершение процесса, получение информации о процессе, - fork(), exit(), getpid(), getppid().

Синхронизация процессов - signal(), kill(), sleep(), alarm(), wait(), pause().

Создание информационного канала и работа с ним - pipe(), read(), write().

Варианты заданий

1. Исходный процесс создает два программных канала К1 и К2 и порождает новый процесс Р1, а тот, в свою очередь, еще один процесс Р2, каждый из которых готовит данные для обработки их основным процессом. Подготавливаемые данные процесс Р1 помещает в канал К1, а процесс Р2 в канал К2, откуда они процессом Р1 копируются в канал К1 и дополняются новой порцией данных. Схема взаимодействия процессов, порядок передачи данных в канал и структура подготавливаемых данных показаны ниже:

2. Обработка данных основным процессом заключается в чтении информации из программного канала К1 и печати её. Кроме того, посредством выдачи сообщений необходимо информировать обо всех этапах работы программы (создание процесса, завершение посылки данных в канал и т.д.).

3. Исходный процесс создает программный канал К1 и порождает два процесса Р1 и Р2, каждый из которых готовит данные для обработки их основным процессом. Подготовленные данные последовательно помещаются процессами-сыновьями в программный канал и передаются основному процессу. Схема взаимодействия процессов, порядок передачи данных в канал и структура подготавливаемых данных показаны ниже:

4. Обработка данных основным процессом заключается в чтении информации из программного канала и печати её. Кроме того, посредством выдачи сообщений необходимо информировать обо всех этапах работы программы (создание процесса, завершение посылки данных в канал и т.д.).





Дата публикования: 2015-10-09; Прочитано: 461 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.005 с)...