analizer 31.01.2011 20:12 wrok

Псто, насколько spin lock хуже mutex/semaphor'а? Как оно вообще, до сих пор ли spin lock блочит разом все ядра системы и, главное, блочит ли мьютекс ядро целиком или как?

Recommended by: @Minoru
1. Minoru 31.01.2011 20:14 netbook

А разве раньше spin lock блочил все ядра разом? Я про спинлоки недавно на 1024cores.net читал, там хорошая статья: http://www.1024cores.net/home/lock-free-...

2. analizerMinoru /1 31.01.2011 20:21 wrok

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

3. Minoruanalizer /2 31.01.2011 20:24 netbook

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

4. analizerMinoru /3 31.01.2011 20:45 wrok

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

5. dvyukov 01.02.2011 05:14

До архитектуры P6 атомарные RMW инструкции действительно выставляли сигнал LOCK на шину, хотя и это и не приводило к тому, что все остальные процессоры не могли ничего делать (они не могли только обращаться к шине). Начиная с архитектуры P6, т.е. с 1995 года, процессоры используют т.н. cache-locking, который не имеет никакого глобального эффекта, т.е. N процессоров/ядер вполне могут выполнять N атомарных RMW инструкций параллельно без какой-либо корреляции.

6. analizerdvyukov /5 01.02.2011 06:13 talkonaut-iphone_5.88_67b1c873

спасибо большое, теперь ясно

Do you really want to delete ?