Модераторы: feodorv, GremlinProg, xvr, Fixin

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [WinAPI] управление памятью и обмен данными, между процессами 
V
    Опции темы
anatox91
Дата 13.10.2010, 20:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


программист-самоучка
**


Профиль
Группа: Участник
Сообщений: 699
Регистрация: 12.1.2008
Где: ++Украина.Крым++

Репутация: нет
Всего: 13



не, в задании сказано только через мьютексы сделать синхронизацию

Добавлено через 1 минуту и 34 секунды
блин, можно ведь гораздо проще сделать, просто ожидать окончания процесса)))

Добавлено через 1 минуту и 56 секунд
и обойтись одним мьютексом)


--------------------

The code is the design ©

Sony VAIO VGN-FW480J

user posted image
PM MAIL ICQ   Вверх
GremlinProg
Дата 13.10.2010, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2706
Регистрация: 9.8.2005
Где: Тюмень

Репутация: 99
Всего: 106



Цитата(anatox91 @  13.10.2010,  22:02 Найти цитируемый пост)
блин, можно ведь гораздо проще сделать, просто ожидать окончания процесса)))

 smile только в таком случае, мьютексы вообще не нужны  smile


--------------------
"Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины."
PM WWW ICQ   Вверх
anatox91
Дата 13.10.2010, 20:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


программист-самоучка
**


Профиль
Группа: Участник
Сообщений: 699
Регистрация: 12.1.2008
Где: ++Украина.Крым++

Репутация: нет
Всего: 13



все отлично работает, спасибо еще раз)

Добавлено через 32 секунды
мьютекс нужен чтобы второй процесс подождал пока первый приготовит память


--------------------

The code is the design ©

Sony VAIO VGN-FW480J

user posted image
PM MAIL ICQ   Вверх
GremlinProg
Дата 13.10.2010, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2706
Регистрация: 9.8.2005
Где: Тюмень

Репутация: 99
Всего: 106



Цитата(anatox91 @  12.10.2010,  15:26 Найти цитируемый пост)
Ожидание процесса MemSort (используя заданный по варианту задания тип синхронизации необходимо ожидать пока процесс MemSort не подготовит данные)

ожидать освобождения мьютекса, захваченного в MemSort можно только при наличии гарантии того, что этот мьютекс будет захвачен не memshare, а сделать это может только MemSort

т.е. если поменять местами программы, то такого эффекта можно добиться,
т.е. не MemSort запускать из memshare, а наоборот  smile 

либо можно использовать дополнительную синхронизацию событием для захвата мьютекса


--------------------
"Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины."
PM WWW ICQ   Вверх
anatox91
Дата 13.10.2010, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


программист-самоучка
**


Профиль
Группа: Участник
Сообщений: 699
Регистрация: 12.1.2008
Где: ++Украина.Крым++

Репутация: нет
Всего: 13



там в вариантах заданий кроме мьютексов были еще бинарные и считающие семафоры(у меня попался мьютекс), с помощью них это можно было бы сделать без ожидания окончания процесса и без событий? если нет, то это наверно ошибка в задании...


--------------------

The code is the design ©

Sony VAIO VGN-FW480J

user posted image
PM MAIL ICQ   Вверх
GremlinProg
Дата 13.10.2010, 21:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2706
Регистрация: 9.8.2005
Где: Тюмень

Репутация: 99
Всего: 106



без дополнительных синхронизаций, по-моему не реально (нельзя захватить мьютекс чужими руками, только своими),
а вот с одним барьером можно:
Код

memshare:
  m = CreateMutex( ..., FALSE, ... );
  e = CreateEvent( ..., TRUE, FALSE, ... );
  CreateProcess( ... );
  WaitForSingleObject( e, INFINITE );
  WaitForSingleObject( m, INFINITE );
  ...
memsort:
  m = OpenMutex( ... );
  e = OpenEvent( ... );
  WaitForSingleObject( m, INFINITE );
  SetEvent( e );
  сортировка
  ReleaseMutex( m );
  ...

тогда m будет решать поставленную задачу


--------------------
"Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины."
PM WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0699 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.