Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Глобальные переменные не использовать! 6 страница




− завершает свою работу.

Написать программы для консольного процесса Boss и консольных процессов Parent, Child. Для моделирования передачи сообщений ввести специальные события, которые обозначают любые 4-е цифры и конец сеанса для процессов Parent и Child

Процесс Boss:

− запрашивает у пользователя количество процессов Parent и количество процессов Child, которые он должен запустить;

− запрашивает кол-во сообщений, отправленных Parent и Child

− запускает заданное количество процессов Parent, Child;

− отправляет сообщения для процессов Parent, Child Отправить сообщение может только трём процессам из всех процессов Child и Parent, передача остальных сообщений от других процессов должна блокироваться с помощью мьютексов;

− завершает свою работу.

Процесс Parent:

− получает сообщение, от процесса Boss и выводит его на консоль;

− завершает свою работу.

Процесс Child:

− получает сообщение, от процесса Boss и выводит его на консоль; завершает свою работу.

4. Написать программы для консольного процесса Boss (Резидент) и консольных процессов Scout (Шпион).

Для моделирования передачи сообщений ввести специальные события, которые обозначают любые 4-е цифры.

Процесс Boss:

− запрашивает у пользователя количество процессов Scout, которые он должен запустить;

− запрашивает у пользователя пароль (3 цифры);

− запускает заданное количество процессов Scout;

− принимает от каждого процесса Scout сообщение и выводит его на консоль в одной строке. Принимать сообщение может только от трёх процессов, передача остальных сообщений от других процессов должна блокироваться;

− если приходит сообщение, с цифрой не из пароля, то выводит на консоль текст "ошибка";

− завершает свою работу.

Процесс Scout:

− запрашивает с консоли сообщение, состоящее из цифр, и передает их (по одному) процессу Boss;

− завершает свою работу.

5. Написать программы для консольного процесса Boss и консольных процессов Parent, Child. Для моделирования передачи сообщений ввести специальные события, которые обозначают «А», «В» и конец сеанса для процессов Parent и Child.

Процесс Boss:

− запрашивает у пользователя количество процессов Parent и количество процессов Child, которые он должен запустить;

− запускает заданное количество процессов Parent, Child;

− запрашивает кол-во сообщений, полученных от Parent или Child

− принимает от каждого процесса Parent, Child сообщение и выводит сообщение и кто его отправил на консоль в одной строке. Принимать сообщение может только от одного процесса Child и одного процесса Parent, передача остальных сообщений от других процессов должна блокироваться с помощью мьютексов;

− завершает свою работу.

Процесс Parent:

− запрашивает с консоли сообщения, состоящее из «А» и передает их (по одному) процессу Boss;

− завершает свою работу.

Процесс Child:

− запрашивает с консоли сообщения, состоящее из «В»» и передает их (по одному) процессу Boss;

− завершает свою работу.

6. Написать программы для консольного процесса Administrator и консольных процессов Reader и Writer.

Для моделирования передачи сообщений ввести специальные события, которые обозначают сообщение “ A”,сообщение “ В ”, и конец сеанса для процессов Reader и Writer.

Одновременно принимать и отправлять сообщения могут только два процесса Writer и два процесса Reader, передача остальных сообщений от других процессов должна блокироваться с помощью мьютексов;

Процесс Administrator:

− запрашивает у пользователя количество процессов Writer(Reader);

− запрашивает у пользователя количество отправленных (полученных) сообщений для процессов Writer (Reader);

− запускает заданное количество процессов Reader и Writer;

− принимает от каждого процесса Writer сообщение и выводит на консоль, затем отправляет его процессу Reader;

− принимает от каждого процесса Reader и Writer сообщение о завершении сеанса и выводит его на консоль в одной строке;

− завершает свою работу.

Процесс Writer:

− запрашивает с консоли сообщения, состоящее из “A", “В", и передает их (по одному) процессу Administrator;

− передает сообщение о завершении сеанса процессу Administrator;

− завершает свою работу.

Процесс Reader:

− принимает сообщение от процесса Administrator;

− выводит на консоль сообщение;

− передает сообщение о завершении сеанса процессу Administrator;

− завершает свою работу.

7. Написать программы для консольного процесса Boss и консольных процессов Parent, Child. Для моделирования передачи сообщений ввести специальные события, которые обозначают «А», «В», «С», «D» и конец сеанса для процессов Parent и Child.

Процесс Boss:

− запрашивает у пользователя количество процессов Parent и количество процессов Child, которые он должен запустить;

− запускает заданное количество процессов Parent, Child;

− запрашивает количество сообщений, принятых от Parent или Child

− принимает от каждого процесса Parent, Child сообщение и выводит сообщение и кто его отправил на консоль в одной строке. Принимать сообщение может только от двух процессов Child и одного процесса Parent, передача остальных сообщений от других процессов должна блокироваться с помощью мьютексов;

− завершает свою работу.

Процесс Parent:

− запрашивает с консоли сообщения, состоящее из «А», «В» и передает их (по одному) процессу Boss;

− завершает свою работу.

Процесс Child:

− запрашивает с консоли сообщения, состоящее из «С», «D» и передает их (по одному) процессу Boss;

− завершает свою работу.

8. Написать программы для консольного процесса Administrator и консольных процессов Reader и Writer.

Для моделирования передачи сообщений ввести специальные события, которые обозначают сообщение “A", сообщение “В", и конец сеанса для процессов Reader и Writer.

Одновременно принимать и отправлять сообщения могут только один процесс Writer и один процесс Reader, передача остальных сообщений от других процессов должна блокироваться с помощью мьютексов.

