Arquivos, blocos e buffers - kyriosdata/adapter GitHub Wiki

Dados são armazenados fisicamente por meio do sistema de arquivos oferecido pelo sistema operacional em questão. Arquivos são empregados para o registro dos dados. A manipulação de informações ocorre, em geral, em memória primária (RAM), principalmente pela velocidade de processamento. Ou seja, os dados contidos em um arquivo precisam ser transferidos para a RAM e, no sentido inverso, as alterações registradas no arquivo. O Block Manager é responsável pelo translado de dados entre memória primária (RAM) e memória secundária (disco).

Em geral, a capacidade instalada de memória primária é inferior àquela da memória secundária. Ou seja, geralmente não é possível depositar em memória primária todo o conteúdo de um arquivo. Além disso, essa transferência seria equivocada se a informação desejada fosse referente a uma parte dos dados, em vez de todo o conteúdo. Essas considerações conduz ao conceito de bloco, ou seja, unidade de divisão da memória secundária transferida de arquivo para RAM, e vice-versa, pelo Block Manager.

Fatos

  • Um arquivo é "dividido" em N blocos. Cada bloco de K bytes.
  • RAM é organizada em B buffers. Cada buffer de pelo menos K bytes.
  • Em geral, a quantidade de buffers (B) é bem inferior à quantidade de blocos (K).
  • O acesso a um buffer é bem mais eficiente que o acesso a um bloco.

Antes que o Block Manager possa transferir um bloco é necessário que a memória RAM correspondente esteja disponível. A gerência de memória RAM cabe ao Buffer Manager, ou seja, gerenciar a disponibilidade de espaços em RAM (buffers) empregados para o depósito temporário de blocos de dados transferidos pelo Block Manager.

O Block Manager realiza a transferência de um bloco de dados para um buffer sob demanda. Cabe a quem requisita essa operação assegurar a disponibilidade do buffer oferecido para a transferência. Ou seja, o Block Manager não interage com o Buffer Manager. Convém observar que o Buffer Manager realiza suas operações sem interação com o Block Manager.