Disciplina Arquitetura (Cap 1 e 2 - Introduç_o)
95 pág.

Disciplina Arquitetura (Cap 1 e 2 - Introduç_o)


DisciplinaArquitetura de Computadores4.025 materiais30.423 seguidores
Pré-visualização4 páginas
Entrada
da Fita
Sistema
de Fitas
Saída
de Fita
Impressora
Um sistema \u201cbatch\u201d antigo. ( a ) Programadores levam cartões ao 
1401. ( b ) 1401 lê batch de jobs em fita. ( c ) A operadora acopla fita 
de entrada no 7094. ( d) O 7094 faz o processamento. ( e ) A 
operadora acopla fita de saída no 1401. ( f ) O 1401 imprime a saída. 
Invenção do Sistema 
Operacional 
Evolução do SO - incorpora, além de algumas 
instruções do ISA, tratamento de Entrada/Saída. 
 
\uf06e As instruções do SO eram conhecidas por macros 
do SO ou chamadas ao supervisor (atualmente: 
chamadas ao sistema). 
 
\uf06e 1960 (MIT) - SO com compartilhamento de vários 
usuários (terminais ligados ao computador por 
linhas telefônicas) - Sistemas de Tempo 
Compartilhado. 
Invenção do Sistema 
Operacional 
\uf06e 1970 - explosão nos conjuntos de instruções das 
máquinas, expandindo-se o microprograma \u2013 
Adicionar \u201chardware\u201d (novas instruções de máquina) 
por meio de programação. 
 
\uf06e Exemplos de novas funcionalidades, instruções para: 
\uf0a8 multiplicação e divisão de inteiros 
\uf0a8 aritmética em ponto flutuante 
\uf0a8 chamada e retorno de procedimentos 
\uf0a8 acelerar a execução de loops 
\uf0a8 manipulação de strings (cadeias) de caracteres 
Migração de funcionalidades 
para o Microcódigo 
\uf06e Facilidade da microprogramação \uf0de incorporação de 
novas funcionalidades para: 
\uf0a8 acelerar o processamento de programas envolvendo cálculo 
matricial (indexação e endereçamento indireto); 
\uf0a8 permitir que os programas pudessem ser deslocados de 
posição de memória, após o início da execução (realocação); 
\uf0a8 tratar interrupções que enviam um sinal para o processador 
logo que uma operação de E/S termine; 
\uf0a8 suspender a execução de um programa e iniciar a execução 
de outro (troca de contexto entre processos). 
Migração de funcionalidades 
para o Microcódigo 
 
\uf06e Décadas de 1960 a 1970 
\uf0a8 Microprogramas cresceram muito. 
\uf0a8 Conseqüência: tornaram-se lentos. 
 
\uf06e Retorna a idéia: 
\uf0a8 instruções e funcionalidades executadas por hardware. 
 
A eliminação da 
Microprogramação 
 
\uf06e Fronteira entre o hardware e o software pode ser 
arbitrária e está sempre mudando. 
\uf06e O que hoje está implementado em software poderá 
em breve estar implementado em hardware, e vice-
versa - O software de hoje pode ser o hardware de 
amanhã e vice-versa. 
\uf06e As fronteiras entre os demais níveis não estão bem 
definidas e podem também ser alteradas. 
 
Conclusões: 
\uf06e Do ponto de vista do programador, não tem 
muita importância a maneira como uma 
instrução é realmente implementada. 
 
\uf06e Programador de um nível, em geral, não deve se 
preocupar com implementações de níveis 
inferiores. 
Conclusões: 
Computador 
 
\uf06e É uma máquina cuja função é resolver problemas 
através da execução de instruções fornecidas. 
 
\uf06e É constituída basicamente por um conjunto de 
dispositivos eletrônicos e eletromecânicos que permitem 
transmitir, guardar e manipular informações. 
 
\uf06e Computadores digitais x computadores analógicos 
Processamento de dados 
 
\uf06e tradução do termo inglês Data Processing. 
 
\uf06e Consiste em uma série de atividades ordenadamente 
realizadas, com o objetivo de produzir um arranjo 
determinado de informações a partir de outras obtidas 
inicialmente. 
 
\uf06e Etapas básicas de um processamento de dados 
 
Dados Processamento 
Resultado: 
informação 
 
Dado:. 
 
\uf0e8 Conjunto de fatos ou valores medidos (numéricos ou 
não) sem significado próprio. Consiste na etapa inicial do 
processamento. 
\uf0e8 Tipos de dados: 
\uf0a8 Numéricos: inteiro, real, etc. 
\uf0a8 Alfanuméricos: nomes, endereços, etc. 
\uf0a8 gráficos: mapas, desenhos, etc. 
 
