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, clique aqui.
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
cálculos 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 (Servidor principal) |
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 (processador dedicado) |
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 convém ser referidos. Alguns electrodomésticos mais avançados, como receptores de satélite ou sistemas de cinema, correm programas muito sofisticados que seguem as regras a seguir apresentadas nesta aula. |
Nota: Considerando a velocidade de avanço da tecnologia,
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: (ex.: teclado, rato, porta de
ligação
a Internet.)
4) Um programa
5) Um dispositivo de saída(ex.: monitor, impressora, fax,
porta
de
ligação a Internet)
A maioria dos computadores também têm:
6) 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 Electrónica. A electrónica liga materiais com propriedades diferentes transformados num componente para sua utilização. Note por exemplo o díodo que conduz corrente numa só direcção (na imagem acima), e o transístor, cuja conductividade é controlada por voltagem exterior. |
|
A seguir encontramos o nível da Electrónica
Digital.
São utilizadas as chamadas portas ("gates"): OR,
NOR,
AND,
NAND, XOR, só para mencionar algumas. Estas portas
são
feitas
de componentes de electrónica básica tais como
transistores.
As portas são os elementos fundamentais que estão na
base
dos
computadores digitais. Temos que nos lembrar que todos os
cálculos
são feitos a este nível. Quando adicionamos 2 +2,
algures
no
PC as portas estão mudando e processando
cálculos
do
tipo "1 OR 1 = 1". Outro componente da electrónica digital
é
a memória. Também são formadas por
transístores (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 portas estão ligadas o que permite a execução de programas complexos. Desde que foi manufacturado o primeiro circuito integrado, acontece que o número de transístores num único IC se vem duplicando de dois em dois anos aproximadamente. A esta regra chama-se lei de Moore que ainda é válida, embora os limites físicos estejam á vista. Ver a figura à esquerda. Para fazer uma comparação popular. Se o mesmo avanço se tivesse verificado na industria automóvel, um carro moderno poderia andar a 5 milhões de km/h, consumia uma gota de combustível aos 100.000 km e poderia levar sentadas 10000 pessoas. .
|
No nível seguinte começa a programação real. Começamos com programas binários, ou (em formato legível) 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 conteúdo do
endereço
0000101000 no registo A. Esta linguagem é quase
impossível de lêr
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 código da
linguagem da máquina vai ser carregado (sem mais
traduições) na
memória e executado. Ficheiros com nomes finalizados
(chamada
extensão)
com as letras ".exe" e ".com" são deste tipo (como nos
sistemas
operativos
MS-DOS e Windows).
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 para executar os
pequenos programas escritos em micro assembler. Estes tem por
exemplo a
forma seguinte:
ADDA $2050
ou numa forma menos legível (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 evoluíram das linguagens mais antigas como o assembler, etc. Muitas destas linguagens foram inventadas durante os anos 1960 e 1970. 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 existe 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 flexíveis. Podemos escrever uma grande variedade de aplicações nestas linguagens. Podemos, por exemplo, escrever um programa que simule o funcionamento de um díodo, ou calcular um transístor ao nível físico. 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 pode-vos dar uma boa ideia de
controlo
...
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 que verificar se nós digitamos ou premimos alguma tecla. Que desperdício 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 foi
chamada
Windows. Por baixo dela, ainda tínhamos o mesmo sistema de
linha
de
comandos do MS-DOS , mas os clicks do rato nos ícones e
objectos
traduziam-se em comandos. Podiamos premir numa 'pasta' e ver o seu
conteúdo. 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 dólares (20.000.000.000 dólares) em 1995. Em 2000 subiu para 65 biliões. Note que se trata de 10 dólares (o mesmo valor sensivelmente em euros de hoje) 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.
.