Результаты синхронизации потоков
Результаты синхронизации потоков
В табл. А.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Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
Необходимость в синхронизации потоков
Необходимость в синхронизации потоков В главе 7 были продемонстрированы методы создания рабочих потоков и управления ими в условиях, когда каждый рабочий поток обращался к собственным ресурсам. В приведенных в главе 7 примерах каждый поток обрабатывает отдельный файл
Объекты синхронизации потоков
Объекты синхронизации потоков До сих пор нами были обсуждены только два механизма, обеспечивающие синхронизацию процессов и потоков друг с другом:1. Поток, выполняющийся в контексте одного процесса, может дожидаться завершения другого процесса с использованием функции
Обзор: объекты синхронизации Windows
Обзор: объекты синхронизации Windows Наиболее важные свойства объектов синхронизации Windows перечислены в табл. 8.2.Таблица 8.2. Сравнительные характеристики объектов синхронизации Windows CRITICAL_SECTION Мьютекс Семафор Событие Именованный защищаемый объект
Влияние синхронизации на производительность
Влияние синхронизации на производительность Использование синхронизации в программах может и будет ухудшать их производительность, и в этом отношении следует быть особенно осмотрительным в случае SMP-систем. На первый взгляд, это противоречит здравому смыслу, поскольку
ГЛАВА 10 Усовершенствованные методы синхронизации потоков
ГЛАВА 10 Усовершенствованные методы синхронизации потоков В предыдущей главе были описаны проблемы производительности, возникающие в Windows, и способы их преодоления в реалистичных ситуациях. В главе 8 обсуждался ряд простых задач, требующих привлечения объектов
Стеки потоков и допустимые количества потоков
Стеки потоков и допустимые количества потоков Следует сделать еще два предостережения. Во-первых, подумайте о размере стека, который по умолчанию составляет 1 Мбайт. В большинстве случаев этого будет вполне достаточно, но если существуют какие-либо сомнения на сей счет,
Глава 9 Средства синхронизации в ядре
Глава 9 Средства синхронизации в ядре В предыдущей главе обсуждались источники и решения проблем, связанных с конкуренцией за ресурсы. К счастью, в ядре Linux реализовано большое семейство средств синхронизации. В этой главе обсуждаются эти средства, интерфейсы к ним, а
Резюмирование по синхронизации
Резюмирование по синхронизации В этой главе было рассказано о том, как применять на практике понятия, описанные в предыдущей главе, чтобы лучше разобраться с функциями ядра, которые помогают осуществить синхронизацию и параллелизм. Вначале были рассмотрены самые
Дополнительно о синхронизации
Дополнительно о синхронизации Мы уже обсудили:• мутексы;• семафоры;• барьеры.Давайте теперь завершим нашу дискуссию о синхронизации, обсудив следующее:• блокировки чтения/записи (reader/writer locks);• ждущие блокировки (sleepons);• условные переменные (condition
4. Примитивы синхронизации
4. Примитивы синхронизации ОС QNX Neutrino предоставляет широкий набор элементов синхронизации выполнения потоков, как в рамках одного процесса, так и разных. Это практически полный спектр примитивов, описываемых как базовым стандартом POSIX, так и всеми его расширениями
13.9.1 Сигнал синхронизации
13.9.1 Сигнал синхронизации Для некоторых функций (например, Interrupt Process) включение команды в общий поток данных не приводит к нужным результатам. Когда реальный терминал посылает сигнал прерывания, хост операционной системы получает этот сигнал сразу и быстро останавливает
Центр синхронизации
Центр синхронизации С помощью этого компонента вы можете синхронизировать данные своего мобильного телефона или любого другого устройства, подключенного к компьютеру, с данными на компьютере. Кроме того, аналогичные действия можно выполнять и по отношению к данным,
Результаты синхронизации процессов
Результаты синхронизации процессов В табл. А.4 и А.5 и на соответствующих рисунках были приведены результаты синхронизации потоков одного процесса. Интересно посмотреть, как взаимодействуют разные процессы. В табл. А.6 и на рис. А.5 приведены результаты измерения времени
Проблема конкуренции и роль синхронизации потоков
Проблема конкуренции и роль синхронизации потоков Одним из множества "преимуществ" (читайте источников проблем) многопоточного программирования является то, что вы имеете очень узкие возможности контроля в отношении использования потоков операционной системой и
Интервал синхронизации системных часов
Интервал синхронизации системных часов Сверка системных часов компьютера с сервером времени осуществляется через определенный интервал времени. Возможности реестра позволяют корректировать величину интервала. Для этого в разделе реестра