>
>
>
>
>
Você já abriu seu computador e começou a digitar sua senha só para ver um grande atraso no que você está digitando? Esse atraso acontece quando o processador do computador acorda e percebe que precisa começar a pegar os dados do mini processador no teclado. Mas como esta informação é armazenada se há apenas um pequeno espaço na memória do teclado?
É aqui que entra o buffer circular.
O buffer circular é um certo tipo de fila. Agora, se você não está familiarizado com uma fila, você pode conhecê-la como uma linha. (Como quando você está esperando na fila para usar o banheiro.) Esta fila é uma estrutura FIFO (primeiro a entrar, primeiro a sair). Isso significa que a primeira pessoa a entrar numa fila é a primeira pessoa a sair. Então o que é diferente em uma fila circular?
Um buffer circular armazena os dados em um array de tamanho fixo. Então uma vez que o tamanho está definido e o buffer está cheio, o item mais antigo no buffer será empurrado para fora se mais dados forem adicionados. Ao armazenar dois ponteiros para a frente e para trás da estrutura, não há necessidade de manipular dinamicamente o array.
No entanto, se o buffer estiver cheio e você precisar adicionar algo novo, basta definir o item da lista apontado pelo ponteiro de trás para o novo item e incrementar o ponteiro de trás por um. A frente irá agora apontar para o item adicionado mais recentemente.
Esta técnica de alocação de memória tem benefícios quando você está trabalhando com um monte de dados em tempo real. Como mais dados são adicionados à estrutura, os dados antigos serão removidos para que nenhum dado precise ser deslocado. Como dito anteriormente, os ponteiros apenas mudam de posição.
Agora para voltar ao seu teclado e entrada de senha. Todas as suas teclas são mantidas em um buffer circular. Portanto, se você digitar rápido o suficiente, você potencialmente perderia parte da entrada recebida do teclado.