Лабораторные работы №1-2 по дисциплине «Параллельное программирование». Вариант №1. - Готовые работы

Лабораторные работы №1-2 по дисциплине «Параллельное программирование». Вариант №1.

Задание на лабораторную работу

Цель: освоить реализацию алгоритмов планирования использования ресурсов с вытесняющей и невытесняющей многозадачностью, с абсолютным и относительным приоритетом. Освоить реализацию механизмов безопасности и синхронизации потоков, а также механизмов исключения тупиковых ситуаций.
В работе необходимо реализовать ряд алгоритмов распределения ресурсов между конкурирующими потоками. Каждый поток характеризуется:
– уникальным идентификатором;
– приоритетом;
– временем CPU burst;
– списком требуемых ресурсов;
– дополнительными атрибутами (согласно индивидуальному варианту задания).
Характеристики ресурса:
– уникальный идентификатор;
– наименование ресурса;
– дополнительные атрибуты (согласно индивидуальному варианту задания).
Для имитации времени CPU burst (заданного в миллисекундах) поток при получении кванта времени на доступ к ресурсу должен делать паузу на указанное количество миллисекунд (или имитировать рабочую нагрузку на процессор в течение этого времени).
Входной файл должен иметь имя «input.txt», «input.xml», «input.json» и т. п. Если оба задания контрольной или лабораторной работы реализуются в одной и той же программе, имена входных файлов для разных заданий должны отличаться (например, для задания № 1 входной файл может иметь имя «input1.txt», «input1.xml», «input1.json» и т. п.). Формат входного файла представлен в таблице 2.1.
Таблица 2.1 – Формат входного файла для задания № 1
Поле Значение
PA Выбранный способ планирования
QT Продолжительность кванта времени, мс
MaxT Максимальное время CPU burst. Минимальное – 1 мс
MaxP Максимальный приоритет потока. Минимальный – 1
NR Количество ресурсов
… Атрибуты каждого ресурса (наименование и дополнительные
атрибуты). Если какие-то атрибуты не заданы (или заданы пустой строкой), то генерируются программой случайным образом
NP Количество потоков
… Атрибуты каждого потока (приоритет, время выполнения,
список требуемых ресурсов и дополнительные атрибуты).
Если какие-то атрибуты не заданы (или заданы пустой строкой), то генерируются программой случайным образом

Выходной файл должен иметь имя «output.txt». Формат выходного файла представлен в таблице 2.2.

Таблица 2.2 – Формат выходного файла для задания № 1
Поле Значение
NR Количество ресурсов
… Характеристики каждого ресурса, если они были сгенерированы случайным образом
NP Количество потоков
… Характеристики каждого потока, если они были сгенерированы случайным образом
T Общее время выполнения всех потоков. В случае возникновения тупиковой ситуации это будет слово «deadlock»
0…00 Строка, соответствующая состоянию системы после завершения нулевого кванта времени. Для каждого ресурса выводится
либо идентификатор владеющего им потока, либо указание,
что ресурс свободен. Для каждого потока выводится его состояние (не инициализирован, ожидает в очереди, работает,
завершил работу). Ведущие нули добавляются для того, чтобы
выровнять значения в строках (соответствующие значения
должны располагаться в виде таблицы друг под другом). Допускается для этой цели использовать пробелы
0…01 Аналогично – после завершения следующего кванта
… И т. д. для всех оставшихся квантов. Если система зашла в тупик, то следует остановиться на последнем кванте, когда состояние системы претерпело изменения

Для ввода и вывода данных допускается использование в программе визуального интерфейса вместо файлового ввода/вывода.
Вариант 1 (Определен в личном кабинете). Ресурсы – преподаватели на экзамене. Атрибуты преподавателя – Ф.И.О., дисциплина, а также количество студентов N (N ≥ 1), у которых он может принимать экзамен одновременно. Количество преподавателей – P (P ≥ 1). Атрибуты студента – Ф.И.О., номер группы и список дисциплин, по которым ему нужно сдать экзамен. Алгоритмы планирования:
1. FCFS, nonpreemptive;
2. Round Robin с очередью типа FCFS, абсолютный приоритет.
Для блокировки доступа к преподавателям использовать сеть Петри.

РЕАЛИЗАЦИЯ МНОГОПОТОЧНОЙ ОБРАБОТКИ ДАННЫХ
отчет по лабораторной работе № 2 по дисциплине
«Параллельное программирование»
Задание на лабораторную работу

Цель: освоить реализацию многопоточной обработки данных, а также
пула потоков и механизма асинхронного ввода/вывода.
В работе необходимо реализовать многопоточную обработку массива
структур данных (из N элементов) четырьмя способами:
1. При помощи массива из M потоков (M ≤ N), используя для синхронизации объект ядра – семафор.
2. При помощи массива из M потоков (M ≤ N), используя для синхронизации сеть Петри, моделирующую семафор.
3. При помощи пула из M потоков (M ≤ N), используя системный пул потоков или асинхронные потоки ввода/вывода.
4. При помощи пула из M потоков (M ≤ N), моделируя его при помощи сети Петри.
При обработке массива данных массивом потоков каждый поток либо заранее выбирает диапазон элементов массива данных, которые он будет обрабатывать, либо просто берет первый необработанный элемент. Завершив обработку одного элемента, поток переходит к обработке следующего.
При обработке массива данных пулом потоков, завершив обработку одного элемента массива данных, освободившийся в пуле, поток переходит к обработке следующего необработанного элемента.
Чтобы не требовалось создавать слишком большие массивы (для которых эффект от параллельной обработки будет наиболее очевидным), можно имитировать ситуацию, когда обработка одного элемента массива требует больше процессорного времени, чем в действительности. Для этого после обработки очередного элемента массива поток может делать паузу на указанное количество миллисекунд.
Входной файл должен иметь имя «input.txt», «input.xml», «input.json» и т. п. Если оба задания контрольной или лабораторной работы реализуются в одной и той же программе, имена входных файлов для разных заданий должны отличаться (например, для задания № 2 входной файл может иметь имя «input2.txt», «input2.xml», «input2.json» и т. п.). Формат входного файла представлен в таблице 2.3.

Таблица 2.3 – Формат входного файла для задания № 2
Поле Значение
PA Выбранный способ обработки массива
N Размер массива структур данных
M Количество параллельных потоков (если 0, то принимается
равным числу процессорных ядер в системе)
PT Пауза после обработки каждого элемента массива, мс
… Дополнительные входные данные (если требуются согласно
индивидуальному варианту задания)
… Значения атрибутов каждой структуры данных. Если какие-то атрибуты не заданы (или заданы пустой строкой), то генерируются программой случайным образом

Выходной файл должен иметь имя «output.txt». Формат выходного файла представлен в таблице 2.4.

Таблица 2.4 – Формат выходного файла для задания № 2
Поле Значение
T1 Время, требующееся на линейную обработку массива данных (без распараллеливания вычислений)
TP Время, требующееся на параллельную обработку массива данных выбранным способом
… Результаты обработки (зависят от варианта)

Для ввода и вывода данных допускается использование в программе визуального интерфейса вместо файлового ввода/вывода.
Вариант 1. Структура содержит корректное описание даты (день, месяц, год). Требуется определить, какие даты выпадают на определенный день недели W, и вывести их в выходной файл.

300,00 ₽

Автор: Николай Судницын

Предмет: Программирование

Университет: ТУСУР

Дата добавления: 17.03.2026

Куплено раз: 0

Файл Параллельное_программирование.rar 19,6 МБ