Aula 3: Unidades de Informação / Memória |
Nota: A ideia de separar o programa dos dados com que
está
a trabalhar e o hardware do software (ou "a máquina" e o
"programa")
vem de Von Neumann. Ele desenhou o primeiro computador
electrónico
capaz de correr um programa flexivel (1940-1952). Todos os computadores
modernos são computadores Von Neumann. O http://www.wikipedia.org tem mais informações sobre Von Neumann. |
Antes de escrever programas, é útil ver mais de perto a memória.
A memória está cheia de informação.
Esta informação pode ser código de
programação
ou dados.
Níveis electrónicosde AND gates | 0 V | +5 V |
binary | 0 | 1 |
logical | FALSE | TRUE |
bicolor | verde | vermelho |
Estes principios podem ser misturados á nossa vontade. Por
exemplo,
PASCAL usa o principio 'TRUE' e 'FALSE' para calculos lógicos,
enquanto
o C usa '1' e '0'.
|
|
examplo dum display de LED |
Pela tabela podemos ver que para o código binário
abcd
o código decimal é
a*8 + b*4 +
c*2 + d
ou, mais genericamente:
a*23 + b*22
+ c*2 + d
Esta, iremos ver, é sempre a relação entre
binários
e decimais.
Note também que algumas das combinações possiveis de bits não são usadas em BCD. Uma forma de representar estes quatro bits de informação com todas as combinações possiveis é o sistema hexadecimal. A combinação de bit de '1010' até '1111' são representadas pelas letras de A a F. Na representação hexadecinal temos a seguinte tabela de traduçã
|
|
00000000 = 0*27 + 0*26 + 0*25
+ 0*24
+ 0*23 + 0*22 + 0*21 + 0*20
= 0
11111111 = 1*27 + 1*26 + 1*25
+ 1*24
+ 1*23 + 1*22 + 1*21 + 1*20
= another example: |
De outra forma, um byte pode representar todas as letras do
alfabeto,
em maiusculas ('A' .. 'Z') e minusculas('a' .. 'z'), mais todos os
digitos
'0' .. '9', alguns caractere especiais com '{', '}', '(',
')',
space, etc, e outras coisas como códigos de controle. A mais
usual
de o fazer é através do ASCII (American Standard
Code
of Information Interchange) no qual por exemplo, 'A' é 65
(decimal),
ou 01000001 (binário), ou 41 (hexadecimal). Outros exemplos
são:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Notem que as três unidades descritas até agora são também unidades de comida em Inglês. Bit, Nibble, Byte. As seguintes já não seguem este principio.
Muitas vezes podemos ler em publicidade: Computador, com processador 1.7 GHz , 256 MB RAM, 40 GB harddisk, disquete 1.4 MB |
1.7 GHz specifica a velocidade do processador (CPU - central
processing
unit). 1.7 GHz significa que pode fazer 1.7 milhões de
instruções
simples por segundo.
(Como a maioria dos comandos dados ao processador precisam de mais
do que uma instrução, o numero efectivo de comandos por
segundo
é inferior. Por exemplo a adição de dois numeros
de
virgula flutuante pode consistir em 1) carregar o primeiro numero da
memória,
2) carregar o segundo da memória, 3) adicionar o numero
(possivelmente
em vários passos), 4) guardar o resultado em memória. No
entanto, a velocidade global do computador é determinada pela
velocidade
do processador e a velocidade com que ele pode carregar os dados da
memória.)
Os outros numeros determinam o tamanho da memória do computador (RAM = Random-access memory), o disco e a disquete respectivamente, em numero de (B). Para dar uma ideia do que estes numeros representam, analisemos calmamente:
BYTE: A unidade básica para descrever a memória é um byte (B). Como foi dito antes, um byte é suficiente para conter uma letra, ou um numero de 0 .. 255.
KILOBYTE: 1024 bytes são um kilobyte (kB). Em
ciência,
'kilo' quer dizer 1000, um numero redondo no sistema decimal. Para os
computadores
'kilo' representa um pouco mais, 1024. Por ser baseado em 210
que corresponde a 1024 ou em binário 10000000000. Para dar uma
ideia
de quanto é um megabyte: uma página de texto A4 tem
aproximadamente
4 kB.
MEGABYTE: 1024 kilobytes são um megabyte (MB). É igual a 1024 x 1024 bytes, ou 1048476 bytes. Para dar uma ideia da dimensão de um megabyte: 250 páginas de texto, ou digamos um livro. A maioria das disquetes têm 1.4 MB seria suficiente para guardar um livro com 350 páginas. (só texto sem imagens etc.) |
GIGABYTE: 1024 megabytes são um gigabyte (GB). Seria suficiente para guardar uma boa biblioteca com milhares de livros A maioria dos CD têm 650 MB (0.65 GB), suficiente para guardar uma pequena biblioteca |
Os discos modernos têm por volta dos 40 GB. Podem armazenar uma grande biblioteca, cerca de 40.000 livros. |
TERABYTE: 1024 gigabytes são um terabyte. Embora
discos
deste tamanho não existam ainda, algumas empresas têm
sistemas
de computadores com muitos discos cujo total de espaçõ em
disco é da ordem dos terabytes. Seria suficiente para guardar
todos
os livros do mundo.
Para dar uma ideia do espaço em disco existente no mundo imaginem: existem 500 milhões de utilizadores. Em média cada disco tem 10 GB. Faz um total aproximado de 5.000.000.000.000.000.000 bytes. Uma pessoa levaria mais de um bilião de anos para ler 10 livros por dia para ler toda essa informação! |