Результаты синхронизации потоков

Результаты синхронизации потоков

В табл. А.4 приведены значения времени, нужного одному или нескольким потокам для увеличения счетчика в разделяемой памяти с использованием различных средств синхронизации в Solaris 2.6, а на рис. А.3 показан график этих значений. Каждый поток увеличивает значение счетчика 1000000 раз, а количество потоков меняется от 1 до 5. В табл. А.5 приведены эти же значения для Digital Unix 4.0В, а на рис. А.4 — график этих значений. 

Рис. А.З. Время увеличения счетчика в разделяемой памяти (Solaris 2.6)

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

В Digital Unix 4.0B значения для семафоров Posix оказываются непомерно большими, если работает более одного потока, что указывает на наличие какой-то аномалии. На графике мы эти значения не приводим.

ПРИМЕЧАНИЕ

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

Рис.А.4. Время увеличения счетчика в разделяемой памяти (Digital Unix 4.0B)

Таблица А.4. Время увеличения счетчика в разделяемой памяти для Solaris 2.6 (в секундах)

Кол-во потоков Взаимное исключение Posix Блокировка чтения-записи Семафор Posix в памяти Именованный семафор Posix Семафор System V Семафор System V с UNDO Блокировка записей fcntl
1 0,7 2,0 4,5 15,4 16,3 21,1 89,4
2 1,5 5,4 9,0 31,1 31,5 37,5
3 2,2 7,5 14,4 46,5 48,3 57,7
4 2,9 13,7 18,2 62,5 65,8 75,8
5 3,7 19,7 22,8 76,8 81,8 90,0

Таблица А.5. Время увеличения счетчика в разделяемой памяти в Digital Unix 4.0B (в секундах) 

Кол-во потоков Взаимное исключение Posix Блокировка чтения-записи Семафор Posix в памяти Именованный семафор Posix Семафор System V Семафор System V с UNDO Блокировка записей fcntl
1 2,9 12,9 13,2 14,2 26,6 46,6 96,4
2 11,4 40,8 742,5 771,6 54,9 93,9
3 28,4 73,2 1080,5 1074,5 84,5 141,9
4 49,3 95,0 1534,1 1502,2 109,9 188,4
5 67,3 126,3 1923,3 1764,1 137,3 233,6
Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Интервал синхронизации системных часов

Из книги Тонкости реестра Windows Vista. Трюки и эффекты автора Клименко Роман Александрович

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


Проблема конкуренции и роль синхронизации потоков

Из книги Язык программирования С# 2005 и платформа .NET 2.0. [3-е издание] автора Троелсен Эндрю

Проблема конкуренции и роль синхронизации потоков Одним из множества "преимуществ" (читайте источников проблем) многопоточного программирования является то, что вы имеете очень узкие возможности контроля в отношении использования потоков операционной системой и


Результаты синхронизации процессов

Из книги UNIX: взаимодействие процессов автора Стивенс Уильям Ричард

Результаты синхронизации процессов  В табл. А.4 и А.5 и на соответствующих рисунках были приведены результаты синхронизации потоков одного процесса. Интересно посмотреть, как взаимодействуют разные процессы. В табл. А.6 и на рис. А.5 приведены результаты измерения времени


Необходимость в синхронизации потоков

Из книги Системное программирование в среде Windows автора Харт Джонсон М

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


Объекты синхронизации потоков

Из книги TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security) автора Фейт Сидни М

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


Обзор: объекты синхронизации Windows

Из книги Программирование на языке Ruby [Идеология языка, теория и практика применения] автора Фултон Хэл

Обзор: объекты синхронизации Windows Наиболее важные свойства объектов синхронизации Windows перечислены в табл. 8.2.Таблица 8.2. Сравнительные характеристики объектов синхронизации Windows CRITICAL_SECTION Мьютекс Семафор Событие Именованный защищаемый объект


Влияние синхронизации на производительность

Из книги QNX/UNIX [Анатомия параллелизма] автора Цилюрик Олег Иванович

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


ГЛАВА 10 Усовершенствованные методы синхронизации потоков

Из книги Введение в QNX/Neutrino 2. Руководство по программированию приложений реального времени в QNX Realtime Platform автора Кёртен Роб

ГЛАВА 10 Усовершенствованные методы синхронизации потоков В предыдущей главе были описаны проблемы производительности, возникающие в Windows, и способы их преодоления в реалистичных ситуациях. В главе 8 обсуждался ряд простых задач, требующих привлечения объектов


Стеки потоков и допустимые количества потоков

Из книги Установка, настройка и восстановление Windows 7 на 100% автора Ватаманюк Александр Иванович

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


13.9.1 Сигнал синхронизации

Из книги Разработка ядра Linux автора Лав Роберт

13.9.1 Сигнал синхронизации Для некоторых функций (например, Interrupt Process) включение команды в общий поток данных не приводит к нужным результатам. Когда реальный терминал посылает сигнал прерывания, хост операционной системы получает этот сигнал сразу и быстро останавливает


4. Примитивы синхронизации

Из книги автора

4. Примитивы синхронизации ОС QNX Neutrino предоставляет широкий набор элементов синхронизации выполнения потоков, как в рамках одного процесса, так и разных. Это практически полный спектр примитивов, описываемых как базовым стандартом POSIX, так и всеми его расширениями


Дополнительно о синхронизации

Из книги автора

Дополнительно о синхронизации Мы уже обсудили:• мутексы;• семафоры;• барьеры.Давайте теперь завершим нашу дискуссию о синхронизации, обсудив следующее:• блокировки чтения/записи (reader/writer locks);• ждущие блокировки (sleepons);• условные переменные (condition


Центр синхронизации

Из книги автора

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


Глава 9 Средства синхронизации в ядре

Из книги автора

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


Резюмирование по синхронизации

Из книги автора

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