Всегда ли буфер находится в очереди хеширования?

Автор, говоря о буферном кеше в книге - Дизайн операционной системы UNIX , говорит, что

буфер всегда находится в хеш-очереди, но он может или может не быть на бесплатный список.

Как насчет буферов в списке свободных мест, которые могли вообще не использоваться? Разве они не были бы просто частью бесплатного списка?

Структуры данных, представленные в книге, аналогичны тем, которые обсуждаются здесь

В книге говорится о системе UNIX V.

0
01.05.2017, 12:58
2 ответа

"А как насчет буферов в свободном списке, которых могло не быть? вообще используется? Разве они не были бы просто частью списка свободных?"

Думаю, вы сами ответили на свой вопрос! Из того же текста:

"Каждый буфер помещается в список свободных, когда система загружается."

"...он может быть в списке свободных, а может и не быть."

Он есть в списке свободных при инициализации системы, потому что он, ну, бесплатный! система потребляет буфер и бросает его в хэш-очередь для использования, а затем отбрасывает его обратно в список свободных.

Хэш-очередь как бы говорит: «Да, я видел это и использовал это в некотором качестве». обязательно означает, что он уже обработан из буферной очереди.

Формулировка немного запутанная, и мне пришлось выкопать текст, на который вы ссылаетесь. Я просматриваю страницы 40/41 для ясности.

0
28.01.2020, 04:46

Свободный список представляет собой алгоритм, который используется для поиска разблокированного и свободного буфера в буферном кэше. Эта структура данных используется в основном для записи буфера. Потому что для записи вы можете выбрать любой буфер, а для чтения требуется определенный буфер.

Теперь все буферы, присутствующие в списке Free, не могут быть пустыми, но определенно разблокированы. Кроме того, все буферы присутствуют в хеш-очереди, но не в списке свободных.

Потому что во время установки администратора спрашивают о количестве очередей, и тогда решено поместить все буферы в эти очереди. Следовательно, все буферы должны быть перечислены системой в хеш-очереди.

0
28.01.2020, 04:46

Теги

Похожие вопросы