The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Для Linux представлен планировщик задач BLD (Barbershop Load..."
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Отдельный RSS теперь доступен для каждого обсуждения в форуме и каждого минипортала.
. "Для Linux представлен планировщик задач BLD (Barbershop Load..." +/
Сообщение от Ваня (ok), 14-Фев-12, 14:58 
Зачем? Проблема не в прерывании, которое вмешается, а в том что мутекс один на 2+ одновременно (реально одновременно) работающих ядер.

@@:
lock btc [mutex] ; пытаемся захватить мутекс; "lock" чтобы запретить другим ядрам доступ к ОП на время выполнения операции
jnc @b ; не получилось - пробуем пока не получится; ВАЖНО: здесь ядро по сути встало в непрекращающийся цикл пока мутекс не будет освобождён другим ядром

; получаем следующий поток; мутекс всё ещё захвачен, текущее ядро мешает всем остальным

lock btr [mutex] ; освобождаем; "lock" чтобы освободить, т.к. иначе выполнение "lock btc" на другом ядре помешает выполнению нашей операции

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

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Для Linux представлен планировщик задач BLD (Barbershop Load..., opennews, 13-Фев-12, 14:15  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру