Прочие модификации спинлоков

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

Зависа?ние — компьютерное явление, при котором одна или несколько программ или вся операционная система перестают реагировать на действия пользователя, или начинают без остановки выполнять одну и ту же (не обязательно полезную или содержательную) операцию, не реагируя на сообщения от других программ. В этот момент изображение, выводимое программой на монитор (если оно есть) застывает, в отличие от ошибки исполнения, при которой на экран выдаётся сообщение.

Продолжить работу программы можно только выгрузив её из памяти и запустив на исполнение снова. В большинстве современных операционных систем предусмотрена возможность прерывания исполнения программ, например — команда kill и различные интерфейсы к ней в системах GNU/Linux, или диспетчер задач в Microsoft Windows, а также команда taskkill в Windows XP. В случае полного зависания ОС, когда она не реагирует на ввод клавиатуры или мыши, работу можно продолжить только после полной перезагрузки операционной системы.

В некоторых случаях зависание системы можно обнаружить, используя сторожевой таймер.

Причинами зависания являются ошибки в программировании, чаще всего неверное завершение циклов или, в многозадачных ОС, взаимная блокировка процессов или неправильное использование памяти программами, а также ошибки в драйверах. Кроме того, зависание может возникнуть в результате аппаратного сбоя компьютера (в частности, в результате перегрева).

Функция ожидания

Функции ожидания позволяют потоку блокировать свое собственное выполнение. Функции ожидания не возвращают ничего до тех пор, пока не будут соблюдены указанные критерии. Тип функции ожидания определяет набор используемых критериев и при вызове функции проверяет, были ли соблюдены критерии ожидания. Если критерии не были соблюдены, то вызывающий поток переходит в состояние ожидания, пока условия критериев ожидания не были выполнены или заданный интервал ожидания не истечет.

https://msdn.microsoft.com/en-us/library/windows/desktop/ms687069(v=vs.85).aspx

СОСЕДА ПОЙМАЛА ПОЛИЦИЯ? — МОДЫ ПРИВЕТ СОСЕД — Hello neighbour beta 3


Читать еще…

Понравилась статья? Поделиться с друзьями: