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

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

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

 

Цель работы: изучить возможности применения механизма обмена данными между процессами в операционной системе Windows на основе каналов и почтовых ящиков.

 

Темы для предварительной проработки: процессы и нити в операционных системах, жизненный цикл процесса, средства взаимодействия процессов IPC, интерфейс прикладного программирования API WIN32.

 

Теоретические сведения

Каналы. Через канал можно передавать данные только между двумя процессами. Один из… Именованные и анонимные каналы.

ИмяСервераpipeИмяКанала

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

PipeИмяКанала

Создание канала. Для создания именованных и анонимных каналов Pipes используются функции… Установка соединения с каналом со стороны сервера.

Mailslot[Путь]ИмяПочтовогоЯщика

Чтобы открыть Mailslot, созданный на другой рабочей станции в сети, строка имени канала должна иметь следующий вид:

ИмяРабочейСтанцииmailslot[Путь]ИмяПочтовогоЯщика

Можно открыть канал для передачи сообщений всем рабочим станциям заданного домена. Для этого необходимо задать имя по следующему образцу:

ИмяДоменаmailslot[Путь]ИмяПочтовогоЯщика

Для передачи сообщений одновременно всем рабочим станциям сети первичного домена имя задается следующим образом:

Mailslot[Путь]ИмяПочтовогоЯщика

Запись и чтение данных в почтовых ящиках осуществляется аналогично записи и чтению в каналах. Определение состояния Mailslot Серверный процесс может определить текущее состояние Mailslot по его идентификатору с помощью функции…

Порядок выполнения работы

1. Ознакомиться с постановкой задачи и исходными данными. В соответствии с номером по журналу определить вариант задачи. 2. Согласно рекомендациям, приведенным в исходных данных, сконструировать… 3. Составить тексты программ и утвердить их у преподавателя.

Содержание отчета

 

1. Тема лабораторной работы.

2. Цель работы.

3. Индивидуальное задание.

4. Метод и алгоритм решения задачи.

5. Текст программы.

6. Результаты работы программы.

7. Выводы по работе.

 

 

Индивидуальные задания

Организовать передачу строковых данных, вводимых с клавиатуры, между процессами 1, 2, 3, …, N по заданной схеме (символ à означает направление передачи данных) с использованием указанного средства IPC. Завершение работы программ выполнять по команде с клавиатуры.

 

1. (1à4, 2à4, 3à4), каналы.

2. (1à2, 2à1), почтовые ящики.

3. (1à2,3, 2à1,3, 3à1,2), каналы.

4. (1à2,3,4), почтовые ящики.

5. (1à2, 2à3(автоматическое перенаправление), 3à4(автоматическое перенаправление)), каналы.

6. (1à2, 3à4, 2à3(автоматическое перенаправление), 4à1(автоматическое перенаправление)), почтовые ящики.

7. (1à2,3, 2à3, 3à1), каналы.

8. (1à2, 2à3, 3à2), почтовые ящики.

9. (1à4, 2à4, 3à4), почтовые ящики.

10. (1à2, 2à1), каналы.

11. (1à2,3, 2à1,3, 3à1,2), почтовые ящики.

12. (1à2,3,4), каналы.

13. (1à2, 2à3(автоматическое перенаправление), 3à4(автоматическое перенаправление)), почтовые ящики.

14. (1à2, 3à4, 2à3(автоматическое перенаправление), 4à1(автоматическое перенаправление)), каналы.

15. (1à2,3, 2à3, 3à1), почтовые ящики.

16. (1à2, 2à3, 3à2), каналы.

17. (1à2 (каналы), 2à1, (почтовые ящики)).

18. (1à2,3 (каналы), 2à1,3 (почтовые ящики), 3à1,2 (каналы)).

19. (1à2,3 (почтовые ящики), 3à1 (каналы), 3à2 (каналы)).

20. (1à2,3 (почтовые ящики), 2à1,3 (каналы), 3à1,2 (почтовые ящики)).

21. (1à2,3 (каналы), 3à1 (почтовые ящики), 3à2 (почтовые ящики)).

22. (1à2 (почтовые ящики), 2à1, (каналы)).