IPC: основы межпроцессного взаимодействия
От: Алекс Jenter Россия CintaNotes
Дата: 27.07.01 23:57
Оценка: 103 (8) -1
Статья :
IPC: основы межпроцессного взаимодействия
Автор(ы): Алекс Jenter
Дата: 10.03.2001
Обзор основных технологий IPC: Очень многим приложениям, если не большей части, требуется
информация от других приложений, либо они должны эту информацию сообщать.
Именно поэтому в операционную систему встраивается множество механизмов,
которые обеспечивают т.н. Interproccess Communication (IPC) — то есть
межпроцессное взаимодействие...


Авторы :
Алекс Jenter

Аннотация :
Обзор основных технологий IPC: Очень многим приложениям, если не большей части, требуется информация от других приложений, либо они должны эту информацию сообщать. Именно поэтому в операционную систему встраивается множество механизмов, которые обеспечивают т.н. Interproccess Communication (IPC) — то есть межпроцессное взаимодействие...
Message queue
От: Trip0ut  
Дата: 26.11.01 03:47
Оценка:
Как я понимаю нет проблем с организацией данной вещи в ДЛЛ. Вопрос в том можно ли это организовать без дополнительного thread. Если да, то как это будет выглядеть? (в общих чертах)
Библиотеки динамической компоновки (DLL)
От: Pavel Ivlev www.vsi.ru/~pavel
Дата: 29.07.01 00:04
Оценка:
Интересно: что это за способ объявления переменной в DLL, которая доступна из других процессов подключивших DLL? Очень интересно. Сразу напрашивается вопрос — а как, по-вашему, происходит процесс mapping'а?

P.S.
Все здесь конечно красиво (под IE), но вот с Opera проблемы.
Re:Библиотеки динамической компоновки (DLL)
От: Microsoft www.microsoft.com
Дата: 08.08.01 00:45
Оценка:
Это очень просто. Переменная объявляется в отдельном сегменте, которому присваивается отрибут RWS

#pragma data_seg("Shared")
long g_var;
#pragma data_seg()
#pragma comment(linker,"/SECTION:Shared,RWS")

У Рихтера всё подробно расписпно... А мапинг происходит как обычно.

З,Ы,
Мда, мне под Оперой это всё тоже жутко не нравится :(
Re:Библиотеки динамической компоновки (DLL)
От: Trip0ut  
Дата: 26.11.01 03:42
Оценка:
Расшареные секции данных — это прекрасно. Есть однако НО, Microsoft сами утверждают что поддержка этой схемы не гарантирована. Есть вариант независимый от компилятора. Основан на memory mapped file. Смотреть http://codeguru.earthweb.com/samples/pwdspy.html
В качестве дополнительного плюса идёт то, что нет ограничений по типу данных.
Re: Библиотеки динамической компоновки (DLL)
От: Slicer [Mirkwood] Россия https://ru.linkedin.com/in/maksim-gumerov-039a701b
Дата: 19.03.04 10:39
Оценка:
Если для некоторой секции не выставлены одновременно флаги IMAGE_SCN_MEM_EXECUTE и IMAGE_SCN_MEM_WRITE, но выставлен IMAGE_SCN_MEM_SHARED, то Copy-on-Write не включается. Следовательно, процессы, подключившие dll, имхо (не проверял) реально могут иметь общий доступ к содержимому этой секции.

Slicer
Специалист — это варвар, невежество которого не всесторонне :)
Re: IPC: основы межпроцессного взаимодействия
От: .Mistery Беларусь  
Дата: 19.03.04 13:03
Оценка: 6 (1)
Здравствуйте, Алекс Jenter, Вы писали:

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

АJ>Почтовые слоты (mailslots)

