Buscar

Cap 1 Software Basico

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 7 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 7 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

10/02/14 
1 
Introdução 
Renato Ferreira 
A visão do usuário 
O usuário enxerga software, velocidade, 
capacidade de armazenamento e funcionalidades 
de periféricos 
Visão do programador 
l  Linguagem de máquina 
–  Conjunto de instruções fundamentais que a máquina executa 
–  Expressa como um padrão de 0s e 1s 
l  Linguagem Assembly 
–  Equivalentes alfanuméricos da linguagem de máquina 
–  Mais amigável para o pessoas 
l  Assembler 
–  Programa que traduz (transliterate) assembly para linguagem de 
máquina 
–  Linguagem de máquina é a nativa para o computador 
–  Programador significa programador assembly (ou de linguagem 
de máquina) 
Linguagem de máquina e assembly 
l  O assembler converte a linguagem assembly 
para a linguagem de máquina 
Assembly Linguagem de Máquina 
MOVE.W D4, D5 0011 101 000 000 100 
ADDI.W #9, D2 000001 01 000 010 
0000 0000 0000 1001 
Motorola MC68000 
Escalas, Unidades e Convenções 
l  Bit (b), Byte (B), Nibble, Word (w) 
l  Kilo (K), Mega(M), Giga(G), Tera(T) 
l  Mili(m), Micro(µ), Nano(n), Pico(p) 
Abordagem estruturada 
l  Organize o computador como uma série de 
abstrações 
–  Cada uma constrói a partir das anteriores 
l  Mais fácil tratar a complexidade 
l  Computadores podem ser projetados de uma 
maneira sistemática 
l  Essa abordagem é chamada: Organização 
Estruturada de Computadores 
10/02/14 
2 
Organização estruturada 
l  Linguagens, camadas e máquinas virtuais 
–  espaço entre o que é conveniente para as 
máquinas e o que conveniente para humanos 
–  pode resolver de duas maneiras diferentes: 
tradução e interpretação 
–  ambas envolvem projetar um novo conjunto de 
instruções que é gradativamente mais 
conveniente para humanos 
Visão em camadas Tradução versus Interpretação 
l  Tradução 
–  Para executar um programa em L1, troca cada instrução 
por instruções em L0 
–  Execute o novo programa em L0 
l  Interpretação 
–  Escreva um programa em L0 que aceite um programa em 
L1 como arquivo de dados 
–  Examine qual é a instrução em L1 e execute as instruções 
necessárias em L0 
–  Nenhum programa novo é gerado 
Máquina virtual 
l  Imagine que exista uma máquina hipotética 
(virtual) capaz de executar a linguagem L1 
–  Máquina M1 
l  Escreva um programa em L1 
–  M1 deve ser capaz de executar esse programa 
diretamente 
l  Mesmo que a máquina virtual seja complexa, 
o programa ainda pode ser executado a 
partir de tradução ou interpretação 
Múltiplas camadas 
l  Para a tradução ou interpreteção ser 
possível na prática, L1 e L0 não podem ser 
muito diferentes 
–  L1 ainda é difícil para humanos 
–  Use uma série de camadas, cada um mais fácil 
que o anterior 
Máquina multi-camada 
l  Maioria das 
máquinas 
modernas tem 2 
a 6 camadas 
l  Camada 0 
corresponde ao 
hardware real 
10/02/14 
3 
Camada da lógica digital (L0) 
l  Portas lógicas (AND, OR, etc.) 
l  Memórias de 1 bit (latches e flip-flops) 
l  Registradores 
Camada de microarquitetura (L1) 
l  8-32 registradores 
l  Unidades lógico-aritméticas 
l  Caminho de dados 
–  Operações controladas diretamente pelo 
hardware 
–  Ou por microprogramas 
Camada de conjunto de instruções 
(L2) 
l  Conjunto de instruções: a coleção de todas as operações que 
a máquina pode realizar 
l  Interpretada por microprogramas, ou executadas diretamente 
pelo hardware 
l  Para o programador 
–  nível mais baixo de comandos 
–  mais os recursos que podem ser manipulados por esses 
comandos 
l  Inclui: 
–  conjunto de instruções 
–  memória 
–  registradores acessíveis 
Camada do sistema operacional (L3) 
l  Camada híbrida 
–  Muitas das instruções de L2 também estão disponíveis aqui 
–  Algumas instruções estendidas 
l  Instruções estendidas são executadas por um 
interpretador 
–  chamado Sistema Operacional 
l  Instruções L2 são executadas ou pelo 
microprograma ou diretamente pelo hardware 
Camada de assembly (L4) 
l  Camada mais baixa visível aos 
desenvolvedores de aplicações 
–  programadores enxergam camadas abaixo dessa 
l  Primeira camada na qual a linguagem é não 
numérica 
l  Tradução por um assembler (montador) 
Camada de aplicação (L5) 
l  Linguagens de programação de alto-nível 
–  C, C++, Java... 
l  Usualmente são traduzidas por compiladores 
–  programas bem mais complexos que montadores 
–  existem linguagens interpretadas 
10/02/14 
4 
L6 – Frameworks, máquinas 
virtuais… 
l  Será que estamos criando mais uma 
camada? 
–  Frameworks – Spring, Hibernate, … 
–  Máquinas virtuais – Virtual PC, VMWare, … 
–  Linguagens específicas de uma aplicação: 
Matlab, R, SAP… 
–  CMS – Joomla, etc… 
L6 – a nova fronteira 
l  Programação focada em um problema 
–  Linguagens e comandos específicos 
–  Somente legível por um “conhecedor” do domínio 
L3.5 - Virtualização 
l  Máquinas virtuais que rodam próximo do 
hardware 
–  zVM (IBM) 
–  XEN 
–  XEMU 
l  Sistema operacional com tarefas diminuídas 
–  Controlar execução das máquinas virtuais 
–  Drivers 
–  Garantir isolamento das VMs 
Resumindo 
l  Computadores são projetados como uma série de 
camadas, cada uma construída a partir da anterior 
l  Cada camada representa uma abstração distinta 
–  esconde detalhes irrelevantes 
–  reduz a complexidade 
l  Conjunto de tipos de dados, operações e 
características de cada camada é denominado 
arquitetura 
Hardware versus Software 
l  Hardware a software são logicamente 
equivalentes 
–  a distinção tem ficado cada vez mais nebulosa 
com o passar do tempo 
l  Evolução das máquinas multi-camadas 
–  Invenção da microprogramação 
–  Invenção do sistema operacional 
–  Migração da funcionalidade do microprograma 
–  Eliminação de microprogramação 
Ponto de vista do arquiteto 
l  Preocupação com projeto & desempenho 
l  Projetar um conjunto de instruções que otimize 
–  utilidade 
–  desempenho 
l  Projetar um hardware que otimize a implementação 
das instruções 
l  Validação do projeto através de benchmarks 
l  Equilibra desempenho dos diversos componentes 
–  CPU, memória, dispositivos de entrada e saída, etc... 
l  Obtém metas de desempenho mantendo o preço 
baixo 
10/02/14 
5 
Ferramentas de arquitetos 
l  Modelos de software, simuladores e emuladores 
l  Programas de benchmarking de desempenho 
l  Programas especializados de medição 
l  Análise de fluxo de controle e gargalos 
l  Análise de balanceamento 
l  Análise de custo, teste e fabricação de componentes 
Tendências fundamentais 
l  Lei de Moore: 
–  o número de transistores dobra a cada 18 meses 
l  Lei de Nathan: 
–  Software é um gás. Ele expande até ocupar todo 
o recipiente que o contém 
Aplicação da lei de Moore 
Computadores de todos os tipos 
Tipo Preço Exemplo 
Descartável 1 Cartões 
Embutidos 10 Carros, domésticos 
Especializados 100 videogames 
Pessoais 1K desktop, laptop 
Servidores 10K Servidor de arquivos 
Clusters 100K DCC 
Mainframe 1M Bancos 
Supercomputadores 10M Previsão de tempo 
Famílias de computadores 
l  Pentium II 
l  UltraSPARC II 
l  picoJava II 
Pentium II 
l  Noyce, Moore e Rock fundaram a Intel em 
1968 para fabricar memória 
l  CPU de 4 bits em um chip ao invés de chip 
específico para calculadora 
l  8088 usado no IBM PC original 
l  80386 foi a primeira CPU de 32 bits 
l  Pentium: 2 pipelines 
10/02/14 
6 
Família de processadores Intel 
Chip Frequência Transistores Memória 
4004 0,108 2.300 640 
8008 0,108 3.500 16KB 
8080 2 6.000 64KB 
8086 5-10 29.000 1MB 
8088 5-8 29.000 1MB 
80286 8-12 134.000 16MB 
80386 16-33 275.000 4GB 
80486 25-100 1.2M 4GB 
Pentium 60-233 3.1M4GB 
Pentium Pro 150-200 5.5M 4GB 
Pentium II 233-400 7.5M 4GB 
Lei de Moore para CPUs UltraSPARC II 
l  A SUN foi fundada para produzir estações de 
trabalho UNIX 
l  a cpu SPARC é baseada no projeto do RISC 
II 
–  32 bits, 55 instruções, unidade de ponto flutuante 
l  UltraSPARC 
–  64 bits 
–  Conjunto de instruções visual 
picoJava II 
l  Linguagem C foi desenvolvida no Bell Labs 
para ser usada no UNIX 
–  Dennis Ritchie 
l  Stroustrup incorporou o paradigma de 
orientação a objetos e criou o C++ 
l  A SUN desenvolveu Java para permitir a 
troca de programas executáveis pela internet 
picoJava II 
l  A Sun definiu uma máquina virtual que 
executa os programas Java 
–  Máquina Virtual Java (JVM) 
–  Portabilidade 
l  Projetou hardware capaz de executar java 
diretamente 
–  Sistemas embutidos 
Marcos na história de computação 
l  A geração Zero – computadores mecânicos 
–  Blaise Pascal 
–  Charles Babbage 
–  Ada Lovelace 
–  Konrad Zuse 
–  Atanasoff e Stibbitz (Bell Labs) 
–  Aiken (Harvard) 
10/02/14 
7 
A primeira geração 
l  Válvulas de vácuo (1945-1955) 
–  Turing 
l  COLOSSUS – decifrar o código ENIGMA 
–  Mauchley e Eckert 
l  ENIAC e EDVAC 
–  von Neumann 
l  IAS machine 
A arquitetura de Von Neumann A segunda geração 
l  Transistores (1955-1965) 
–  Bardeen, Brattain, Shockley (Nobel, 1956) 
–  Olsen (DEC PDP-1, PDP-8) 
–  IBM 
–  CDC 
–  Cray (supercomputadores) 
A terceira geração 
l  Circuitos integrados (1965-1980) 
–  IBM System/360 (multiprogramação) 
–  DEC PDP-11 
A quarta geração 
l  Integração de larga scala (VLSI) (1980-?) 
–  Computadores pessoais 
–  Jobs Wozniak (Apple) 
–  IBM PC 
–  Microsoft (MS-DOS, Windows) 
–  RISC aparece em contrapartida com CISC 
–  Arquiteturas superescalares 
Próximo capítulo 
l  Introdução aos componentes básicos da 
arquitetura 
–  processador 
–  memória 
–  dispositivos de entrada e saída 
l  Princípios de projeto dos vários 
componentes

Outros materiais