ВУЗ:
Составители:
Задача 1-3. Реализовать вычисление определителя квадратной матрицы с помощью разложения ее на определители
меньшего порядка. При этом "ведущий" процесс рассылает задания "ведомым" процессам, последние выполняют вычисле-
ние определителей, а затем главный процесс вычисляет окончательный результат. Взаимодействие выполнить с помощью:
1 – отображения файлов;
2 – почтовых ящиков;
3 – каналов.
Задача 4-6. Реализовать нахождение обратной матрицы методом Гаусса, при этом задания по решению систем линей-
ных уравнений распределяются поровну для каждого процесса. Взаимодействие выполнить с помощью:
4 – отображения файлов;
5 – почтовых ящиков;
6 – каналов.
Задача 7-9. Реализовать перемножение двух матриц с помощью нескольких процессов: каждый процесс выполняет пе-
ремножение строки первой матрицы на столбец второй (в соответствии с правилом умножения матриц). При необходимости
процессам, выполняющим умножение, может быть отправлено несколько заданий. Взаимодействие выполнить с помощью:
7 – отображения файлов;
8 – почтовых ящиков;
9 – каналов.
Задача 10-12. Реализовать алгоритм блочной сортировки файла целых чисел. Каждый процесс, выполняющий сорти-
ровку, получает свою часть файла от ведущего процесса и сортирует его. Ведущий процесс выполняет упорядочивание уже
отсортированных блоков. При необходимости ведомым процессам может быть выделено более одного задания на сортиров-
ку. Взаимодействие выполнить с помощью:
10 – отображения файлов;
11 – почтовых ящиков;
12 – каналов.
Задача 13-15. Реализовать обмен текстовыми сообщениями между несколькими процессами. Обеспечить возможность
отправки сообщения сразу нескольким адресатам. Реализовать подтверждение приема сообщения адресатом или, в случае
потери сообщения, повторную его передачу. Взаимодействие выполнить с помощью:
13 – отображения файлов;
14 – почтовых ящиков;
15 – каналов.
КОНТРОЛЬНЫЕ ВОПРОСЫ
1. Для решения каких задач может применяться межпроцессное взаимодействие?
2. Как можно осуществить межпроцессное взаимодействие, используя файловые отображения?
3. Как можно организовать параллельные вычисления при помощи именованных каналов?
4. В каких случаях необходимо использовать почтовые ящики?