Студопедия

КАТЕГОРИИ:

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



Обмен данными между процессами и потоками

Читайте также:
  1. I. О различии между чистым и эмпирическим познанием
  2. I. Тире между подлежащим и сказуемым
  3. II. Некоторые механизмы нейросигнального взаимодействия между особями и популяциями палеоантропов
  4. III Международная научно-практическая конференция
  5. III-ий международный конкурс-фестиваль детско-юношеского творчества имени королевы Анны Павловной в Праге
  6. IV. О различии между аналитическими и синтетическими суждениями
  7. IV. Отношение между временем и мышлением.
  8. Oslash; 1.3. Принципы обмена данными между Windows-программами
  9. quot;Разумная" экономия: россиянам придется выбирать между чайником и утюгом
  10. V1:Рекомендации международных стандартов ИСО 9000 по обеспечению качества

В Windows NT/2000/ХР применяются механизмы межпроцессного взаимодействия (InterProcess Communication - IPC), приведенные в таблице 1.

Таблица 1

Механизм IPC Назначение
Динамический обмен данными (Dynamic Data Exchange - DDE) Устарел и труден в реализации. Рекомендуется использовать лишь в случаях крайней необходимости.
Буфер обмена Пересылка данных обычно выполняется с участием пользователя.
OLE 2.0 Имеются встроенные функции для пересылки данных через границы процессов. Излишне сложен для простого обмена данными.
Сообщения WM_USER Они работают - но чувствительны к ошибкам при передаче указателей.
Сообщения WM_COPYDATA Способ пересылки блока данных из одной программы в другую. Используется в тех случаях, когда скорость передачи данных не является критической и не требуется синхронизировать передачу данных.
Анонимные каналы (Anonymous pipes) Полезны для организации прямой связи между двумя процессами на одном ПК.
Именованные каналы (Named pipes) Полезны для организации прямой связи между двумя процессами на одном ПК или в сети.
Почтовые ячейки (mailslots) Полезны для организации связи одного процесса со многими на одном ПК или в сети.
Гнезда (sockets) Полезны для организации пересылки данных как в Windows-программы, так и в прочие программы, функционирующие на одном ПК, в сети или в интрасети.
События, взаимные исключения (mutexes) и семафоры Только для простого взаимодействия - пересылка данных невозможна.
   
Файлы отображаемой памяти Обеспечивают одновременный доступ к объектам файла отображения из нескольких процессов.

В среде операционной системы Microsoft Windows NT/2000/ХР доступно такое удобное средство передачи данных между параллельно работающими процессами, как каналы типа Pipe. Это средство позволяет организовать передачу данных между локальными процессами, а также между процессами, запущенными на различных рабочих станциях в сети. Каналы типа Pipe больше всего похожи на файлы, поэтому они достаточно просты в использовании.

Через канал можно передавать данные только между двумя процессами. Один из процессов создает канал, другой открывает его. После этого оба процесса могут передавать данные через канал в одну или обе стороны, используя для этого хорошо знакомые вам функции, предназначенные для работы с файлами, такие как ReadFile и WriteFile. Заметим, что приложения могут выполнять над каналами Pipe синхронные или асинхронные операции, аналогично тому, как это можно делать с файлами. В случае использования асинхронных операций необходимо отдельно побеспокоиться об организации синхронизации.



 


Дата добавления: 2015-09-14; просмотров: 48; Нарушение авторских прав


<== предыдущая лекция | следующая лекция ==>
Объектно-ориентированный подход Windows 2000. | Синхронизирующие объекты ОС Windows 2000
lektsii.com - Лекции.Ком - 2014-2018 год. (0.007 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты