Aula 2: Computadores |
Existem vários tipos de computadores.
Hoje,
quando falamos em computadores, queremos dizer computadores
digitais.
Ao
longo da história, também existiram computadores
mecânicos
e analógicos (electrónico).
O
Primeiro
computador mecânico foi criado por Charles Babbage no
principio
do
século 19 (por volta de 1815)! Por esta razão,
Babbage
é
frequentemente chamado "O pai da computação". Famosa
é
também a Difference Engine. Se quer saber mais sobre
Charles
Babbage: http://www.wikipedia.org.
O primeiro computador electrónico, processando dados no
formato
digital foi o ENIAC pouco antes da segunda grande guerra (1939). O
primeiro
computador comercial disponível foi o UNIVAC (1951). Nessa
altura
pensava-se que uma mão cheia de computadores,
distribuídos
pelo mundo, seriam suficientes para efectuarem todos os
cálculos
necessários. Hoje em dia, a grande maioria das pessoas no
Ocidente
tem um computador em casa, muito mais poderoso que esses primeiros
computadores.
Os computadores estão organizados por tamanho e número de pessoas que os pode usar ao mesmo tempo:
Supercomputadores
|
Máquinas
sofisticadas desenvolvidas para executarem calculos
complexos a grande
velocidade; são utilizados para modelar grandes
sistemas
dinâmicos,
como por exemplo os padrões do tempo.
Um exemplo é o Cray SV2 (ver
figura), que
tem as dimensões de uma sala média
|
|||||
Mainframes | Os maiores e mais poderosos sistemas para fins comuns, são desenvolvidos para as necessidades de uma grande organização, servindo centenas de terminais ao mesmo tempo. Imaginem companhias de seguros com todos os seus documentos internos partilhados através de uma rede. Todos os empregados podem aceder e editar os mesmos dados. | |||||
Minicomputadores | Embora algo pequenos, também são computadores multiutilizador, pensados para satisfazer as necessidades de uma pequena empresa servindo até uma centena de terminais. | |||||
Microcomputers | Computadores servidos por um microprocessador,
são
divididos
em computadores pessoais e estações de
trabalho.
Computadores
pessoais são os que a maioria das pessoas têm
em
casa. Exemplos:
|
|||||
Processors | Muitos electrodomésticos, como as máquinas de lavar e fornos, contêm um pequeno processador para controlar o equipamento. São computadores muito pequenos que foram programados nas máquinas ainda na fábrica e não podem ser programados pelos utilizadores. Podem assim não ser considerados computadores, mas convem ser referidos. Alguns electrodomésticos mais avançados, como receptors de satellite ou sistemas de cinema, correm programas muito sofisticados que seguem as regras a seguir apresentadas nesta aula. |
Nota: com a velocidade que a tecnologia avança podemos
dizer
que "os supercomputadores de hoje são os
microcomputadores(pessoais)
de amanhã"
Todos os computadores são constituídos pelo menos por:
1) Um processador
2) Memória para armazenar o programa
3) Um dispositivo de entrada
4) Um programa
A maioria dos computadores também têm:
5) Um dispositivo de entrada, para mudar o programa, introduzir
novos
dados para serem processados ou controlar os processos correntes.
Vejamos alguns componentes do computador
Tabela: elementos de hardware
Rato | dispositivo de entrada | Para controlar os processos do computador | |
CPU | Processador | Central Processing Unit (Unidade Central de
Processamento) Peça que faz o trabalho. Calcula, controlas os dados, etc. |
|
Joystick |
|
dispositivo de entrada | Controlador para jogos |
Teclado | dispositivo de entrada | Para dar instruções ao computador ou introduzir dados para processamento | |
Memória |
|
armazenamento | Guardar programas e dados para processamento |
Monitor |
|
Dispositivo de saída | Mostra os resultados dos processos |
Impressora |
|
Dispositivo de saída | Imprime os resultados dos processos |
Modem | Dispositivo de entrada/saída | MOdulador-DEModulador comunicar com outros, computadores pela linha telefónica | |
Placa de rede | Dispositivo de entrada/saída | Comunicar com outros computadores através de uma rede | |
Disco rigido/disquete |
|
armazenamento | Guardar dados e programas num formato não volátil (os dados permanecem quando se desliga o PC) |
CD-ROM | dispositivo de entrada | Carregar programas ou dados na memória | |
Placa de som |
|
Dispositivo de saída | Tocar música ou outros sons |
Scanner | dispositivo de entrada | Digitalizar imagens |
No nível seguinte temos a Electronica. A electrónica liga os materiais com propriedades diferentes transformados num componete para utilização. Note que o diodo que conduz corrente numa só direcção, e o transistor, cuja conductividade é controlada por voltagem exterior. |
|
A seguir encontramos o nível da Electrónica
Digital.
São utilizadas as chamadas "gates": OR, NOR, AND, NAND,
XOR,
só
para mencionar
algumas. Estas "gates" são feitas de componentes de
electrónica
básica como transistores. Gates are the cornerstone of
digital
computers.
Temos
que nos lembrar que todos os calculos são feitos a este
nível.
Quando juntamos 2+2, algures no PC as gatesestão mudando e
processando
calculus como "1 OR 1 = 1". Outro componente da electrónica
digital é a memória. Também são feitos
de
transistors
(e capacitadores no caso da RAM dinâmica) e podem guardar
temporariamente
informação.
O
nível
seguinte é
o dos Circuitos Integrados. Nestes circuitos,
milhões e
milhões
de gatesestão ligados o que permite que programas
complexos
corram.
Desde o primeiro circuito integrado, que o número
de de
transistors
num unico IC vem duplicando de dois em dois anos,
aproximadamente. A
esta
regra chama-se lei de Moore que ainda é
válida, embora os
limites fisicos estejam á vista. Ver a figura
à esquerda.
Para fazer uma comparação popular. Se o mesmo avanço se tivesse verificado na industria automovel, um carro moderno poderia andar a 5 milhões de km/h, consumia uma gota de combustivel aos 100.000 km e poderia levar sentadas 10000 pessoas. .
|
No nível seguinte começa a programação real. Começamos com programas binaries, ou (em formato legivel) Micro-assembler. Isto é programação directa no processador: coloca endereço xxx no registo de endereço, active linhas de endereço, esperar xx ns, adicionar registo X ao registo Y, etc. ("registos" são pequenas unidades de memória dentro do processador)
No nível seguinte temos a Linguagem da Máquina.
Um exemplo:
101000100000101000
O que pode significar: põe o conteudo do endereço
0000101000
no registo A. Esta linguagem é quase imposível a ler
para
os humanos. Por isso, foram inventados os Macro-assembler o que
já
é um pouco melhor.
Mas lembra que quando um programa vai correr, o codigo da
linguagem
da máquina vai ser caregado (sem mais
traduições)
na memória and executed. Ficehiros com nomes finalizados
com
".exe"
e ".com" in MS-DOS and Windows são deste tipo.
Para o nível seguinte, que já se parece mais com
programação
real, temos o Macro-assembler. Neste nível
nós
instruimos
o processador a executar os pequenos programas escritos em micro
assembler.
Esta é a forma
ADDA $2050
ou numa forma menos legivel (pelo menos para as pessoas);
101000100000101000
o que significa "adicionar o conteúdo da memória do
endereço
$2050 ao registo A". Linguagens de programação
modernas
como
o Pascal e C são traduzidas
para esta forma com a ajuda de compiladores.
No nível seguinte temos finalmente as Linguagens de Programação. Estas linguagens são regularmente chamadas de "linguagens de quarta geração", porque evoluiram das linguagens mais antigas como o assembler, etc. Muitas destas linguagens foram inventadas durante os anos 1960 e 1970. Para aplicação existe uma linguagem de programação. em 1995 existiam cerca de 2500 linguagens de programação diferentes. (para quem estiver interessado, ver http://people.ku.edu/~nkinners/LangList/Extras/langlist.htm). Para programadores profissionais exite o C e C++, para aplicações simples o BASIC. Para fins educacionais foi inventado o Pascal, especialmente para ensinar ideias de programação.
Presentemente, novas gerações de linguagens evoluem. Todas elas envolvem o conceito de Programação Orientada a Objectos, um conceito que não iremos usar nas nossas aulas, mas que se tornou indispensável nos ambientes de programação modernos. Podemos chamar-lhes a "quinta geração de linguagens"
As linguagens de programação modernas são flexiveis. Podemos escrever uma grande variedade de aplicações nestas linguagens. Podemos, por exemplo, escrever um programa que simule o funcionamento de um diodo, ou calcular um transistor ao nível fisico. Completamos assim o ciclo; podemos utilizar o computador para fazer os componentes básicos e melhores e mais rápidos computadores.
Exemplos:
BASIC | IF A=20 THEN PRINT"Hello World" |
PASCAL | if (a=20) then writeln('Hello World'); |
C | if (a==20) printf("Hello world\n"); |
FORTRAN | IF (A .EQ. 20) PRINT ,'Hello World' |
Não esquecer que se escrevermos em PASCAL
writeln('Hello world');
e corrermos o programa, estamos de facto a controlar o fluxo de
electrões
ao mais baixo nível. Isto podevos dar uma boa ideia de
controlo
...
que pode ser executado escrevendo
meuprograma
e o resultado aparecerá no ecran quando tudo correr
correctamente
Benfica - Sporting 3 - 0
Na maioria das versões modernas das linguagens de
programação,
iremos trabalhar no chamado IDE (integarted development
environment -
ambiente
integrado de desenvolvimento), o que significa que podemos
escrever um
programa e com um simples toque podemos compilar o programa, ver
os
erros
da nossa escrita, e, caso não existam erros durante a
compilação,
executar o programa e ver os resultados. Esses ambientes
proporcionam
grande
velocidade de desenvolvimento de software, mas não nos
devemos
esquecer
que o compilador está traduzindo o programa para
nós.
Iremos
discutir os compiladores e o seu uso mais tarde nas aulas
práticas.
1) carregar o programa do disco para a memória
2) executa-lo
Quando o nosso programa está terminado, é removido da memória novamente, mas o sistema operativo continua a correr, esperando pela próxima instrução. De facto, um computador por si só não faz mais nada sem ser verificar se nós digitamos ou clicamos em algo. Que desperdicio de energia....
O Sistema
operativo mais famoso terá sido possivelmente o MS-DOS da
Microsoft.
Este era uma sistema operativo em linha de comando, quer dizer,
tinha
que
se escrever as instruções no computador
através do
teclado. Por exemplo
DIR C:\
Mais tarde, uma interface gráfica foi adicionada ao MS-DOS
e
chamada de Windows. Por baixo dela, ainda tinhamos o mesmo sistema
de
linha
de comandos do MS-DOS , mas os clicks do rato nos icones e
objectos
traduziam-se
em comandos. Podiamos clicar numa 'pasta' e ver o seu conteudo.
Clicar
numa pasta era igual a escrever DIR mas com os resultados
apresentados
em modo gráfico. Ao longo dos anos, Windows tornou-se mais
avançado
e nos dias de hoje é um sistema operativo de multitarefa (o
que
quer dizer que mais do que um programa pode ser executado ao mesmo
tempo)
e é utilizado pela maioria das pessoas mundialmente.
Por causa do monopólio detido pela Microsoft, os 27% de acções que o co-fundador Bill Gates representam 20 biliões de dolares (20.000.000.000 dolares) em 1995. Em 2000 subiu para 65 biliões. Note que se trata de 10 dolares por cada pessoa na terra, seja ele americano ou um chinês numa aldeia remota da China.
Alternativas para o Windows são o Unix/Linux, que tem a
vantagem
de ser gratuito, e o MacOS para os Macintosh.
.