ГЛАВА 9 Влияние синхронизации на производительность и рекомендации по ее повышению

ГЛАВА 9

Влияние синхронизации на производительность и рекомендации по ее повышению

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

Несмотря на всю важность синхронизации потоков, применение этого средства сопряжено со значительными рисками снижения производительности, которые ниже частично обсуждаются на примере как однопроцессорных, так и многопроцессорных (SMP) систем. У возможных альтернативных решений имеются собственные достоинства и недостатки. Например, объекты CRITICAL_SECTION (CS) и мьютексы обладают почти одинаковыми свойствами и решают одну и ту же фундаментальную задачу. Вообще говоря, наиболее эффективным механизмом блокирования являются объекты CS, хотя это справедливо не во всех ситуациях. Кроме того, как показано в главе 10, объекты CS менее удобны в работе по сравнению с мьютексами. В некоторых случаях достаточно использовать функции взаимоблокировки потоков, а при тщательном проектировании и реализации приложения иногда можно вообще обойтись без использования объектов синхронизации.

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

Примечание

В NT 5.0 достигнут значительный прогресс в плане повышения производительности. В ранних версиях NT и в Windows 9x некоторые из отмеченных выше проблем носили гораздо более острый характер.

Поделитесь на страничке

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

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

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

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

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


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

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

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


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

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

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


Рекомендации по повышению производительности и возможные риски

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

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


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

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

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


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

Из книги Политики безопасности компании при работе в Интернет автора Петренко Сергей Александрович

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


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

Из книги Как тестируют в Google автора Уиттакер Джеймс

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


Глава 3 РЕКОМЕНДАЦИИ МЕЖДУНАРОДНЫХ СТАНДАРТОВ ПО СОЗДАНИЮ ПОЛИТИК БЕЗОПАСНОСТИ

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

Глава 3 РЕКОМЕНДАЦИИ МЕЖДУНАРОДНЫХ СТАНДАРТОВ ПО СОЗДАНИЮ ПОЛИТИК БЕЗОПАСНОСТИ В последнее время в разных странах появилось новое поколение стандартов в области информационной безопасности, посвященных практическим вопросам обеспечения информационной безопасности


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

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

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


Влияние

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

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


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

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

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


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

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

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


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

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

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