Buscar

Aula 01 09%2F03%2F17 (Intro) (2016)

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 23 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 23 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 23 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Organização de 
Computadores
Aula 01
Prof.ª Larissa
2016
Sumário
• Bibliografia adotada
• Introdução
– Definições
– Algoritmo x Programa
– Digital binário
• Organização estruturada de computador:
– Tradutor x Interpretador
– Linguagens
– Níveis
– Máquinas virtuais
Bibliografia adotada
TANENBAUM, A. S.
Organização estruturada de 
computadores. 
5.ed. Rio de Janeiro, Pearson, 2007.
Principal livro-texto adotado
Bibliografia adotada
MONTEIRO, M. A.
Introdução à organização de 
computadores. 
5.ed. Rio de Janeiro, LTC, 2010.
Bibliografia adotada
• WEBER, R. F. Fundamentos de arquitetura de computadores. 3.ed. V. 8. São
Paulo, Bookman, 2008.
• MURDOCCA, M.J. Introdução à arquitetura de computadores. Rio de Janeiro,
Campus: 2001.
• STALLINGS, W. Arquitetura e organização de computadores. 5.ed, São Paulo,
Pearson: 2002.
• HENNESSSY, J. L.; PATTERSON, D. A.; LARUS, J. R. Organização e projeto de
computadores: a interface hardware software. 2.ed. Rio de Janeiro: LTC, 2000.
• PIVA. J. D.; PANNAIN, R.; BEHREINS, F. H. Organização básica de
computadores e linguagem de montagem. Rio de Janeiro. Campus.
2012.
• CARTER, N. Arquitetura de computadores, São Paulo, Bookman, 2003.
Introdução
• O que é um computador?
Um computador é uma máquina digital capaz de resolver problemas
executando instruções que lhe foram dadas, com precisão e agilidade.
(Tanenbaum, 2007)
Um computador é uma máquina (conjunto de partes eletrônicas e
eletromecânicas) capaz de sistematicamente coletar, manipular e
fornecer os resultados da manipulação de informações para um ou
mais objetivos.
(Monteiro, 2010)
Introdução
• O que é um algoritmo?
• O que é um programa?
Um algoritmo é uma sequência de instruções que
descrevem como realizar determinada tarefa.
É um algoritmo implementado em uma linguagem de
programação. É um algoritmo transformado em algo
“concreto”.
Portanto, computadores resolvem problemas 
executando programas que contêm as instruções 
sobre como resolvê-los.
Introdução
• Problema: Calcular o índice de massa corporal (IMC) de uma
pessoa que mede 1,78m e tem massa de 75kg.
Segundo a OMS, o algoritmo para calcular o IMC de uma pessoa é:
1) medir a altura da pessoa.
2) medir a sua massa.
3) IMC = massa / (altura x altura)
Uma possível implementação para o problema acima é o programa:
Adaptado de: < http://tl.di.fc.ul.pt/hp/?s=1-9-2 >
Introdução
• No entanto, os circuitos eletrônicos de cada
computador podem reconhecer e executar
diretamente somente um conjunto limitado de
instruções simples.
• Para que os programas possam ser executados, todos devem antes
ser convertidos nestas instruções básicas.
• Estas instruções raramente são mais complicadas do que:
 Some dois números.
 Verifique um número para ver se ele é igual a zero.
 Copie dados de uma parte da memória do computador para
outra.
Disponível em: <http://www.slideteam.net/0914-electronic-circuit-board-with-processor-stock-photo.html>
Introdução
• Juntas, as instruções primitivas de um computador formam uma
linguagem com a qual as pessoas podem se comunicar com ele. Essa
linguagem é chamada de linguagem de máquina (linguagem
binária, representada por 0’s e 1’s).
• Para que um programa de alto nível (como um programa em C) seja
executado pelos circuitos do computador, ele deve ser convertido
para linguagem de máquina.
Disponível em: <http://bitsofbinary.blogspot.com.br/2007/12/binary-comic-strip-with-robot-slam.html>
Introdução
• E como um computador entende o que é 0 e 1??
• Na verdade, a eletrônica que constitui nosso computador atual
(transistores) responde a grandezas físicas, como níveis de tensão
elétrica.
• Nestes circuitos digitais, ocorrem dois estados possíveis:
 Ausência de tensão, geralmente
representada por 0 e chamada de
nível lógico baixo;
 Presença de tensão, geralmente
