Eu sei que o cache é usado para armazenar dados para que solicitações futuras desses dados possam ser atendidas mais rapidamente. Normalmente temos três níveis de cache: L1, L2 e L3 na arquitetura atual do computador. Podemos ver o hardware de cache.
Além disso, ouvi falar do buffer, que é usado para organizar o fluxo de E/S. Mas não sei qual hardware é usado pelo buffer. É simplesmente a memória?
Por exemplo, no sistema Linux, free -m
pode me mostrar o uso do cache/buff:
Se eu estiver certo, buff/cache
mostra o tamanho do cache + o tamanho do buffer. Então o tamanho do cache vem do cache L1, L2 e L3, certo? Mas e o tamanho do buffer? Qual hardware é usado pelo buffer?
Você está confundindo dois conceitos aqui. Os caches L1/2/3 são gerenciados pelo próprio processador (ou seja, o hardware e seu firmware/ microcódigo ), o kernel (geralmente) não tem controle sobre eles. O cache e o buffer a que
free
se refere são gerenciados pelo kernel e estão localizados na RAM. No entanto, partes dele podem ser encontradas nos caches do processador, mas isso não importa para a funcionalidade do sistema operacional.