Интернет магазин китайских планшетных компьютеров |
|
Компьютеры - Spinlock - Специфика многопроцессорных и однопроцессорных конфигураций13 мая 2011Оглавление: 1. Spinlock 2. Специфика многопроцессорных и однопроцессорных конфигураций 3. Применение спинлоков 4. Проблемы спинлоков и методы их решения 5. Альтернативы спинлоков Бытует распространенное мнение о том, что в пользовательских приложениях, работающий под управлением многозадачных ОС, использование спинлоков недопустимо, так как ожидание освобождения спинлока приводит к активному ожиданию в цикле, впустую расходующее вычислительные ресурсы процессора, а для синхронизации пользовательских программ должны применяться высокоуровневые примитивы, которые предполагают пассивное ожидание если данная нить не может продолжить выполнение, то она отдаёт управление ОС, а не крутится в цикле ожидания спинлока. На самом деле данное утверждение является справедливым на 100 % только для однопроцессорных систем. Во многих случаях применение спинлоков в SMP-конфигурациях ведёт к повышению эффективности в случае, если опрос и захват спинлока оказываются быстрее, чем вызов захвата мьютекса в ядро. Главным критерием здесь является contention — «жёсткость» соревнования за ресурс. Слабонагруженный ресурс, не являющийся популярным местом исполнения, ведёт себя иначе, чем сильно нагруженный, захватываемый и освобождаемый очень часто. Кроме того, в той же Windows есть разновидости мьютексов, которые сначала работают как spinlock, используя опрос значения в памяти, и только потом, по истечению большого количества опросов, переходят в ядро к блокирующему ожиданию. Такие объекты сочетают лучшие качества спинлоков и мьютексов. Просмотров: 4273
|