Sistemas de computação

Propaganda
rr-09-r.01
Sistemas
UC: Organização e Arquitetura
de Computadores
Docente: Prof. MSc. Marcelo Siedler
rr-09-r.01
Créditos
Bibliografia Básica
Título
Autor
Edição
Local
Editora
Ano
Organização estruturada de computadores
TENEMBAUM, Andrew S.
5. ed.
Rio de Janeiro
LTC
2007
Introdução à organização de computadores
MONTEIRO, Mário A.
4. ed.
Rio de Janeiro
LTC
2002
Sistemas digitais: princípios e aplicações
TOCCI, Ronald J.
7. ed.
Rio de Janeiro
LTC
2000
Organização e projeto de computadores: a
HENNESSY, John L.; Patterson,
interface hardware/software
David A.
2. ed.
Rio de Janeiro
LTC
2000
Bibliografia Complementar
Título
Hardware: montagem, configuração e manutenção
de micros
Site: http://www.infowester.com/
Site: http://www.organizacaodecomputadores.kit.net/
Autor
FERREIRA, Silvio
Edição
Local
Rio de Janeiro
Editora
Axcel Books
Ano
2005
rr-09-r.01
Sistemas
-Conjunto de partes que cooperam entre si para atingir um
objetivo em comum;
-Ex.
-Sistema de transporte de uma cidade (motoristas,
cobradores, trajetos, passageiros, ruas, ônibus e etc)
-Corpo humano (órgãos, veias, sangue e etc)
-Sistema econômico do país
-...
-Sistemas de computação???
rr-09-r.01
Sistemas de computação
-Conjunto de partes (teclado, mouse, processador, memória, ...)
que cooperam entre si para atingir um objetivo em comum;
-Sistemas de computação tem esse nome porque nada mais
fazem do que computar (calcular) dados.
-Primeiro computador para calcular dados para o exército
americano em 1940. Daí em diante só temos evolução.
rr-09-r.01
Sistemas de computação
(Programa)
-Processamento de dados requer execução de instruções
-Instruções devem ser elaboradas
-Instruções devem ser executadas passo a passo
-Algoritmo = conjunto de instruções formados com determinada
lógica e passos finitos para solucionar um problema.
-Programa = conjunto de algoritmos.
rr-09-r.01
Sistemas de computação
(Programa – Ex.)
- Programa: Ler e somar 100 números. Após imprimir a soma.
-1. Escrever e guardar N=0 e SOMA=0
-2. Ler valor de entrada
-3. Somar entrada ao SOMA e guardar em SOMA
-4. Somar 1 ao N e guardar em N
-5. Se N menor que 100 então passar para item 2
-6. Senão imprimir valor de SOMA
-7. Parar
Os passos finitos acima constituem um algoritmo.
rr-09-r.01
Sistemas de computação
(Programa – Ex.)
-1. Escrever e guardar N=0 e SOMA=0
-2. Ler valor de entrada
-3. Somar entrada ao SOMA e guardar em SOMA
-4. Somar 1 ao N e guardar em N
-5. Se N menor que 100 então passar para item 2
-6. Senão imprimir valor de SOMA
-7. Parar
Dados
(Entradas)
Processamento
Resultado: Informação
(Saídas)
Etapas básicas de um processamento de dados.
Evolução das Linguagens de
Programação

