Форум: "Начинающим";
Текущий архив: 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