Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.11.01;
Скачать: [xml.tar.bz2];

Вниз

Межпроцессное взаимодействие IPC   Найти похожие ветки 

 
Shyrick   (2009-09-05 00:39) [0]

Добрый всем вечер! Помогите разобраться вот с такой задачкой.
Реализовать в матрице нахождение столбца с наименьшим количеством нулевых элементов с помощью нескольких процессов: каждый получает столбец, находит кол-во нулей. Взаимодействие оргпнизовать при помощи почтовых ячеек.

Сколько должно быть приложений то? Ведь количество столбцов заранее не известно. Получается что запускаем ведущий процесс, вводим массив, затем ведущий запускает ведомый, "отсылает почту", получает ответ. и так для каждого столбца своя копия ведомого?

Это правдо не на Delphi, а на С, но все же... Почему в нашем образовании такой бардак...предмет Оперционные системы, там и так хватает, так нет суют системное...


 
KilkennyCat ©   (2009-09-05 00:44) [1]

а точно не имеется ввиду многопоточность? а то из описания как-то аж страшно мне стало.


 
Германн ©   (2009-09-05 01:07) [2]

А что такое "почтовыя" ячейки?


 
Игорь Шевченко ©   (2009-09-05 01:08) [3]

Германн ©   (05.09.09 01:07) [2]

mailslot


 
Германн ©   (2009-09-05 01:37) [4]


> Игорь Шевченко ©   (05.09.09 01:08) [3]
>
> Германн ©   (05.09.09 01:07) [2]
>
> mailslot

Ну так бы и говорили!
А то опять нововведения в русском языке:)


 
oldman ©   (2009-09-05 09:06) [5]


> KilkennyCat ©   (05.09.09 00:44) [1]
>  а то из описания как-то аж страшно мне стало.


Даже жутко...


 
Shyrick   (2009-09-05 12:13) [6]


> а точно не имеется ввиду многопоточность?

да нет... я тоже сперва думал о многопоточности, а окозалось межпроцессовое взаимодействие...
Вот тикие АПИ функции CreateProcess()   OpenProcess()  TerminateProcess()
и еще к томуже связь через мэилслоты.. мне уже самому жутко
ну а если так посмотреть, то логика работы верна?


 
oldman ©   (2009-09-05 14:09) [7]


> Shyrick   (05.09.09 12:13) [6]
>
> > а точно не имеется ввиду многопоточность?
>
> да нет... я тоже сперва думал о многопоточности, а окозалось
> межпроцессовое взаимодействие...


При больших массивах исходных данных может не хватить оперативки...


 
Anatoly Podgoretsky ©   (2009-09-05 14:45) [8]

> oldman  (05.09.2009 14:09:07)  [7]

Пользовательские программы с оперативной памятью не работают.


 
Shyrick   (2009-09-05 21:05) [9]

Мде... все больше кажется что задача какая-то тупая... Почитал инфу по мэилслотам, а они то работают в полудуплексном режиме, взаимодействие только в одну сторону, а по заданию не подходит... Может препод не подумав составил задание...
Решил делать через именованные каналы(pipes), но меня коробит один момент:каждый процесс получает от ведущего процесса, из контекста получается что ведомых процессов несколько. Для каждого нужен свой канал(широкополосное вещание не поддерживается) со своим именем, а как новый  ведомый узнает имя вновь созданного для него канала? Отслеживать количество запущенных копий... слишком наворочено для контрольной. Да и в лабе пример совсем простой-клиент-сервер...
Что Вы думаете по этому поводу??
Кстати вот другие такие задачи
Реализовать нахождение максимального элемента матрицы с помощью нескольких процессов: каждый процесс получает от ведущего процесса  строку матрицы, находит максимальный элемент в строке. Ведущий процесс находит наибольшее из переданных ему значений. Взаимодействие выполнить с помощью именованных каналов.
Реализовать перемножение двух матриц с помощью нескольких процессов: каждый процесс выполняет перемножение строки первой матрицы на столбец второй (в соответствии с правилом умножения матриц). При необходимости процессам, выполняющим умножение, может быть отправлено несколько заданий. Взаимодействие выполнить с помощью именованных каналов.
Реализовать алгоритм блочной сортировки файла целых чисел. Каждый процесс, выполняющий сортировку, получает свою часть файла от ведущего процесса и сортирует его. Ведущий процесс выполняет упорядочивание уже отсортированных блоков. При необходимости ведомым процессам может быть выделено более одного задания на сортировку. Взаимодействие выполнить с помощью именованных каналов.
Реализовать обмен текстовыми сообщениями между несколькими процессами. Обеспечить  подтверждение приема сообщения адресатом или, в случае потери сообщения, повторную его передачу. Взаимодействие выполнить с помощью именованных каналов.
Реализовать нахождение в матрице столбца, содержащего наименьшее  количества нулевых элементов с помощью нескольких процессов: каждый процесс получает от ведущего процесса  столбец матрицы, находит количество нулевых элементов в столбце. Взаимодействие выполнить с помощью именованных каналов.
Реализовать нахождение строки матрицы, содержащей максимальное количество ненулевых значений с помощью нескольких процессов: каждый процесс получает от ведущего процесса  строку матрицы, находит количество ненулевых элементов в строке. Ведущий процесс находит наибольшее из переданных ему значений. Реализовать подтверждение приема сообщения. Взаимодействие выполнить с помощью именованных каналов.


Моя на последнююю похожа...
Высказывайте свои мнения как лучше реализовать все это дело...


 
Игорь Шевченко ©   (2009-09-05 21:15) [10]


> Для каждого нужен свой канал(широкополосное вещание не поддерживается)
> со своим именем, а как новый  ведомый узнает имя вновь созданного
> для него канала?


для широкополосного вещания нужен mailslot


> Высказывайте свои мнения как лучше реализовать все это дело.
> ..


лучше мнения преподавателя вряд ли кто-нибудь выскажет.
К тому же это тебе париться надо, а не нам, согласен ?


 
Shyrick   (2009-09-05 21:24) [11]


> для широкополосного вещания нужен mailslot

как я уже писал-работает в асинхронном режиме, т.е. не подойдет.
Так кто что думает по поводу количества ведомых копий? И как лучше определять имя канала к которому подключиться?

> К тому же это тебе париться надо, а не нам, согласен ?

Согласен, но я же не прошу сделать, а только консультируюсь



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2009.11.01;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.006 c
3-1228740232
akss
2008-12-08 15:43
2009.11.01
Зависает программа при использовании EventAlerter


3-1228849414
Falcom
2008-12-09 22:03
2009.11.01
Подключиться к MySQL из Delphi через Internet?


2-1252566358
Андр
2009-09-10 11:05
2009.11.01
удаление ярлыков


15-1251923407
Юрий
2009-09-03 00:30
2009.11.01
С днем рождения ! 3 сентября 2009 четверг


15-1251556679
Дмитрий С
2009-08-29 18:37
2009.11.01
Почему MS не подписывает такие файлы как kernel32.dll?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский