LINUX.ORG.RU

Сообщения ishka

 

Разработка многопоточного приложения средствами POSIX в ОС Linux

Ребят, учусь в УУМЗ, и препод решил всех удивить своими познаниями в программировании. Но с нами ими не поделился, только дал задание. Помогоите пожалуйста написать код, удовлетворяющий заданию. Вершины графа являются точками запуска/завершения потоков, дугами обозначены сами потоки, длину дуги следует интерпретировать как ориентировочное время выполнения потока. Реализовать последовательно-параллельный запуск потоков в ОС Linux с использованием средств POSIX для запуска и синхронизации потоков. Запрещается использовать какие-либо библиотеки и модули, решающие задачу кроссплатформенной разработки многопоточных приложений (std::thread, Qt Thread, Boost Thread и т.п.). Самостоятельно выделить на графе две группы с выполняющимися параллельно потоками. Первая группа не синхронизирована, параллельное выполнение входящих в группу потоков происходит за счет использования искусственной задержки. Величина задержки должна быть как можно меньше. При выполнении операций ввода-вывода перед входом в критическую секцию потоки должны захватывать мьютекс. Вторая группа синхронизирована семафорами: входящий в групу поток передает управление другому потоку после каждой итерации. Последовательное выполнение потоков должно обеспечиваться за счет использования семафоров. Все потоки должны запускаться одновременно из функции k1_init(), без задержек, один за другим. Использовать функцию pthread_join() разрешается только в функции k1_init() для ожидания завершения работы всех запущенных потоков. Вот этот граф. http://d.radikal.ru/d38/1903/45/c004a55e6571.png

 , ,

ishka
()

RSS подписка на новые темы