\uf0a8 sonoros: música, voz, etc. 
Dado x informação 
\uf06e Informação: 
 
\uf0e8 Representa o dado devidamente \u201ctratado\u201d. É a etapa final 
do processamento. 
\uf0e8 A informação é o significado que se confere aos dados, 
que pode ser diferente conforme o contexto de aplicação 
dos mesmos. 
Dado x informação 
\uf06e Exemplo: 
Elefante 
Processando 
 o dado elefante 
É um mamífero, 
de grande porte, 
e que se alimenta 
de vegetais. 
Dado Resultado: Processamento 
Programa 
\uf06e Formado por um conjunto de instruções, as quais 
executadas passo a passo realizam uma determinada 
ação. 
 
\uf06e Exemplo: 
 
\uf0a8 operação aritmética; 
\uf0a8 transferência de dados; 
\uf0a8 etc. 
Algoritmo 
 
\uf06e \u201cÉ uma descrição de um padrão de comportamento 
expresso em termos de um repertório bem definido e 
finito de ações \u2018primitivas\u2019, as quais damos por certo que 
podem ser executadas\u201d. (Guimarães/Lages) 
 
\uf06e O computador necessita de instruções precisas, 
completas e finitas sobre cada passo a executar. 
 
\uf06e Exemplo: 
1. Ler o valor numérico para o raio do circulo 
e armazenar na memória; 
2. Calcular o valor da área utilizando da 
fórmula indicada e também armazená-lo 
na memória; 
3. Imprimir e/ou mostrar no vídeo os valores 
dos raios e áreas correspondentes; 
4. Parar. 
Fazer um algoritmo que calcule 
a área de uma circunferência: 
 
Linguagem de 
Máquina x Linguagem 
de alto nível 
Quando o pastor 
rechaça o lobo, o 
rebanho chama o 
pastor de libertador 
mas o lobo chama-o 
de tirano 
 Da-da 
Linguagem de Máquina ou de baixo nível 
 
\uf06e A linguagem de um computador é baseado 
em impulsos elétricos (0 = desligado, 1 = 
ligado); 
 
\uf06e É uma linguagem de difícil manipulação e 
entendimento pelo ser humano. 
Linguagem de alto nível 
\uf06e Foram desenvolvidas linguagens de programação 
próximas do estilo de linguagem humana (Pascal, 
Fortran, C); 
 
\uf06e Estas linguagens apresentam uma sintaxe rígida sobre a 
qual são construídas as descrições de cada passo de um 
algoritmo. 
 
\uf06e Linguagens de alto nível são transformadas em 
linguagem de computador (linguagem de baixo nível ou 
de máquina) por programas interpretadores ou 
tradutores. 
 
\uf06e Linguagem Delphi 
 
Procedure Tform1.TesteAsm; 
Var I, Total: integer; 
Begin 
 Total :=0; 
 For i :=0 to 5 do 
 Total :Total + 10; 
end; 
Exemplos de programas: 
 
 
Push ebp Add dword ptr [ebp-$0c], $0a 
Mov ebp, esp 
Add esp, -$0c Mov [ebp-$08], $00000001 
Mov [ebp-$04],eax 
 Inc dword ptr [ebp-$08] 
Xor eax, eax Cmp dword ptr [ebp-$08], $06 
Mov [ebp-$0c], eax Jnz Tform1.testAsm + $15 
 
 Mov esp, ebp 
 Pop ebp 
 ret 
Linguagem Assembly 
 
 
 
01010101 
000101111101100 
100000111100010011110100 
100010010100010111111100 
0011001111001101 
100010010100010111111100 
1100011101000101111100001000000 
10000011010001011111010000001010 
 
111111110100010111111000 
10000011011111011111100000000110 
0111010111110011 
1000101111100101 
01011101 
11000011 
Linguagem de Máquina 
Software x Hardware 
\uf06e Conjunto formado pelos circuitos eletrônicos e 
partes eletromecânicas de um computador. 
\uf06e Ainda não há uma tradução adequada para o 
termo hardware. 
 
\uf06e Constitui a parte física, visível do computador. 
Hardware 
\uf06e Os principais componentes de hardware de um 
sistema computacional podem ser agrupados 
nas seguintes categorias: 
 
\uf0a8Dispositivos de entrada; 
\uf0a8CPU e memória principal; 
\uf0a8Dispositivos de armazenamento ou memória 
auxiliar; 
\uf0a8Dispositivos de saída; 
 
Barramentos de dados, endereços e controle 
CPU M P E/S 
Memória 
Auxiliar 
Cache 
Processador 
\uf0a7 Também conhecido como CPU (Central Processing 
Unit - Unidade Central de Processamento). Nos