Primeira linguagem de alto nível:
–
FORTRAN – 1957 (FORmula TRANslation) para
elaboração de programas científicos.
Exemplo
C Programa para realizar a soma de 3 valores e imprimir
o resultado
program sum
integer a, b, c, soma
a = 15
b = 30
c=5
soma = a + b + c
print*, soma
stop
end
rr-09-r.01
Sistemas de computação (Programa –
Case Prático - Assembly)
Push ebp
Mov ebp, esp
Add esp, -$0c
Mov [ebp-$04], eax
Xor eax, eax
Mov [ebp-$0c], eax
Mov [ebp-$08], $00000001
Add dword ptr [ebp-$0c], $0a
Inc dword ptr [ebp-$08]
Cmp dword ptr [ebp-$08], $06
Jnz TForm1.TestAsm + $15
Mov esp, ebp
Pop ebp
Ret
rr-09-r.01
Sistemas de computação
(Programa – Case Prático - Delphi)
Procedure Tform1.TestAsm
Var I, Total:Integer;
Begin
Total:=0;
For I:=1 to 5 do
Total:=Total+10;
End;
rr-09-r.01
Sistemas de computação (Programa –
Case Prático – Linguagem de Máquina)
01010101
0001011111101100
100000111100010011110100
100010010100010111111100
0011001111001101
100010010100010111111100
1100011101000101111100001000000
100000110100010111111010000001010
111111110100010111111000
10000011011111011111100000000110
0111010111110011
1000101111100101
01011101
11000011
rr-09-r.01
Sistemas de computação (Resumo)
Uma simples equação:
X := A + B / ( C * D – A )
Complexa linguagem:
1000111000000111
0000111000001100
0111111000001111
0101111000001001
1100111000001110
0011111000011000
0111111000011011
1110111000100011
rr-09-r.01
Computador
Computador:
- formado por circuitos eletrônicos;
- circuitos eletrônicos podem fazer um número limitado de
instruções:
- somar dois números;
- comparar um número com zero;
- ler um dado da memória;
- ...
- conjunto de instruções formam a linguagem de máquina;
rr-09-r.01
Linguagem de máquina
Linguagem de máquina:
- criar programas é:
- extremamente complexo;
- muito demorado;
- margem de erro muito grande;
Conseqüências:
- formas organizadas de estruturar computadores
- abstrações em linguagens de alto nível;
rr-09-r.01
Tradução x Interpretação
Tradução: [ tradução de um livro ] [ case: C/C++ ]
L1 => Tradução/Compilação => L0
Vantagem: Velocidade de execução
Interpretação: [ interprete de uma viagem ] [ case: PHP ]
L1 => Interpretação => L0
Vantagem: Fácil atualização de instruções
rr-09-r.01
Tradução x Interpretação
- As duas técnicas são muito semelhantes:
- em ambas as instruções em L1 são executadas por um
conjunto equivalente de instruções em L0;
- A diferença é:
- na tradução o programa em L1 é descartado na execução do
programa;
- na interpretação L1 permanece fornecendo as instruções
seguintes;
rr-09-r.01
Máquina virtual
-É um componente capaz de executar um mesmo programa,
traduzido ou interpretado, em diferentes arquiteturas. Case JVM.
Java
C/C++
C/C++
Tradução
Tradução A
Tradução B
JVM
S.O. A
S.O. B
S.O. A
S.O. B
rr-09-r.01
Máquina virtual
Camadas ou níveis da máquina virtual:
Nível n
Máquina virtual Mn, com a
linguagem de máquina Ln.
Programas que devem ser traduzidos
ou interpretados para Ln ou L0.
Nível 2
Máquina virtual M2, com a
linguagem de máquina L2.
Programas que devem ser t raduzidos
ou interpretados para L1 ou L0.
Nível 1
Máquina virtual M1, com a
linguagem de máquina L1.
Programas que devem ser traduzidos
ou interpretados para L0.
Nível 0
Computador real M0, com a
linguagem de máquina L0.
Programas que podem ser executados
diretamente pelo hardware.
rr-09-r.01
Máquina virtual
JVM
•JAVA
•C/C++
•Assembly
•Linguagem de máquina (0 e 1)
rr-09-r.01
Computadores modernos e seus
níveis / camadas
Nível 5
Nível das linguagens de
alto nível.
Tradução (Compilador)
Nível 4
Nível da linguagem
o montador.
Tradução (Montador)
Nível 3
Nível do sistema operacional.
Interpretação parcial (SO)
Nível 2
Nível do conjunto de
instruções. (ISA – Arquitetura
do conjunto de instruções)
Interpretação (microprograma)
Nível 1
Nível da micro arquitetura.
Execução em hardware
Nível 0
Nível da lógica digital.
Download