-
Caches são usados para leitura e escrita; veja as várias políticas de escrita que podem ser usadas para caches.
Buffers também são usados para leitura e escrita. "Buffer" é um termo bastante sobrecarregado e tem diferentes significados em diferentes contextos, então você verá diferentes definições em diferentes lugares.
-
Sim, você pode acabar gravando indo para um buffer e, em seguida, lendo diretamente do dispositivo subjacente ou gravando diretamente no dispositivo subjacente, antes que o buffer seja liberado para o dispositivo. Leituras diretas mostrarão dados obsoletos, gravações diretas serão perdidas quando o buffer for liberado.