representada por 1 e chamada de
nível lógico alto.
Introdução
• E como um computador entende o que é 0 e 1??
• Por possuir apenas dois estados
possíveis, dizemos que estes
circuitos digitais apenas entendem
uma linguagem: a binária.
Disponível em: < http://2.bp.blogspot.com/_ofMdY3_XPW8/S_waoyqsMAI/AAAAAAAAAOo/cSF7HPaMtEM/s1600/programador_binario.png >
Introdução
• Mas por que estes circuitos digitais são binários??
• Levando em consideração que o nosso sistema
numérico é decimal, seria natural querer adotar
este sistema em nossos circuitos, com 10 níveis
distintos de tensão.
Disponível em: < http://pplware.sapo.pt/gadgets/high-tech/sistemas-de-numerao-decimal-binrio-octal-e-hexadecimal/>
• Tal implementação é eletronicamente possível, mas possuiria
grandes desvantagens, como:
1. Custo mais alto (maior consumo de energia, maior dissipação de
calor)
2. Confiabilidade reduzida (níveis de tensão precisariam ser muito
mais precisos, com menos tolerância a oscilações do que temos
nos sistemas de dois estados.)
Introdução
• Mas por que estes circuitos digitais são binários??
NOTA: Hoje, “digital” virou sinônimo de “digital binário”, pois
praticamente toda a implementação digital utiliza sistema binário.
3. O hardware básico (inicialmente válvulas, relés,
chaves etc. e posteriormente os transistores) é
binário, pois deixa ou não passar corrente, as
portas estão abertas ou fechadas; os campos
magnéticos representativos de um dígito, em
determinados dispositivos de armazenamento,
podem estar orientados em uma ou outra direção;
uma marca ótica existe ou não, e assim por diante.
OEC: Linguagens, níveis e máquinas virtuais
• E nós, pobres mortais, como ficamos?
Humanos querem fazer X, mas computadores só executam Y
• Nós, humanos, obviamente nos comunicamos por linguagens
diferentes das dos computadores.
Disponível em: < https://andersonyankee.files.wordpress.com/2013/01/linguagem.jpg >
• A linguagem de máquina (binária - baixo nível)
está muito distante de uma linguagem natural
(humana - alto nível)
• Solução: Criar uma hierarquia de abstrações de
níveis mais altos baseadas nos níveis mais
baixos. Criar uma Organização Estruturada de
Computadores (OEC) para facilitar a
comunicação homem-máquina.
OEC: Linguagens, níveis e máquinas virtuais
 L1: linguagem mais natural ao usuário (nível mais alto e mais
complexa)
 L0: linguagem de máquina (baixo nível e simples)
Vamos considerar as linguagens hipotéticas:
Como compatibilizar um programa escrito em L1 com L0? Há duas
soluções:
• usar um tradutor
• usar um interpretador
Disponível em: < http://www.prefeitura.sp.gov.br/cidade/secretarias/subprefeituras/upload/chamadas/libras_1294416870.jpg >
OEC: Linguagens, níveis e máquinas virtuais
 Cada instrução de L1 é substituída por um conjunto de instruções
equivalentes de L0
• Tradutor:
 Programa pode ser traduzido uma única vez e executado diversas
vezes
Nota: o compilador é um tipo de tradutor
 Todo o novo programa em L0 é carregado em memória e é
executado
É como um livro traduzido de um idioma
estrangeiro para português. É criado um novo
livro, que pode ser lido diversas vezes.
OEC: Linguagens, níveis e máquinas virtuais
 Uma instrução de L1 é decodificada em um conjunto de instruções
equivalentes de L0
• Interpretador:
 Processador executa instrução de L1 (convertida para L0) antes de
decodificar próxima instrução.
 Esta instrução de L1, já convertida para L0, é carregada na memória
e executada
É como contratar um intérprete que intermediará as falas de
um palestrante estrangeiro para plateia brasileira. As falas são
transformadas para português pouco a pouco, e a palestra
deve ser interpretada novamente, em caso de nova sessão.
 Não há criação de um novo programa em L0
