quarta-feira, 13 de fevereiro de 2008

Revisitando o HD - segunda parte

Todo HD é formatado fisicamente na fábrica, quando então as superfícies dos pratos (ambas as faces são graváveis) são divididas em trilhas setores e cilindros. Drives antigos podiam - e precisavam - ser reformatados fisicamente, vez por outra, porque a contração e expansão dos pratos e a utilização de um prosaico motor de passo acabavam alterando a disposição das trilhas e dificultando ou inviabilizando a leitura dos dados. Já os drives atuais não apresentam mais esse tipo de problema - e nem podem ser reformatados fisicamente; ainda que existam softwares tidos e havidos como utilitários para formatação física, eles são simples ferramentas de diagnóstico - talvez um pouco mais eficientes que o chkdsk do XP, mas é só.

A propósito: não confunda formatação física com a formatação lógica - procedimento destinado a "inicializar" o HD - que pode ser feita, desfeita e refeita tantas vezes quantas você desejar, até porque isso não não altera a estrutura física do disco e nem interfere na forma como a controladora o utiliza, mas apenas permite ao SO "enxergar" as partições e criar parâmetros necessários para gerenciar o espaço disponível).

Voltando à "geometria" dos discos, as trilhas são "círculos concêntricos" numerados da borda para o centro (0, 1, 2, 3, e assim sucessivamente), enquanto que os setores (a menor "divisão física" do disco, já que cada setor tem apenas 512 bytes) são pequenas subdivisões dessas trilhas (cada trilha pode ter milhares de setores). E como a maioria dos HDs é composto por dois ou mais discos, existe também a figura do "cilindro", que corresponde aos conjuntos de trilhas de mesmo número nos vários pratos (o cilindro 1 é formado pela trilha 1 de cada face de disco, o cilindro 2, pela trilha 2, e assim por diante).

Com base nesses parâmetros, é possível determinar a capacidade de um HD multiplicando-se o número de cilindros pelo número de cabeças; o resultado, pelo número de setores, e o total, por 512 (já que, como vimos, são 512 bytes por setor). As trilhas externas possuem diâmetro superior ao das internas, e não só oferecem maior capacidade de armazenamento (nos discos antigos, o número de setores de cada trilha era sempre o mesmo, independentemente de seu diâmetro, o que resultava num brutal desperdício de espaço), mas também mais rapidez no acesso aos dados (por isso é que se recomenda instalar o sistema operacional na partição do início do disco).

O primeiro setor do HD, conhecido como setor de boot, setor zero, trilha zero ou MBR, é reservado para os parâmetros do boot (ali ficam registradas informações sobre qual sistema operacional está instalado, com qual sistema de arquivos o HD foi formatado e quais arquivos devem ser lidos para a inicialização). Além dele, mais alguns setores são reservados para a FAT (File Allocation Table) - uma espécie de "índice" que o sistema utiliza para saber quais áreas do disco estão ocupadas ou livres, e o que está gravado em cada cluster (a menor "porção" de espaço no disco que o SO é capaz de acessar). 

Toda vez que a máquina é ligada (ou reiniciada), um sinal elétrico dirige o controlador de programa da CPU para um certo endereço gravado no chip da placa-mãe que armazena o BIOS e o programa de inicialização, e comanda a realização do POST - teste que o processador faz em si mesmo e nos demais dispositivos e periféricos essenciais. Só depois disso - e se tudo estiver em ordem -, o sistema é carregado na RAM e assume o controle do computador.

O SO é responsável pela leitura e gravação dos dados, mas, no controle do tráfego de informações entre o disco e a memória RAM, ele conta com o auxilio do BIOS - que supervisiona a entrada e saída de informações. Quando você comanda a gravação de um arquivo, por exemplo, essa instrução é repassada ao SO, que altera a estrutura da FAT para indicar a presença daquele arquivo no diretório escolhido, seleciona os clusters disponíveis para armazenar os dados e repassa os endereço para o BIOS, que cuida dos detalhes físicos da gravação - ou seja, transfere os dados da RAM para o HD e solicita à controladora do disco que posicione as cabeças de leitura/gravação sobre os cluster correspondentes. 

Sempre que um arquivo não couber num cluster, o SO terá de localizar mais clusters disponíveis (tantos quantos forem necessários) e repassar suas coordenadas ao BIOS, até que o arquivo seja totalmente gravado no disco. Concluído esse processo, os cluster ocupados serão registrados na FAT, para que não sejam sobrescritos durante a gravação de outros arquivos.

Amanhã a gente conclui.

Abraços e até lá.