Интернет магазин китайских планшетных компьютеров



Компьютеры - Spinlock - Специфика многопроцессорных и однопроцессорных конфигураций

13 мая 2011


Оглавление:
1. Spinlock
2. Специфика многопроцессорных и однопроцессорных конфигураций
3. Применение спинлоков
4. Проблемы спинлоков и методы их решения
5. Альтернативы спинлоков



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

Главным критерием здесь является contention — «жёсткость» соревнования за ресурс. Слабонагруженный ресурс, не являющийся популярным местом исполнения, ведёт себя иначе, чем сильно нагруженный, захватываемый и освобождаемый очень часто.

Кроме того, в той же Windows есть разновидости мьютексов, которые сначала работают как spinlock, используя опрос значения в памяти, и только потом, по истечению большого количества опросов, переходят в ядро к блокирующему ожиданию. Такие объекты сочетают лучшие качества спинлоков и мьютексов.



Просмотров: 4084


<<< Tenex