3. Bibliografia
• P&H - "Computer Organization and Design: The
Hardware/Software Interface", Third Edition, Patterson
and Hennessy.
• K&R - "The C Programming Language", Kernighan and
Ritchie, 2nd edition
• Slides
• Textos Fornecidos na página WoC
4. • Os computadores são o produto da
impressionante e vibrante industria da
tecnologia da informação, cujos aspectos são
responsável por quase 10 % do produto
interno bruto dos Estados Unidos. Essa área
incomum abraça a inovação com uma
velocidade surpreendente.
5. • Desde 1985, surgiram inúmeros novos
computadores que prometiam revolucionar a
indústria da computação; essas revoluções
sempre foram interrompidas quando algum
construía um computador ainda melhor.
• Os computadores levaram a humanidade a
enfrentar uma terceira revolução, a revolução
da informação.
6. • As seguintes aplicações no passado recente
eram ficção cientifica para a computação:
1. Caixas automáticas;
2. Computação em automóveis;
3. Computadores laptop;
4. Projecto do genoma humano;
5. World wide web
7. • Os avanços da hardware permitiram que os
programadores criassem softwares
maravilhosamente úteis e explicassem por
que os computadores são onipresentes. As
aplicações do futuro que ainda são
consideradas ficção cientifica são:
1. A sociedade sem dinheiro;
2. As estradas inteligentes automatizadas e;
3. A computação genuinamente universal:
ninguém carregando computadores porque
eles estão em todo o lado.
8. • Genericamente, os computadores são usados em três
diferentes classes de aplicação :
• OS computadores descktop: que enfatizam o bom
desempenho a um único utilizador por um baixo custo
e normalmente utilizados para executar software
indenpendentes,tambem chamados de software
shrink-wrap
• Os servidores: que são acessado por meio de uma
rede. É um computador usado para executar grandes
programas para multiplos utilizadores quase sempre de
maneira simultânea e normalmente acessado apenas
por meio de uma rede .no outro extremo estao os
supercomputadores , que actulmente , consistem em
centenas ou milhares de processadores e, em geral, de
gigabytes e terabytes de memoria e de terabystes a
petabytes de armazenamento .
9. • Os computadores embutidos: são a maior
classe de computadores e abrangem a faixa
mais ampla de aplicações e desempenho .
Incluem os microprocessadores encontrados
em uma máquina de lavar e em seu carro, os
computadores em um telefone celular ou
PDA, os computadores em um videogame ou
televisão digital, e as redes de processadores
que controlam um avião moderno ou um
navio de carga.
10. Objectivos a cumprir
• Compreender como os programas escritos em uma
linguagem de alto nivel, como C ou Java, são traduzidos
para a linguagem de maquina e como o hardware
executa os programas resultantes.
• O que é a interface entre o software e o hardware, e
como o software instrui o hardware a realizar as
funções necessárias?
• O que determinar o desempenho de um programa e
como um programa pode melhorar o desempenho?
• Que técnicas podem ser usadas pelos projectitas de
hardware para melhorar o desempenho?
11. • Resultado esperado:
1. fomentar o alicerce para entender os
aspectos do harware e software que afectam
o desempenho dos programas.
2. Compreender como escrever muitos tipos de
software.
3. Há dependera do programa, da tradução
desse programa para a linguagem do
computador e da eficiência do hardware em
executar o programa.
12. Desempenho dos Programas
• O desempenho de um programa depende de
uma combinação entre a eficácia dos
algoritmos usados no programa,
• os sistemas de software usados para criar e
traduzir o programa para instruções de
maquinas e;
• Eficácia do computador em executar essas
instruções, que podem incluir operações de
E/S.
13. Componente de hardware ou software Como este afecta o desempenho
Algoritmo Determina o numero de instruções do
código-fonte e o numero de operações de
E/S realizadas
Linguagem de programação, compilador e
arquitectura
Determina o numero de instruções de
maquina para cada instrução em nível de
fonte
Processador e sistema de memoria Determinar a velocidade em que as
instruções podem ser executadas
Sistema de E/S(hardware e Sistema
operacional)
Determinar a velocidade em que as
operações de E/S podem ser executadas
14. Por baixo do seu programa
• As camadas de software são organizada de
maneira hierárquica, na qual as aplicações são
o anel mais externo e uma variedade de
software de sistemas situando-se entre o
hardware e as aplicações.
• Existem muitos tipos software de sistema, mas
dois tipos são fundamentais em todo os
sistemas computacionais modernos: um
sistema operacional e um compilador
15. • Um sistema operacional fornece a interface
entre o programa de utilizador e o hardware e
disponibilizar diversos serviços e funções de
supervisão. Entre as funções mais importantes
estão:
1. Manipular as operações básicas de entrada e
saída
2. Alocar armazenamento e memoria
3. Possibilitar e controlar a partilha do
computador entre as diversas aplicações que
o utilizam simultaneamente.
16. OS compilador realizam outra função
fundamental: a tradução de um programa
escrito em uma linguagem de alto nível, como
C ou Java, em instruções que o hardware
possa executar. Devido á sofisticação das
linguagens de programação modernas e as
instruções simples executadas pelo hardware,
a tradução de um programa de linguagem de
alto nível para instrução de hardware é
complexa.
17.
18. • As instruções , que são apenas grupos de bits
que o computador compreende , pode ser
pensado como números . Por exemplo:
1000110010100000
Dizer ao computador para adicionar dois
números. A utilização de números para
instruções e dados é uma base de
computação .
19. add A,B
1000110010100000
Essa instrução diz ao computador para somar
dois números , A e B. O nome criado para essa
linguagem simbólica, ainda em uso hoje, é
linguagem assembly.
20. Linguagem de montagem ainda está longe de
ser o notação que um cientista gostaria de
usar para simular o fluxo de fluido ou que um
contador pode usar para calcular os dados da
sua conta. Linguagem assembly exige que o
programador escrever uma linha para cada
instrução de que a máquina vai seguir ,
forçando o programador a pensar como a
máquina .
21. • Um compilador permite que um programador
escreva esta expressão numa linguagem de
alto nível : A+B
• Add A,B
A montadora iria traduzir esta declaração na
instrução binário que diz o computador para
adicionar a dois números de A e B:
1000110010100000
22. • As linguagens de programação de alto nível
oferecem vários benefícios importantes . Em
primeiro lugar, eles permitir que o programador a
pensar em uma linguagem mais natural, usando
palavras em inglês e notação algébrica ,
resultando em programas que parecem muito
mais texto do que como tabelas de símbolos
enigmáticos. Além disso, eles permitem que
linguagens sejam projectadas de acordo com o
uso pretendido. O segundo aspecto a ser
considerado é a maior produtividade do
programador em utilizar as linguagens de
programação e o terceiro e ultimo aspecto esta
na independência dos programas do computador
no qual são desenvolvido.
25. O hardware subjacente em qualquer computador executa
as mesmas funções básicas : inserção dos dados ,
processamento e armazenamento de dados alem de gerar
saídas de dados .
Os cinco clássicos componentes de um computador são
entrada, saída , memória, datapath e controle , sendo que
os dois ultimos,as vezes são combinados e chamado de
processador. mostra a organização padrão de um
computador . Esta organização é independente da
tecnologia de hardware: Você pode colocar cada pedaço de
cada computador , passado e presente, em uma destas
cinco categorias . Para ajudar você a manter tudo isso em
perspectiva , os cinco componentes de um computador são
mostrados na primeira página dos capítulos seguintes , com
o parcela de juros para esse capítulo em destaque .
28. • O dispositivo de I / O mais fascinante é o
monitor gráfico .baseado tecnoligia da
televisão,um monitor de tubo de raios
catódicos ( CRT) digitaliza uma imagem , em
uma linha por tempo , em 30 a 75 vezes por
segundo . A este ritmo de actualização , as
pessoas não notam uma cintilação em a tela.
29. • A imagem é composta por uma matriz de
elementos de imagem , ou pixels , que pode ser
representada como uma matriz de bits, chamada
mapa de bits ou bitmap . Dependendo do
tamanho do tela e resolução , a matriz de
exibição varia em tamanho de 512 × 340 a 1920 x
1280 pixels de 2003. O visor simples tem 1 bit por
pixel , permitindo-lhe ser preto ou branco. Para
ecrãs que suportam 256 diferentes tons de preto
e brancos , às vezes chamado de escala de cinza é
exibida , são necessários 8 bits por pixel. Uma cor
visualização poderá utilizar 8 bits para cada uma
das três cores ( vermelho , azul e verde), para 24
bits por pixel , permitindo milhões de cores
diferentes a serem exibidos.
30. Todos os laptops e computadores portáteis ,
calculadoras , telefones celulares, e muitos
computadores desktop usam monitores de
cristal líquido ( LCDs ) em vez de CRTs para
obter uma exibição fino, baixo consumo de
energia . A principal diferença é que o
elemento de imagem do LCD é não a fonte de
luz ; em vez disso, controla a transmissão de
luz .
31. • Seja qual for o monitor , o suporte de
hardware do computador consiste
principalmente em um buffer de actualização
de varredura, ou buffer quadros, para
armazenar o mapa de bits . A imagem a ser
representada é armazenado no buffer de
quadros , e o padrão de bits de cada pixel é
lido para o monitor gráfico a uma certa taxa
de actualização.
32. Pixel ( X0 , Y0 ) contém o padrão de
bits 0011 , que é um tom mais claro de
cinza na tela do que o padrão de bits
em 1101 pixel ( X1, Y1) .
35. Vantagens
1. Comunicação : as informações são trocadas
entre computadores em altas velocidade
2. Partilha de recurso: em vês de cada maquina
ter seus próprios dispositivos de E/S, os
dispositivos podem ser partilhado pelos
computadores que compõem a rede
3. Acesso remoto: ligar computadores por meio
de longas distancias, os utilizadores não
precisam estar perto do computador que
estão usando
36. As redes variam em tamanho e desempenho,
com o custo da comunicação aumentando de
acordo com a velocidade de comunicação e a
distância em que as informações viajam.
37. Percurso histórico
Ano Tecnologia usada nos computadores
1951 Válvula
1965 Transístor
1975 Circuito integrado
1995 Circuito VLSI(Very Large Scale Integrated)
2005 Circuito ULSI(Utra Large Scale Integrated)
38. • Um transístor é simplesmente uma chave I/0
controlada por electricidade. O circuito
integrado(IC) combinou dezenas e centenas
de transístores em um único chip. Para
descrever o incrível aumento de transístores
de centenas para milhões, o adjectivo escala
muito grande é acrescentado ao termo,
criando a abreviatura VLSI(de Very Large Scale
Integrated)
Notas do Editor
processador recebe instruções e dados da memória. Entrada escreve dados em memória, e a saída lê os dados da memória. Controlo envia os sinais que determinam as operações do caminho de dados , memória , de entrada , e saída .