OEC: Linguagens, níveis e máquinas virtuais
“Ao receber uma bicicleta no Natal, Carlinhos precisaler o manual de instruções e
seguir passo a passo as tarefas descritas no documento para poder se divertir
com seu presente. Podemos dizer que Carlinhos é um interpretador dos comandos
fornecidos pelo manual de instruções. Entretanto, seu pai encontrou uma
promoção na internet e comprou um produto fabricado na França, e o menino, ao
se deparar com o manual, percebeu que o mesmo não poderia ser “interpretado”
já que não sabia ler em francês. Para resolver o problema, seu pai contratou um
tradutor de francês para português, assim, este novo manual pôde ser
“interpretado” por Carlinhos e enfim sua bicicleta seria montada.”
• Tradutor x Interpretador:
Obs: os dois métodos são muito utilizados e cresce cada vez mais a
utilização de uma combinação de ambos.
Adaptado de: <http://producao.virtual.ufpb.br/books/camyle/introducao-a-computacao-livro/livro/livro.chunked/ch05s03.html>
OEC: Linguagens, níveis e máquinas virtuais
Ao invés de pensar em tradução ou interpretação, pode-se
imaginar a existência de um computador hipotético, ou de
uma máquina virtual M1, cuja linguagem de máquina
seja L1 (e uma máquina real M0 com linguagem L0).
• Máquinas virtuais:
Os programas poderiam ser escritos em L1, para a máquina M1 e:
1. ser executados diretamente em M1 se esta máquina fosse de custo
de construção baixo, ou
2. ser traduzidos ou interpretados para L0 e executados em M0
Na prática, se implementa a solução 2. Programadores escrevem
códigos para MVs como se elas existissem, abstraindo níveis inferiores.
OEC: Linguagens, níveis e máquinas virtuais
Para tornar a tradução ou interpretação prática, L1 não
pode ser tão distante de L0. Isso implica que L1, mesmo
sendo mais amigável que L0, ainda está muito longe da
linguagem natural do programador.
• Máquinas virtuais:
Solução: criar um novo nível de instruções L2 (com máquina virtual
M2), que é mais orientada a pessoas e menos a máquinas do que L1.
Assim, pessoas podem escrever programas em L2 exatamente como se
existisse uma máquina real com linguagem de máquina L2. Esses
programas podem ser traduzidos para L1 ou executados por um
interpretador escrito em L1.
OEC: Linguagens, níveis e máquinas virtuais
Muitos níveis de máquinas virtuais podem ser implementados. Cada
linguagem usa a sua linguagem antecessora como base, de modo que
um computador que use essa técnica pode ser visto como um conjunto
de níveis, um em cima do outro.
• Máquinas virtuais:
Foi estabelecido que a linguagem ou
nível que fica mais embaixo é a mais
simples (mais próxima da máquina) e a
que fica mais em cima é a mais
sofisticada (mais próxima do humano).
Adaptado de: <http://hrjournal.ca/wp-content/uploads/2009/03/ComputerFriendlyResume.jpg>
OEC: Linguagens, níveis e máquinas virtuais
Programas em L0 podem ser
executados diretamente pelos
circuitos eletrônicos
Máquina virtual Mn, com 
linguagem de máquina Ln
Máquina virtual M2, com 
linguagem de máquina L2
Máquina virtual M1, com 
linguagem de máquina L1
Máquina real M0, com 
linguagem de máquina L0Nível 0
Nível 2
Nível 1
Nível n
Programas em L1 são interpretados
por um interpretador que roda em M0
ou traduzidos para L0
Programas em L2 são interpretados
por interpretadores que rodam em M1
ou M0 ou traduzidos para L1 ou L0
Programas em Ln são interpretados
por interpretadores que rodam em
nível inferior ou traduzidos para
linguagem de máquina de nível inferior
	Organização de Computadores
	Sumário
	Bibliografia adotada
	Bibliografia adotada
	Bibliografia adotada
	Introdução
	Introdução
	Introdução
	Introdução
	Introdução
	Introdução
	Introdução
	Introdução
	Introdução
	OEC: Linguagens, níveis e máquinas virtuais
	OEC: Linguagens, níveis e máquinas virtuais
	OEC: Linguagens, níveis e máquinas virtuais
	OEC: Linguagens, níveis e máquinas virtuais
	OEC: Linguagens, níveis e máquinas virtuais
	OEC: Linguagens, níveis e máquinas virtuais
	OEC: Linguagens, níveis e máquinas virtuais
	OEC: Linguagens, níveis e máquinas virtuais
	OEC: Linguagens, níveis e máquinas virtuais

Outros materiais