Установка значений спин-счетчиков

Установка значений спин-счетчиков

Спин-счетчики CS могут устанавливаться на стадии инициализации объектов CS или динамическим путем. В первом случае функция InitializeCriticalSection заменяется функцией InitializeCriticalSectionAndSpinCount, в которой добавлен параметр счетчика. В то же время, способа, позволяющего считать значение спин-счетчика, не существует.

VOID InitializeCriticalSectionAndSpinCount(LPCRITICAL_SECTION lpCriticalSection, DWORD dwCount) 

Значение спин-счетчика можно в любой момент изменить. 

VOID SetCriticalSectionSpinCount(LPCRITICAL_SECTION lpCriticalSection, DWORD dwCount) 

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

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

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

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

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

Накрутка счетчиков

Из книги Продвижение бизнеса в Интернет. Все о PR и рекламе в сети автора Гуров Филипп


Настройка спин-счетчика

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

Настройка спин-счетчика Обычно, если в результате выполнения функции EnterCriticalSection поток обнаруживает, что объект CS уже принадлежит другому потоку, он входит в ядро и остается блокированным до тех пор, пока не освободится объект CRITICAL_SECTION, что требует определенного времени.


Настройка производительности SMP-систем с помощью спин-счетчиков

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

Настройка производительности SMP-систем с помощью спин-счетчиков Эффективность методики блокирования (вхождение в раздел) и разблокирования (выход из раздела) объекта CRITICAL_SECTION объясняется тем, что тестирование объекта CS выполняется в пользовательском пространстве без


10.4.2 Установка значений параметров IP

Из книги VBA для чайников автора Каммингс Стив

10.4.2 Установка значений параметров IP Запрос приложения на установку соединения может заодно указать параметры для датаграмм IP, которые будут переносить данные этого соединения. Если не указывается определенное значение параметра, используется величина, заданная по


Сравнение значений

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


Уйма счетчиков

Из книги Недокументированные и малоизвестные возможности Windows XP автора Клименко Роман Александрович

Уйма счетчиков Пользователи плохо воспринимают большое количество счетчиков статистики и разных систем баннеров. Это давным-давно не работает, более того – негативно сказывается на мнении о вашем интернет-магазине. Сегодня существует много способов получать


Добавление счетчиков

Из книги Новый ум короля [О компьютерах, мышлении и законах физики] автора Пенроуз Роджер

Добавление счетчиков Для примера попробуем добавить счетчики производительности. Для начала удалите все используемые в данный момент счетчики. Для этого нужно выделить счетчик в области счетчиков и нажать клавишу Delete. После этого вызовите контекстное меню в любой из


Журналы счетчиков

Из книги HTML, XHTML и CSS на 100% автора Квинт Игорь

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


Стили счетчиков

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

Стили счетчиков По умолчанию браузер отображает значение счетчика как число в десятичном формате, но вы можете использовать и другие стили отображения счетчика, доступные через свойство list-style-type. Тогда описание счетчика будет выглядеть так:counter(«название счетчика»,


Спин-блокировки

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

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


Другие средства работы со спин-блокировками

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

Другие средства работы со спин-блокировками Функция spin_lock_init() используется для инициализации спин-блокировок, которые были созданы динамически (переменная типа spinlock_t, к которой нет прямого доступа, а есть только указатель на нее).Функция spin_try_lock() производит попытку


Спин-блокировки и обработчики нижних половин

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

Спин-блокировки и обработчики нижних половин Как было указано в главе 7, "Обработка нижних половин и отложенные действия", при использовании блокировок в работе с обработчиками нижних половин необходимо принимать некоторые меры предосторожности. Функция spin_lock_bh()


Спин-блокировки чтения-записи

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

Спин-блокировки чтения-записи Иногда в соответствии с целью использования блокировок их можно разделить два типа — блокировки чтения (reader lock) и блокировки записи (writer lock). Рассмотрим некоторый список, который может обновляться и в котором может выполняться поиск. Когда


Сравнение спин-блокировок и семафоров

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

Сравнение спин-блокировок и семафоров Понимание того, когда использовать спин-блокировки, а когда семафоры является важным для написания оптимального кода. Однако во многих случаях выбирать очень просто. В контексте прерывания могут использоваться только