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

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

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

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

27.05.2013, 15:18. Просмотров 396. Ответов 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++
Подскажите, нигде не нашел готовых шаблонов для создания обмена данными между процессами типа FileMapping. Может кто знает где взять?

Динамический массив с большим количеством элементов - C++
Нужно создать динамический массив (каждый элемент целое положительное число до 10^9), который по введенным данным создавал N элементов...

Удалить строку с самым большим количеством слов - C++
помогите написать программу: "Удалить строку с самым большим количеством слов" (используя указатели) С++ Заранее...

Алгоритм быстрой сортировки не работает с большим количеством чисел - C++
Требовалось написать программу с алгоритмами сортировки, затем сравнить эти алгоритмы (но проблема не в этом). Все работает, кроме быстрой...

Применение массивов случайных чисел с большим количеством элементов - C++
Само задание: Создайте две функции для решения одной и той же задачи: динамическое создание и заполнение случайными числами массива...

Вычислить разность между количеством отрицательных и количеством положительных элементов одномерного массива - C++
Здравствуйте уважаемые форумчане. Возникли трудности при решении задачи. :wall: Буду очень признателен тем, кто поможет и не останется...

Определить номер строки матрицы с наиболее большим количеством нулей - C++
с помощью датчика случайных чисел заполнить двоичную матрицу 5 10. определить номер строки с наиболее большим количеством нулей

Строки матрицы, с большим количеством положительных элементов расположить выше остальных - C++
В массиве А(N,M) расположить строки так, чтобы сначала шли строки, у которых положительных элементов больше, чем отрицательных, затем с...

Реализовать обработку и файловую запись/чтение массива с большим количеством элементов - C++
такую задачу поставили... имеется 600 000 элементов. Каждому элементу присвоить значение и по 300 000 записать в файл. массив такое...

Вывести фамилии преподавателей с количеством часов меньше 200 и название предмета - C++
Дан список преподавателей, предмет и количество часов по предмету. Ввести не менее 8 преподавателей, заполнить структуру, и вывести фамилии...

Написать функцию для обмена строк двумерного массива - C++
Написать функцию для обмена строк двумерного массива с ее помощью отсортировать массив по элементам третьего столбца.

Создать цикл for, счетчик которого изменяется от 100 до 200 с шагом 2 - C++
Нужно создать цикл for, счетчик которого изменяется от 100 до 200 с шагом 2. Я написал цикл, но не получается установить шаг равный...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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