Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
53501_3_MartynovSA_lab2.docx
Скачиваний:
24
Добавлен:
29.04.2015
Размер:
1.11 Mб
Скачать

Заключение

В данной работе были рассмотрены основные механизмы межпроцессорного взаимодей- ствия, от самых простых, типа анонимных каналов, до самых сложных, таких как сокеты и порты завершения. Каждый механизм имеет свою нишу для использования.

    1. Анонимные каналы – достаточно слабый инструмент. Представляют собой полудуп- лексное средство потоковой передачи байтов междуродственными процессами. Они функционируют в пределах локальной вычислительной системы и хорошо подходят для перенаправлениявыходного потока одной программы навход другой. Минусом является то, что использование этого средства в некоторых случаяхприводит кневозможности использования стандартных механизмовввода/вывода (т.к. они ужезаняты каналом).

    2. Именованные каналы – являясь объектами ядра ОС Windows, они позволяют органи- зовать межпроцессный обмен не только в изолированной вычислительной системе, но и в локальной сети. Они обеспечивают дуплексную связь и позволяют использовать как потоковую модель, так и модель, ориентированную на сообщения. Обмен данными может быть синхронным и асинхронным.

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

    4. Shared memory – очень быстрый и очень опасный механизм взаимодействия. Общая память должна быть защищена каким-то механизмом типа блокера, в противном случаеодин процессможет испортить то, что перед этим записал другой.

    5. Сокеты – представляет собой независимый от протокола интерфейс, который да- ёт возможность использовать преимущества базовых протоколов. Сокет Windows Sockets 2 представляет собой дескриптор, который может быть использован и как

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

    1. Порты завершения – обеспечивают эффективную обработку асинхронных запросовввода/вывода на многопроцессорных системах за счёт использования очередей и пула потоков обработки.

    2. Сигналы – самый слабый инструмент, которому сложно придумать практическоеприменение. Механизм сигналов в Windows значительно уступает аналогичному механизму из мира *nix.

Наиболее интересным средством взаимодействия оказался сокет. Он не имеет большихотличий от классического сокета Беркли, что упрощает его изучение. Работа в асинхронном режиме (порты завершения) оказывает драматическое влияние на скорость работы системы, и должнаприменяться в высоко нагруженных системах.

Литература

  1. Душутина Е.В. Межпроцессные взаимодействия в операционных системах. Учебное пособие – СПб.: 2014 – 135 стр.

  2. Джонсон М. Харт. Системное программирование в средеWindows – М.: Издательский дом "Вильямс 2005 – 587 стр.

  3. Александр Шаргин. Программирование сокетов вLinux –http://rsdn.ru/article/unix/sockets.xml

  4. Бердников Алексей: Использование портов завершения для клиент-серверных прило- жений. – http://lexlunnyi.blogspot.ru/2013/08/blog-post.html

  5. MSDN: CreateIoCompletionPort function –https://msdn.microsoft.com/en- us/aa363862.aspx

  6. MSDN: GetQueuedCompletionStatus function – https://msdn.microsoft.com/aa364986.aspx