АJ>Почтовые слоты — это механизм однонаправленного IPC. Если приложению известно имя слота, оно может помещать туда сообщения, а приложение-хозяин этого АJ>слота (приемник) может их оттуда извлекать и соответствующим образом обрабатывать. Основное преимущество этого способа — возможность передавать сообщения АJ>по локальной сети сразу нескольким компьютерам за одну операцию. Для этого приложения-приемники создают почтовые слоты с одним и тем же именем. Когда в АJ>дальнейшем какое-либо приложение помещает сообщение в этот слот, приложения-приемники получают его одновременно.

Наверное стоит указать, что механизм mailslots на траспортном уровне использует дейтаграммы для передачи пакетов, что в свою очередь НЕ ГАРАНТИРУЕТ доставку этого самого пакета клиенту.
... << RSDN@Home 1.1.3 beta 1 >>
Мы — маньяки, должны помогать друг другу!
Re: Re:Библиотеки динамической компоновки (DLL)
От: alexxxander  
Дата: 19.03.04 19:47
Оценка: +1
Здравствуйте, Microsoft, Вы писали:

M>Это очень просто. Переменная объявляется в отдельном сегменте, которому присваивается отрибут RWS


M>#pragma data_seg("Shared")

M>long g_var;
M>#pragma data_seg()
M>#pragma comment(linker,"/SECTION:Shared,RWS")

Здесь маааааааленькая ошибка:
переменная g_var не инициализирована поэтому автоматом попадет в секцию с неинициализированными данными, и не будет shared.
The less I have the more I gain (с) Metallica
Re[2]: IPC: основы межпроцессного взаимодействия
От: Tom Россия http://www.RSDN.ru
Дата: 25.03.04 08:36
Оценка:
M>Наверное стоит указать, что механизм mailslots на траспортном уровне использует дейтаграммы для передачи пакетов, что в свою очередь НЕ ГАРАНТИРУЕТ доставку этого самого пакета клиенту.

А какой протокол гарантирует?
... << RSDN@Home 1.1.0 stable >>
Народная мудрось
всем все никому ничего(с).
Re[3]: IPC: основы межпроцессного взаимодействия
От: Slicer [Mirkwood] Россия https://ru.linkedin.com/in/maksim-gumerov-039a701b
Дата: 25.03.04 08:50
Оценка: +1
Здравствуйте, Tom, Вы писали:
Tom>А какой протокол гарантирует?

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

Slicer
Специалист — это варвар, невежество которого не всесторонне :)
Re[3]: IPC: основы межпроцессного взаимодействия
От: .Mistery Беларусь  
Дата: 25.03.04 09:07
Оценка:
Здравствуйте, Tom, Вы писали:

M>>Наверное стоит указать, что механизм mailslots на траспортном уровне использует дейтаграммы для передачи пакетов, что в свою очередь НЕ ГАРАНТИРУЕТ доставку этого самого пакета клиенту.


Tom>А какой протокол гарантирует?


На сколько я помню только mailslots из IPC не гарантирует, т.к. дейтаграммы могут потерятся где нибудь , плюс у них есть определенный срок жизни. Все остальные механизмы вроде гарантируют. Лично использовал named message pipes — все вроде ОК никаких неожиданных артефактов не обнаружилось. Правдо как то на RSDN разгорался спор (совсем недавно) по поводу WM — является ли этот механизм гарантированным средством доставки сообщений или нет!

Удачи!
... << RSDN@Home 1.1.3 beta 1 >>
Мы — маньяки, должны помогать друг другу!
Re[4]: IPC: основы межпроцессного взаимодействия
От: Tom Россия http://www.RSDN.ru
Дата: 25.03.04 13:39
Оценка:
SM>Например, файл-маппинг... Он гарантирует, что данные будут доступны для клиента, ему их останется только открыть и прочитать, но есть гарантия, что никуда они не денутся. Дейтаграммы же обычно имеют срок жизни (правда, как обстоит дело в данном случае — не знаю), и, кроме того, могут просто где-то заблудиться — в общем, доступность данных клиенту не гарантируется.

А что файл-маппинг это уже протокол?
Мы же о протоколах веджём речь...
... << RSDN@Home 1.1.0 stable >>
Народная мудрось
всем все никому ничего(с).
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.