Questão Por que o máximo de E / S em buffer é duas vezes mais rápido que E / S sem buffer?


Esta foi uma pergunta em um exame de sistemas operacionais que tive recentemente. Eu não consegui encontrar uma resposta realmente clara através do Google, então pensei em perguntar aos gênios aqui :)

Duas coisas a serem levadas em conta: há apenas um processo executando E / S, um disco rígido e um buffer.


2


origem


Acho que precisaremos da pergunta exata. Não há razão para que o buffer de io seja especificamente duas vezes mais rápido que o não buffer no caso geral. Pode ser mais rápido ou mais lento, dependendo do cenário. - Vojtech


Respostas:


O buffer é mais rápido que o HDD e o HDD é mais rápido ao gravar uma sequência longa do que muitas sequências curtas.

Então, é "rápido" preencher o buffer (até 3Gbit / s para SATA), então "rápido" para escrever isso como uma sequência de dados (~ 70Mb / s de gravação em disco).

Comparativamente, é "lento" escrever um monte de minúsculos bits, tendo que esperar que o HDD se alinhe a cada vez (tempo de busca tipicamente de ~ 8-12 ms).


3



E tecnologias como o NCQ aumentam ainda mais. - Ignacio Vazquez-Abrams


Com E / S armazenada em buffer, o remetente envia os dados o mais rápido possível. Sem um buffer, o remetente deve ser informado pelo receptor de que está pronto para mais dados.


0