Для студентов МГТУ им. Н.Э.Баумана по предмету Разработка программных системСлучайные лабы ФедорукаСлучайные лабы Федорука
2024-02-182024-02-18СтудИзба
Лабораторная работа 1-4: Случайные лабы Федорука
Описание
1, 2, 3 и 4 лабы Федорука непойми какого варианта.
Текст заданий:
1 лаба:
Составить программу, решающую задачу разрешимости логического выражения, содержащего 3 переменные (т.е. задачу отыскания значений всех комбинаций 3 логических переменных, делающих выражение истинным). Замечание. Логическое выражение реализовать в виде функции языка СИ с тремя аргументами. Для проверки истинности логического выражения на каждой комбинации переменных организовать 8 параллельно выполняемых процессов, при этом родственные связи процессов имеют вид дерева с тремя ярусами. В качестве значений логических переменных целесообразно использовать значения, возвращаемые системным вызовом fork. В каждом процессе осуществить печать значений переменных и истинности выражения.
2 лаба:
Разработать программу, реализующую обработку строк текста и функционирующую в рамках 3-х потоков управления. Поток 0 (корневой) порождает 2-ух потомков (напрямую или опосредованно, решать вам) и организует передачу строк символов в последовательности "поток-0 => поток-1 => поток-2". Поток 0 получает строку символов латинского алфавита со стандартного ввода и передаёт ее в неизменном виде потоку 1. Поток 1 умеет преобразовывать полученную от потока 0 строку символов различными способами: • трансляция строки в неизменном виде; • инвертирование строки - первый символ становится последним и т.д.; • обмен соседних символов - нечетный становится на место четного и наоборот • перевод в КОИ-8 - установление в 1 старшего (8-ого) бита каждого символа. Поток 2 умеет преобразовывать полученную от потока 1 строку символов следующими способами: • трансляция строки в неизменном виде; • перевод всех символов строки в "верхний регистр"; • перевод всех символов строки в "нижний регистр"; • смена "регистра" всех символов строки. Основная функциональность потока 0 - считывание со стандартного ввода строк латинского текста и передача их (строк) потоку 1. Однако сигнал SIGINT (Ctrl/C) переводит поток 0 в состояние однократного чтения со стандартного ввода команды перехода потока 1 или 2 к новому способу обработки поступающих к нему строк текста (синтаксис команд придумать самостоятельно). Обязательно обеспечить индикацию результатов работы каждого потока в правильной временной последовательности.
3 лаба:
Разработать клиент-серверное приложение копирования файла (или поддерева файловой системы) с узла-клиента на узел-сервер в указанный каталог (аналог стандартной UNIX-команды rcp). Команда, выполняемая на стороне клиента, имеет следующий вид: cprem path.to.src.file host@path.to.dst.dir .
4 лаба:
Разработать средствами MPI параллельную программу решения методом Гаусса системы линейных алгебраических уравнений, матрица коэффициентов которой имеет блочно-диагональный с окаймлением вид. В качестве тестовых использовать реальные матрицы из хранилища или самостоятельно генерировать тестовую СЛАУ описанным ниже способом. Размер диагонального блока, ширина окаймления - аргументы программы. Программа должна демонстрировать ускорение по сравнению с последовательным вариантом
Текст заданий:
1 лаба:
Составить программу, решающую задачу разрешимости логического выражения, содержащего 3 переменные (т.е. задачу отыскания значений всех комбинаций 3 логических переменных, делающих выражение истинным). Замечание. Логическое выражение реализовать в виде функции языка СИ с тремя аргументами. Для проверки истинности логического выражения на каждой комбинации переменных организовать 8 параллельно выполняемых процессов, при этом родственные связи процессов имеют вид дерева с тремя ярусами. В качестве значений логических переменных целесообразно использовать значения, возвращаемые системным вызовом fork. В каждом процессе осуществить печать значений переменных и истинности выражения.
2 лаба:
Разработать программу, реализующую обработку строк текста и функционирующую в рамках 3-х потоков управления. Поток 0 (корневой) порождает 2-ух потомков (напрямую или опосредованно, решать вам) и организует передачу строк символов в последовательности "поток-0 => поток-1 => поток-2". Поток 0 получает строку символов латинского алфавита со стандартного ввода и передаёт ее в неизменном виде потоку 1. Поток 1 умеет преобразовывать полученную от потока 0 строку символов различными способами: • трансляция строки в неизменном виде; • инвертирование строки - первый символ становится последним и т.д.; • обмен соседних символов - нечетный становится на место четного и наоборот • перевод в КОИ-8 - установление в 1 старшего (8-ого) бита каждого символа. Поток 2 умеет преобразовывать полученную от потока 1 строку символов следующими способами: • трансляция строки в неизменном виде; • перевод всех символов строки в "верхний регистр"; • перевод всех символов строки в "нижний регистр"; • смена "регистра" всех символов строки. Основная функциональность потока 0 - считывание со стандартного ввода строк латинского текста и передача их (строк) потоку 1. Однако сигнал SIGINT (Ctrl/C) переводит поток 0 в состояние однократного чтения со стандартного ввода команды перехода потока 1 или 2 к новому способу обработки поступающих к нему строк текста (синтаксис команд придумать самостоятельно). Обязательно обеспечить индикацию результатов работы каждого потока в правильной временной последовательности.
3 лаба:
Разработать клиент-серверное приложение копирования файла (или поддерева файловой системы) с узла-клиента на узел-сервер в указанный каталог (аналог стандартной UNIX-команды rcp). Команда, выполняемая на стороне клиента, имеет следующий вид: cprem path.to.src.file host@path.to.dst.dir .
4 лаба:
Разработать средствами MPI параллельную программу решения методом Гаусса системы линейных алгебраических уравнений, матрица коэффициентов которой имеет блочно-диагональный с окаймлением вид. В качестве тестовых использовать реальные матрицы из хранилища или самостоятельно генерировать тестовую СЛАУ описанным ниже способом. Размер диагонального блока, ширина окаймления - аргументы программы. Программа должна демонстрировать ускорение по сравнению с последовательным вариантом
Характеристики лабораторной работы
Учебное заведение
Семестр
Номер задания
Просмотров
191
Качество
Идеальное компьютерное
Размер
1,22 Mb