A sua pergunta se refere ao caso quando os dados já estão presentes em um buffer, ou quando um novo buffer tem que ser alocado?
O número do bloco do dispositivo vem do arquivo do dispositivo que é usado para montar o sistema de arquivos (algo como / dev / sda1 no Linux ou / dev / hd0a no BSD). O número do dispositivo é necessário se os buffers são usados ou não. Os buffers são meramente um cache para economizar tempo lendo os mesmos dados novamente. O número do bloco dentro do dispositivo é determinado pelo layout do sistema de arquivos, leia essa parte do livro para obter mais informações sobre o formato do sistema de arquivos. Há uma explicação sobre diretórios, inodes, blocos diretos e indiretos e assim por diante.
Assim, uma vez que o kernel tenha determinado qual bloco é necessário, ele irá olhar os buffers na memória para encontrar o bloco necessário. Se estiver presente, uma operação de leitura não é necessária e os dados são retornados imediatamente.
Se o conteúdo do bloco não estiver na memória, o kernel selecionará um buffer na esperança de que o conteúdo deste bloco não seja usado em um futuro próximo. Este é geralmente o buffer usado menos recentemente.