Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
ViktorBS
0 / 0 / 0
Регистрация: 24.05.2013
Сообщений: 1
#1

CreateFileMapping (написать DLL для обмена данными между большим количеством процессов (100-200))

27.05.2013, 15:18. Просмотров 433. Ответов 0
Метки нет (Все метки)

Добрый день!
Необходимо написать DLL для обмена данными между большим количеством процессов (100-200)
Объем данных заранее не известен и может быть от нескольких кб до 2Г

Решается эта задача на данный момент так:

1. Делаю маппинг CreateFileMapping(INVALID_HANDLE_VALUE, ... на максимальный размер 2Г с использованием флага SEC_RESERVE
2. Проецирую фрагмент в адресное пространство процесса MapViewOfFile блоками размером sysInfo.dwAllocationGranularity
3. Выделяю память через VirtualAlloc блоками размером sysInfo.dwPageSize с флагом MEM_COMMIT (ровно столько, сколько нужно на данный момент)

Вроде все работает, но смущает маппинг на максимальный размер в 2Г. Как себя поведет Windows если этих объектов будет много.
Про возможность расширения секций с использованием NtExtendSection я в курсе, но несколько смущает не документированность этой функции, по этому от нее отказался.

Насколько корректно реализована задача на данный момент и не ждут ли меня проблемы в будущем, т.к. эта DLL будет обслуживать критически важный процесс?
Отзовитесь те, кто в этих вещах разбирается.

P.S. Задача должна быть обязательно решена через память, другие варианты не подходят.
P.P.S. Про синхронизацию, mutex и т.д. я в курсе.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2013, 15:18
Ответы с готовыми решениями:

Шаблон для обмена данными через память
Подскажите, нигде не нашел готовых шаблонов для создания обмена данными между процессами типа...

Сервер для обмена данными на 100 человек
Нужен сервер на 100 человек,для общения(чат) и обмена преимущественно небольшими файлами.Есть мысль...

Обмен данными между процессами (с использованием CreateFileMapping, MapViewOfFile, UnMapViewOfFile)
Помогите кто может и чем может, пожалуйста. Нужно разработать приложение, с помощью которого можно...

Сериализация для обмена данными между компьютерами
Недавно я столкнулся с такой проблемой: Есть 2 компьютера на которых расположена одна и та-же...

Пишу я ПО для обмена данными между сервером и клиентом
Пишу я ПО для обмена данными между сервером и клиентом. В качестве сервера выступает мой хост....

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.05.2013, 15:18

Программа для обмена данными между другим программами
Не знаю в какую часть форума написать, изучаю c# поэтому тут. Надо сделать небольшую программу для...

Как найти количество дублей между большим количеством столбцов
Доброго времени суток! Столкнулся с интересной задачей, никак ни могу найти выход. Имеется...

Написать программу тест с большим количеством вопросов, которые будут выбираться случайно
Cуть задания-нужно написать программу тест с большим количеством вопросов которые будут выбираться ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru