Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ViktorBS
Сообщений: n/a
#1

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

27.05.2013, 15:18. Просмотров 401. Ответов 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 и т.д. я в курсе.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2013, 15:18
Здравствуйте! Я подобрал для вас темы с ответами на вопрос CreateFileMapping (написать DLL для обмена данными между большим количеством процессов (100-200)) (C++):

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

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

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

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

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

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

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

.NET 2.x Защита обмена данными между программными комплексами - C#
Доброго времени суток, форумчане!) Есть следующая типичная проблема. Программа может принимать сообщения определенного неофишируемого...

Протокол обмена данными между клиентом и сервером - C#
Есть сервер, есть клиент, оба асинхорнные. Работают стабильно. Но гоняют только байты между друг другом, которые перекодируются в ASCII, но...

Программа обмена данными между двумя файлами - C (СИ)
8. Разработать программу обмена данными между двумя файлами. Имена файлов вводятся с клавиатуры. помогите плз сделать

Пример обмена данными между приложениями с использованием WCF - C# WCF
Всем здравствуйте. Нужен простой пример по использованию WCF. 1. Есть Windows Forms с таймером, в цикле которого 1 раз в секунду...


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

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

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