Лабораторная работа №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





Говорить и писать можно все, что думаешь, но думать следует осторожно. Нора фон Эльц
ещё >>