NetNado
  Найти на сайте:

Учащимся

Учителям



Лабораторная работа №3 «Практическое знакомство с потоками и синхронизацией потоков ос unix»


Национальный исследовательский университет

Томский политехнический университет

Институт Кибернетики

Кафедра ВТ

Операционные системы

gerb-b

ЛАБОРАТОРНАЯ РАБОТА № 3

«Практическое знакомство с потоками и синхронизацией потоков ОС UNIX »

Выполнил

студент группы 8В83




А.Н. Ролдугин

Проверил





Д.В. Сидоров

Цель работы
Ознакомиться с подсистемой управления потоками в операционной системе Unix и основными программными средствами для создания, управления и удаления потоков..

Задание


Изучить основные программные средства управления потоками ОС Unix, а также способы синхронизации потоков. Разработать приложения для многопоточных вычислений с использованием синхронизации посредством мьютексов, семафоров и условных переменных.


Ход работы работы



  1. Разработать три многопоточные программы с использованием минимум двух потоков и различных средств синхронизации. Необходимо обеспечить синхронизированную работу потоков в критической секции с использованием:

    • мьютексов;

    • семафоров;

    • условных переменных


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

d:\os\lab3\screenshot.png

d:\os\lab3\screenshot-1.png


d:\os\lab3\screenshot-7.png



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


d:\os\lab3\screenshot-2.png


d:\os\lab3\screenshot-8.png


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


d:\os\lab3\screenshot-3.png


d:\os\lab3\screenshot-4.png

d:\os\lab3\screenshot-9.png


  1. Убедиться в результативности применения средств синхронизации потоков, сравнив результаты работы программ с использованием и без использования средств синхронизации.


Во второй программе были убраны семофоры, следовательно, потоки получились асинхронные, потоки работают в произвольном порядке, в результате чего мы не можем гарантировать правильность работы приложения, в некоторых случаях это приводит к ошибке приложения или зацикливанию потока.
d:\os\lab3\screenshot-5.png

d:\os\lab3\screenshot-6.png

Выводы

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

2011

страница 1


скачать

Другие похожие работы: