Начальная страница курса
Задание для самостоятельной работы
Дедлайн: 15.12.2021 23:59
Цели и задачи: Изучить работу с потоками. Научиться разбивать задачу на части, для последующего их выполнения различными потоками.
-
В соответствии с новым выданным вариантом задания разработать консольное приложение с использованием библиотеки POSIX Threads языка программирования C или стандартной библиотеки языка программирования C++. Программа должна быть написана на языке C или C++, компилироваться и выполняться в ОС Lnux. Стиль написания программы - свободный.
-
Выбрать модель приложения, наиболее точно отвечающую специфике задачи или применить указанную. Изучить используемую модель по дополнительным источники информации и привести в пояснительной записке ее описание.
-
Разработать алгоритм решения задания, с учетом разделения вычислений между несколькими потоками. Избегать ситуаций неуправляемого изменения одних и тех же общих данных несколькими потоками. Если же избежать этого невозможно, необходимо использовать мьютексы и критические секции.
-
Провести отладку и тестирование разработанной программы. Программа должна правильно обрабатывать входные данные в соответствии с условием задания и реагировать на некорректно вводимые исходные данные. Ввод основных данных должен осуществляться в допустимом для условия задачи диапазоне без введения искусственных ограничений.
-
Отчет должен содержать титульный лист с идентификацией студента, номер варианта, описание задачи.
-
В отчете необходимо подробно описать используемую модель вычислений. Привести источники информации, в которых описана данная модель.
-
Для удобства ввод-вывод данных можно организовать с использованием файлов и (или) использовать аргументы командной строки. При этом способы ввода, должны быть тщательно документированы и понятны пользователю программы. Описание работы с данными программы должно быть приведено в отчете и сопровождаться соотвтетсвующей информацией при работе с программой.
-
Для порождения массивов данных допускается использовать генераторы случайных чисел. При этом генераторами случайных чисел должны порождаться семантически корректные данные.
-
В ходе выполнения программа должна выводить в консоль все события, доступно (в терминах предметной области) объясняющие последовательность моделируемых действия. При необходимости нужно выводить модельное время, формируемое на основе принятых единиц его измерения.
-
При решении задачи обязательно использовать синхропримитивы из указанных в условии (если они указаны).
Примечание. Хотелось бы обратить внимание на достаточно неформальную постановку задач, что позволяет каждому проявить фантазию и инициативу в его интрепретации и реализации. В связи с этим любое копирование описания, исходных данных, алгоритмов и программного кода будет рассматриваться как плагиат. При этом, в рамках условия задачи, допускаются собственные интерпретации тех или иных событий. При описании этих событий возможно использование как русского, так и английского языка, так как практически во всех задачах нет обработки текстов, а текстовая информация используется только для вывода.
Начальная страница курса
|