Лабораторная работа №3 «Практическое знакомство с потоками и синхронизацией потоков ос unix»
Национальный исследовательский университет
Томский политехнический университет
Институт Кибернетики
Кафедра ВТ
Операционные системы

ЛАБОРАТОРНАЯ РАБОТА № 3
«Практическое знакомство с потоками и синхронизацией потоков ОС UNIX »
Выполнил студент группы 8В83 | | А.Н. Ролдугин |
Проверил | | Д.В. Сидоров |
Цель работы
Ознакомиться с подсистемой управления потоками в операционной системе Unix и основными программными средствами для создания, управления и удаления потоков..
Задание
Изучить основные программные средства управления потоками ОС Unix, а также способы синхронизации потоков. Разработать приложения для многопоточных вычислений с использованием синхронизации посредством мьютексов, семафоров и условных переменных.
Ход работы работы
Разработать три многопоточные программы с использованием минимум двух потоков и различных средств синхронизации. Необходимо обеспечить синхронизированную работу потоков в критической секции с использованием:
мьютексов;
семафоров;
условных переменных
В программе имеются два потока, один поток получает введенную в консоль информацию и записывает ее в текстовый документ, второй поток , при запросе от пользователя, выводит содержимое того же документа на экран. Синхронизация с помощью мьютекса.



Во второй программе первый поток добавляет к общей переменной 10 а второй поток отнимает 5, после завершения одного цикла потока поток приостанавливается и начинает действие другой поток. Синхронизация с использованием семофора.


В данной программе два потока, с разной частотой, изменяют значение общей переменной, один поток прибавляет 1, другой отнимает 1, первый поток имеет в 2 раза большею частоту. Синхронизация с использованием условных переменных.



Убедиться в результативности применения средств синхронизации потоков, сравнив результаты работы программ с использованием и без использования средств синхронизации.
Во второй программе были убраны семофоры, следовательно, потоки получились асинхронные, потоки работают в произвольном порядке, в результате чего мы не можем гарантировать правильность работы приложения, в некоторых случаях это приводит к ошибке приложения или зацикливанию потока.


Выводы
В ходе данной лабораторной работы были получены навыки работы с потоками которые помогают оптимизировать работу приложения, и в некоторых случаях повысить скорость работы приложения. Так же изучены основные методы для синхронизации потоков, которые помогают избежать ошибочной работы много поточных программ.
2011
страница 1
скачать
Другие похожие работы: