- •5. Семейство ос компании Microsoft
- •Сравнительный анализ архитектуры оболочки Windows 3.11, ос Windows 95 и ос Windows 2000.
- •Классификация api функций. Динамические библиотеки.
- •Концепция объектной модели компонентов (com). Основные понятия в com модели.
- •Структура Windows 98. Режимы работы процессора Pentium.
- •Управление процессами Windows 98. Система виртуальных машин Windows 98
- •Файловая система. Реестр Windows 98.
- •Области использования Windows 2000 .
- •Структура Windows 2000, executive и защищенные подсистемы
- •Множественные прикладные среды Windows 2000.
- •Объектно-ориентированный подход Windows 2000.
- •Алгоритм планирования процессов и потоков Windows 2000
- •Обмен данными между процессами и потоками
- •Синхронизирующие объекты ос Windows 2000
- •Управление памятью в Windows 2000
- •Организация файловой системы fat
- •Организация файловой системы ntfs.
- •Организация контроля доступа в ос Windows nt/2000/хр
- •Реестр Windows 2000 и работа с журналами.
- •Сетевые средства Windows 2000.
- •Генерация и настройка ос Windows 2000.
- •Функции защиты на уровне Win32 api.
Обмен данными между процессами и потоками
В 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 синхронные или асинхронные операции, аналогично тому, как это можно делать с файлами. В случае использования асинхронных операций необходимо отдельно побеспокоиться об организации синхронизации.
