> > - второй для блокировки индекса страницы, пока она привязывается к > > элементу кэша. Если два потока одноврененно начнут биндиться к одному > > сегменту, то их нужно снхронизировать. > > Что значит "пока привязывается"???
Ну это я так процесс привязки страницы к элементу кэша обозвал. Когда поток "заходит" в кэш с требованием "дай мне указатель на элемент кэша для страницы P1", кэш (через второй внутренний менеджер блокировок) пытается заблокировать P1 - это ему удается. Потом он смело ищет P1 в кэше. Если не найдет - то будет пытаться выделить новое, или выгрузит что-то очень старое. В течении этого процесса этот поток будет работать с блокировками элементов кэша. И изредка выполнять глобальную блокировку кэша (в моменты поиска по хешу и перестройки списков). Если другой поток, в это же самое время, тоже полезет в кэш за P1, то в момент блокировки P1 он встанет в режим ожидания первого потока. Если он полезет за P2, то его сразу пропустят. Второй блокировщик (в отличии от основного) юзает аналог тривиальной критической секции. А основной блокировщик (для элементов кэша, то бишь самой оперативной памяти) - замысловатый "Один писаталь, много читателей". Коваленко Дмитрий.

