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

Выполнен
Заказ
4068366
Раздел
Программирование
Тип работы
Антиплагиат
Не указан
Срок сдачи
29 Апр 2021 в 23:55
Цена
700 ₽
Блокировка
15 дней
Размещен
28 Апр 2021 в 13:15
Просмотров
108
Описание работы

Написать программу, содержащую два потока, обменивающихся информацией через неименованный канал (pipe).

В качестве сообщения необходимо передавать результат выполнения функции.Функция-getpid - получение id текущего процесса

Устранить блокировки потоков для случая чтения из пустого канала двумя способами (pipe2() и fcntl()).

Шаблон программы представлен ниже:

объявить флаг завершения потока 1;

объявить флаг завершения потока 2;

объявить идентификатор неименованного канала;

функция потока 1()

{

объявить буфер;

пока (флаг завершения потока 1 не установлен)

{

сформировать сообщение в буфере;

записать сообщение из буфера в неименованный канал;

задержать на время;

}

}

функция потока 2()

{

объявить буфер;

пока (флаг завершения потока 2 не установлен)

{

очистить буфер;

прочитать сообщение из неименованного канала в буфер;

вывести сообщение на экран;

}

}

основная программа()

{

объявить идентификатор потока 1;

объявить идентификатор потока 2;

создать неименованный канал;

создать поток из функции потока 1;

создать поток из функции потока 2;

ждать нажатия клавиши;

установить флаг завершения потока 1;

установить флаг завершения потока 2;

ждать завершения потока 1;

ждать завершения потока 2;

закрыть неименованный канал;

}

Нужна такая же работа?
  • Разместите заказ
  • Выберите исполнителя
  • Получите результат
Гарантия на работу1 год
Средний балл4.53
СтоимостьНазначаете сами
ЭкспертВыбираете сами
Уникальность работыот 70%
Время выполнения заказа:
1 час 50 минут
Выполнен в срок
Нужна аналогичная работа?
Оформи быстрый заказ и узнай стоимость
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Прямой эфир