Oficina
4. A Memória do Computador
Sab 26 Mai 2007 11:21 |
- Detalhes
- Categoria: Sistemas Operacionais
- Atualização: Domingo, 12 Abril 2009 17:29
- Autor: vovó Vicki
- Acessos: 21577
MÓDULO 4 do SO Numaboa
A memória do computador é uma área de armazenamento temporário onde as informações em uso - dos programas e dados - são mantidas enquanto são utilizadas. A memória da máquina é composta por uma porção fixa, que faz parte da placa-mãe, sobre a qual falaremos neste tutorial. Além disto existe a memória RAM (Random Access Memomry - Memória de Acesso Randômico), que é uma (ou mais) plaquinha com chips que pode ser encaixada em soquetes especiais da placa-mãe.
Nos processadores mais novos que os 8086/8088, a memória é capaz de guardar uma fileira de bits muito longa. Nas máquinas citadas, o máximo eram 8.388.608 bits.
A organização dos bits na memória
Vamos fazer algumas contas: se os chips de memória (ROM + RAM) podem guardar até 8.388.608 bits e se 1 byte corresponde a 8 bits, então... os chips podem armazenar 1.048.576 bytes, o mesmo que dizer 1 megabyte. Mas porque estes números quebrados?
Acontece que o computador é essencialmente binário. Kilo no sistema decimal representa 1000 (10 elevado a 3 é igual a 1000), mas convencionou-se que kilo no sistema binário corresponda a 1024 (2 elevado a 10 é igual a 1024). Só para refrescar a memória, veja a tabela abaixo:
|
Mas vamos voltar ao assunto principal. A área da memória, a partir dos processadores 8086 e 8088 (os jurássicos XT), tinha capacidade de armazenar 1 megabyte e a posição de cada byte (um conjunto de 8 bits) dentro da memória podia ser identificada: convencionou-se que seria de 0 a 1.048.575, o que dá o total de 1.048.576 posições. Acontece que os processadores possuíam apenas registradores de 16 bits e os 16 bits fornecem, no máximo, o número 65.535 (1111 1111 1111 1111 binário = 65.535 decimal). Era pouco número para muito espaço de memória. A solução foi usar dois registradores.
Dois registradores de 16 bits dão um total de 32 bits. Agora era bit demais para para pouca memória porque 1 megabyte pode ser expresso com apenas 20 bits. A tabela acima mostra que 2 elevado a 20 corresponde a 1 megabyte, o que é o mesmo que dizer que o binário 1111 1111 1111 1111 1111 é igual a 1.048.575. O circo estava montado - como referenciar os endereços da memória?
Blocos de memória
Como já foi explicado no Curso relâmpago de Assembly, o jeito encontrado foi "lotear" a memória em blocos, cada um deles com 64 Kb (ou 65.536 posições numeradas de 0 a 65.535). Agora, para indicar a posição de um byte na memória, precisava-se de duas referências: o bloco e a posição dentro do bloco.
Fazendo mais algumas contas, verifica-se que 1 Mb pode ser dividido em 16 blocos de 64 Kb. Veja como a continha é fácil:
1 Mb => 1.048.576 bytes 64 Kb => 64 x 1.024 = 65.536 bytes 1 Mb / 64 Kb => 1.048.576 / 65.536 = 16 Blocos
Já que a memória estava toda arrumadinha em blocos, resolveram botar ordem na casa: cada bloco deveria conter dados com uma função definida. A tabela ao lado mostra o que foi convencionado para ser usado pelo sistema operacional DOS:
|
É preciso ficar claro que não existe uma barreira física entre os blocos. A memória continua sendo uma fileira contínua de bytes - são apenas os endereços que delimitam as áreas. Os blocos superiores são os da memória para os usuários e os blocos inferiores são os da memória ROM, somente para leitura e onde o usuário não mexe (ou não deveria mexer ).
- Anterior
- Próximo >>