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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ нужна программа для перевода числа из восьмеричной системы счисления в шестнадцатеричную систему счисления http://www.cyberforum.ru/cpp-beginners/thread880568.html
нужна программа для перевода числа из восьмеричной системы счисления в шестнадцатеричную систему счисления.
C++ Объясните что такое массив объединений и с чем его едят Написать программу удаления заданного числового значения из массива объединений. Объясните что такое массив объединений и с чем его едят. http://www.cyberforum.ru/cpp-beginners/thread880562.html
C++ Задача на указатели. Среди точек первого множества найти такую, которая принадлежит наибольшему количеству множеств
На плоскости n множеств по m точек в каждом. Среди точек первого множества найти такую, которая принадлежит наибольшему количеству множеств. Добавлено через 1 час 6 минут Помогите!
Проверить количество скобок C++
Проверить имеется ли в заданном тексте баланс открывающих и закрывающих круглых скобок т. е. верно ли что можно установить взаимно однозначное соответствие открывающих и закрывающих скобок со следующими свойствами: а) открывающияся скобка всегда предшествует закрывающей б) первый и последний символ текста - пара соответствующих друг другу скобок Добавлено через 1 час 8 минут Помогите!
C++ Класс note (поля: фамилия, имя; номер телефона; день рождения; определить методы доступа к этим полям и перегруженные операции извлечения и вставки) http://www.cyberforum.ru/cpp-beginners/thread880527.html
Задача Определить класс с именем NOTE, содержащий следующие поля: фамилия, имя; номер телефона; день рождения (массив из трех чисел). Определить методы доступа к этим полям и перегруженные операции извлечения и вставки для объектов типа NOTE. 2. Написать программу, выполняющую следующие действия: ввод с клавиатуры данных в массив, состоящий из восьми объектов типа NOTE; записи должны...
C++ Вывод графика функции на экран Visual C++ 2010 Express Скачал с офф. сайта microsoft и поставил чистую версию Visual C++ 2010 Express. В общем надо вывести график функции на экран на определённом интервале. Нужна помощь так как как графику подключать не знаю, как библиотеки добавлять тоже не знаю. подробнее

Показать сообщение отдельно
ViktorBS
Сообщений: n/a
27.05.2013, 15:18     CreateFileMapping (написать DLL для обмена данными между большим количеством процессов (100-200))
Добрый день!
Необходимо написать 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 и т.д. я в курсе.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 02:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru