Diferença entre tamanho e tamanho no disco

A unidade de disco em um computador típico é dividida em "Setores" e "Blocos", que são de tamanho fixo. (1024 bytes, talvez).

Portanto, se você tiver um pedaço de dados que é (digamos) 1500 bytes - quando ele for gravado em disco, ele consumirá 2048 bytes porque esse é o próximo múltiplo de 1024. Portanto, 548 bytes de espaço serão desperdiçados.

Na memória principal, o armazenamento também é organizado em blocos (chamados de "páginas") e cada programa em execução pode ter apenas um número inteiro de páginas alocadas a ele ... portanto, em princípio, o mesmo se aplica.

No entanto, na prática, um programa terá muitos dados diferentes de fontes diferentes - e esses serão agrupados -, portanto, é difícil prever o efeito direto de carregar um arquivo do disco em um programa na memória.

Mas quando você pergunta ao sistema operacional quanto tempo um arquivo tem - às vezes ele é relatado em múltiplos exatos do tamanho do bloco - e outras vezes o tamanho exato dos dados, para o bloco mais próximo.

Tudo depende de como você pergunta!

Além disso, mídias diferentes têm tamanhos de bloco diferentes - portanto, o tamanho de um bloco em uma unidade de estado sólido pode ser diferente daquele em uma unidade de disco giratória tradicional - que (com certeza) seria diferente de um disquete da velha escola.

Imagine que você tenha um conjunto de cubos de armazenamento reorganizáveis. Você não pode colocar mais de uma coisa em um cubo. Você pode remover paredes entre cubos para poder armazenar algo que não caiba em apenas um.

É assim que é um sistema de arquivos em disco. Ele divide o disco em unidades chamadas "clusters" e aloca um arquivo para um ou mais deles. Portanto, se, digamos, os clusters tiverem 4096 bytes cada, um arquivo com 4097 bytes ocupará dois deles, portanto, o tamanho real será 4097 bytes, mas seu tamanho no disco será 8192 bytes, pois utiliza dois clusters.

Os tamanhos dos clusters dos diferentes sistemas de arquivos variam, e alguns oferecem clusters menores em um disco menor, e alguns permitem definir o tamanho dos clusters que você deseja usar, para que você possa fazê-lo com base na expectativa de ter um alguns arquivos grandes ou muitos arquivos pequenos.

Também existem alguns que podem subdividir clusters dentro de limites ou que possuem um grupo especial de clusters menores para colocar arquivos pequenos.