Процесс Administrator:

− запрашивает у пользователя количество процессов Reader и Writer, которые он должен запустить;

− запрашивает у пользователя количество отправленных сообщений для процесса Writer и количество принятых сообщений для процесса Reader(соответствие сообщений проверить и подкорректировать по формуле);

− запускает заданное количество процессов Reader и Writer;

− принимает от каждого процесса Reader и Writer сообщение о завершении сеанса и выводит его на консоль в одной строке.

− завершает свою работу.

Процесс Writer:

− запрашивает с консоли сообщения, и передает их (по одному) процессу Reader;

− передает сообщение о завершении сеанса процессу Administrator;

− завершает свою работу.

Процесс Reader:

− принимает сообщение от процесса Writer;

− выводит на консоль сообщение;

− передает сообщение о завершении сеанса процессу Administrator;

− завершает свою работу.

9. Написать программы для консольного процесса Boss и консольных процессов Employee. Для моделирования передачи сообщений ввести специальные события, которые «0», «1», «2», «3» и конец сеанса для процессов Employee.

Процесс Boss:

− запрашивает у пользователя количество процессов Employee, которые он должен запустить;

− запускает заданное количество процессов Employee;

− принимает от каждого процесса Employee сообщение и выводит его на консоль в одной строке. Принимать сообщение может только от трёх процессов, передача остальных сообщений от других процессов должна блокироваться с помощью мьютексов;

− завершает свою работу.

Процесс Employee:

− запрашивает с консоли сообщения, состоящее из «0», «1», «2», «3», конец сеанса работы и передает (по одному) его процессу Boss;

− завершает свою работу.

10. Написать программы для консольного процесса Administrator и консольных процессов Reader и Writer.

Для моделирования передачи сообщений ввести специальные события, которые обозначают сообщение “Л”, сообщение “Б”, и конец сеанса для процессов Reader и Writer.

Одновременно принимать и отправлять сообщения могут только два процесса Writer и два процесса Reader, передача остальных сообщений от других процессов должна блокироваться с помощью мьютексов;

Процесс Administrator:

− запрашивает у пользователя количество процессов Reader и Writer, которые он должен запустить;

− запрашивает у пользователя кол-во отправленных сообщений для процесса Writer. Кол-во принятых сообщений для процесса Reader вычислить. (соответствие сообщений проверить и подкорректировать по формуле);

− запускает заданное количество процессов Reader и Writer;

− принимает от каждого процесса Reader и Writer сообщение о завершении сеанса и выводит его на консоль в одной строке.

− завершает свою работу.

Процесс Writer:

− запрашивает с консоли сообщения, и передает их (по одному) процессу Reader;

− передает сообщение о завершении сеанса процессу Administrator;

− завершает свою работу.

Процесс Reader:

− принимает сообщение от процесса Writer;

− выводит на консоль сообщение;

− передает сообщение о завершении сеанса процессу Administrator;

− завершает свою работу.

11. Написать программы для консольного процесса Administrator и консольных процессов Reader и Writer.

Для моделирования передачи сообщений ввести специальные события, которые обозначают сообщение “Л”, сообщение “Б”, и конец сеанса для процессов Reader и Writer.

Одновременно принимать и отправлять сообщения могут только один процесс Writer и два процесса Reader, передача остальных сообщений от других процессов должна блокироваться с помощью мьютексов;

Процесс Administrator:

− запрашивает у пользователя количество процессов Reader и Writer, которые он должен запустить;

− запрашивает у пользователя кол-во отправленных сообщений для процесса Writer. Кол-во принятых сообщений для процесса Reader вычислить. (соответствие сообщений проверить и подкорректировать по формуле);

− запускает заданное количество процессов Reader и Writer;

− принимает от каждого процесса Reader и Writer сообщение о завершении сеанса и выводит его на консоль в одной строке.

− завершает свою работу.

Процесс Writer:

− запрашивает с консоли сообщения, и передает их (по одному) процессу Reader;

− передает сообщение о завершении сеанса процессу Administrator;

− завершает свою работу.

Процесс Reader:

− принимает сообщение от процесса Writer;

− выводит на консоль сообщение;

− передает сообщение о завершении сеанса процессу Administrator;

− завершает свою работу.

 

Контрольные вопросы

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

2. Что такое мьютексы (mutex) и чем они отличаются от критических областей?

3. Какие функции и типы Windows API используются для получения доступа к мьютексу, его захвата и освобождения?

4.Что такое события (event) в Windows API и для чего они могут использоваться?

5. Какие существуют типы событий и чем они отличаются друг от друга?

6. Какими функциями Windows API осуществляется работа с событиями?

7. В каком случае событие, сбрасываемое вручную, всё-таки сбрасывается автоматически?

8. Поясните общие свойства и различия при использовании событий и мьютексов.

Лабораторная работа №6

Тема: Обмен данными по анонимному каналу с сервером

Цель работы:

1. Изучение механизмов межпроцессного обмена в ОС семейства Windows.

2. Изучить функции для работы с анонимными каналами.

3. В соответствии с заданным вариантом разработать приложение, реализующее обмен данными между процессами с помощью анонимных каналов.

 

Краткое теоретическое введение





Поделиться с друзьями:


Дата добавления: 2016-11-24; Мы поможем в написании ваших работ!; просмотров: 1103 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Если президенты не могут делать этого со своими женами, они делают это со своими странами © Иосиф Бродский
==> читать все изречения...

2507 - | 2379 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.012 с.