Лабораторная работа №3 «Практическое знакомство с потоками и синхронизацией потоков ос unix» - davaiknam.ru o_O
Главная
Поиск по ключевым словам:
страница 1
Похожие работы
Название работы Кол-во страниц Размер
Лабораторная работа №7 Основы работы с unix-подобными системами 1 247.94kb.
Курсовая работа по информатике на тему: " Классификация ос unix" 1 169.81kb.
Лабораторная работа 1 Знакомство с Linux 1 315.34kb.
1. Введение в Unix. Краткая характеристика ос unix 1 334.17kb.
Содержание знакомство c Excel 6 1212.83kb.
Программированиена shell (unix) введение 3 507.84kb.
Лабораторная работа Приближенное вычисление интегралов 1 37.77kb.
Лабораторная работа 5 Оболочки в Linux 5 Установка среды 1 70.13kb.
Г 1998 г Общая характеристика рассматриваемой темы 1 215.45kb.
Лабораторная работа «Взаимодействие с Cryptoapi. Криптопровайдеры» 1 234.69kb.
Unix-подобные операционные системы, характеристики, особенности,... 1 40.07kb.
Вопросы к главе 5 «Потоки. Гонка данных и другие проблемы» Что означает... 1 57.34kb.
Направления изучения представлений о справедливости 1 202.17kb.

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

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

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

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

Кафедра ВТ

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

gerb-b

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

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


Выполнил

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






Е.Ю. Чистяков

Проверил





Д.В. Сидоров

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

Задание

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




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



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

    • мьютексов;

    • семафоров;

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


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



holop@holop-bubunta:~/OS/labka3/temp1$ ./a.out

Enter a string (enter to quit):

test1


Enter a string (enter to quit):

test2


Enter a string (enter to quit):

test3


Enter a string (enter to quit):

r

test1



test2

test3


r

Enter a string (enter to quit):

The threads are stopped


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


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

holop@holop-bubunta:~/labka3/temp2$ ./mf

-5

5

0



10

5

15



25

20

30



25

35

30



40

35

45



40

50

The threads are stopped




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


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


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

holop@holop-bubunta:~/lab3/temp3$ ./mf

1 2 1 2 3 2 3 4 3 4 5 4 5 6 5 6 7 6 7 8 7 8 9 8 9 10 9 10



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

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


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

holop@holop-bubunta:~/lab3/temp4$ ./mf

-5

0

-5



-10

-15


-20

-255


-15

-5

5



15

25

35



45

55
The threads are stopped



Выводы

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



2011





Наши знания есть сумма того, чему мы научились, и того, что мы забыли. Мария Эбнер-Эшенбах
ещё >>