Software Básico
Introdução aos
sistemas de computação
Tanembaum, capítulo 1
A visão do usuário
O usuário enxerga software, velocidade,
capacidade de armazenamento e
funcionalidades de periféricos
Organização Estruturada de Computadores
2
“Visão do computador”
• Circuitos eletrônicos
° Transistores interconectados
° Chaves ligadas ou desligadas
• Linguagem de máquina
° Conjunto de instruções fundamentais que a máquina
executa
° Expressa como um padrão de 0s e 1s
Organização Estruturada de Computadores
3
Adendo: escalas, unidades e convenções
•
•
•
•
Bit (b), Byte (B), Word (w)
Kilo (k/K), Mega(M), Giga(G), Tera(T)
Mili(m), Micro(µ), Nano(n), Pico(p)
Diferentes escalas:
° B: bytes (potências de 2)
• 64 KB = 65.565 bytes
° b: bits (potências de 10)
• 1 Mb/s = 1.000.000 bits por segundo
... há divergências...
– você sabe o que é Kibi, Mibi, Gibi, Tibi?...
Organização Estruturada de Computadores
4
Arquiteturas em níveis
• Qualquer computador atual é extremamente
complexo para ser estudado de uma vez…
• A solução é organizar a máquina em níveis:
° cada nível é definido em função do anterior
° problemas são expressos em função da interface
definida para cada nível
° máquinas virtuais e linguagens associadas
Organização Estruturada de Computadores
5
Máquina virtual
• Imagine que exista uma máquina hipotética
(virtual) capaz de executar a linguagem L
° Máquina M
• Escreva um programa em L
° M deve ser capaz de executar esse programa
diretamente
• Mesmo que a máquina virtual seja complexa, o
programa ainda pode ser executado a partir da
máquina do nível inferior
Falha recorrente no livro: máquinas “reais”
Organização Estruturada de Computadores
6
Tradução x Interpretação
• Programas representados em um nível têm
que ser convertidos para processamento no
nível inferior
• Tradução (compilação)
° Programa na linguagem do nível L é convertido em
equivalente no nível L-1
• Interpretação
° Cada instrução do nível L é analisada e o seu efeito
é simulado pelo interpretador (programa de M-1)
Organização Estruturada de Computadores
7
Linguagens, Níveis e Máquinas Virtuais
Organização Estruturada de Computadores
8
Arquiteturas em níveis atuais
Linguagens de alto nível
Interpretação
Tradução (compilador)
Linguagem assembly
Tradução (assembler)
Sistema operacional
Interpretação parcial (chamadas do sistema)
Linguagem de máquina
Execução direta
Interpretação (microprograma)
Microarquitetura
Hardware
Lógica digital
Organização=
Estruturada
Linguagem de máquina
nível de
deComputadores
Arquitetura do Conjunto de Instruções - ISA
9
Arquiteturas em níveis atuais
Programadores de
aplicações
Linguagens de alto nível
Interpretação
Programas contêm
Palavras e abreviações
Tradução (compilador)
Linguagem assembly
Tradução (assembler)
Sistema operacional
Suporte aos
Níveis superiores
Interpretação parcial (chamadas do sistema)
Linguagem de máquina
Programadores de Execução
sistemas direta
Programas consistem em
séries de números
Interpretação (microprograma)
Microarquitetura
Hardware
Lógica digital
Organização Estruturada de Computadores
Java: código primeiro
compilado para bytecode
(semelhante à ISA – nível 2)
10
depois interpretado
Arquiteturas em níveis atuais
•Arquitetura = conjunto de tipos de dados, operações e
características de cada nível
•Arquitetura de um nível
• trata de aspectos que são visíveis ao usuário daquele nível
• ex: quantidade de memória disponível é parte da arquitetura
• aspectos de implementação não fazem parte da arquitetura
• tecnologia usada para construir memória não é parte da
arquitetura
Hardware e Software
• Hardware: objetos tangíveis
° Circuitos eletrônicos, componentes físicos
• Software: idéias abstratas
° Algoritmos, programas
• Início: fronteira era nítida
• Com o tempo: adição, remoção, fusão de níveis : fronteira
indistinta
Organização Estruturada de Computadores
12
Hardware e Software
• Software e hardware são logicamente equivalentes!
• “Hardware é apenas software petrificado”, Karen Panetta Lentz
• Qualquer instrução em software pode ser implementada em
hardware
• Qualquer instrução executada em hardware pode ser
simulada em software
• Decisão depende de custo, velocidade, confiabilidade, e
frequência de mudanças esperadas.
Organização Estruturada de Computadores
13
Evolução das máquinas multiníveis
• Primeiros computadores, década de 40:
•
2 níveis:
•
Programação feita no nível ISA
•
Nível lógical digital (hardware) executava
•
Circuitos complicados, dífíceis de entender
e de montar
•
Baixa confiabilidade
Organização Estruturada de Computadores
ENIAC, 1946
14
Evolução das máquinas multiníveis
• Invenção da microprogramação (Wilkes, 1951)
° Interpretador embutido imutável (microprograma)
° Instruções do nível ISA eram interpretadas por várias
operações mais simples
° Simplificação do hardware: reduzir número de
válvulas, aumentar confiabilidade
° Tempo de processamento necessário para fazer a
interpretação (overhead)
° Microprogramação: atingiu seu apogeu na década de
1970
Organização Estruturada de Computadores
15
Evolução das máquinas multiníveis
• A programação evoluiu:
° passou a ser feita com
cartões perfurados
• Mas o programador ainda
tinha que controlar o
computador diretamente
° Máquina ociosa
Organização Estruturada de Computadores
16
Evolução das máquinas multiníveis
• Ex de job no SO FMS
• ~1960: sistema
operacional
Automatizar trabalho do
operador
•
Minimizar desperdício
de tempo
• Programador produzia
cartões de controle junto
dom o programa que eram
lidos e executados pelo SO
•
*JOB, 5494, BARBARRA
* FORTRAN
Programa Fortran
* DATA
Cartões de dados
* END
Organização Estruturada de Computadores
17
Evolução das máquinas multiníveis
• Os sistemas operacionais evoluíram:
•
novas instruções, prinipalmente de E/S
• No início:
•
processamento em batch ou lote (fim dos '50)
• Várias horas entre instante em que programa entrava na
máquina e horário que terminava
• Sistemas de tempo compartilhado/time sharing (início ´60)
• Vários programadores se comunicam diretamente
com o computador
• Terminais remotos conectados ao computador central
por linhas telefônicas
IBM 709, 1959
Organização Estruturada de Computadores
18
Evolução das máquinas multiníveis
• Migração de funcionalidade para microcódigo ('70)
° Extensão do microprograma equivalia a acrescentar
novo hardware
° Explosão de novas instruções para simplificar a vida do
programador assembly
° Muitas insruções não eram essenciais pois seu efeito
podia ser conseguido com facilidade com outras
instruções
• EX: INC vs. ADD
° Exemplos importantes: DEC PDP, DEC VAX
° Incorporada aos micro-processadores (menos HW)
Organização Estruturada de Computadores
19
Evolução das máquinas multiníveis
• Eliminação da microprogramação ('90)
° Microprogramas extensos geram lentidão
° Tendência:
• Eliminar/reduzir microprograma
• Reduzir drasticamente conjunto de instruções
• Execução direta das instruções restantes
° Compiladores não precisam de instruções complexas
° Hardware se tornam mais barato
... Mas o mundo continua dando voltas ...
Java e congêneres utilizam byte codes (interpretados)
Organização Estruturada de Computadores
20
Um pouco de história
Era uma vez...
Organização Estruturada de Computadores
21
A pré-história
• Máquinas mecânicas
• Computadores baseados em relés
• O computador ABC (não terminado)
Organização Estruturada de Computadores
22
Computadores Mecânicos
(1642 – 1945)
• Blaise Pascal, 1642: 1ª máquina de calcular operacional
° totalmente mecânico,
° funcionava com uma manivela operada à mão,
° projetado para ajudar o pai, coletor de impostos,
° fazia soma/subtração
Blaise Pascal
• Pascaline – calculadora simples, 1642
Organização Estruturada de Computadores
24
Leibniz
• Calculadora c/ 4 operações básicas, 1672
Organização Estruturada de Computadores
25
Computadores Mecânicos
(1642 – 1945)
• Charles Babbage (1792 – 1871)
° 1ª tentativa: dispositivo mecânico
• soma/subtração,
• realizava um único algoritmo
• saída: perfurava resultados sobre chapa e gravação de cobre
(prenúncio de CD-Roms)
° 2ª tentativa (1834): 1ª máquina analítica (ainda mecânica)
• 4 unidades: armazenagem, moinho, leitora de cartões perfurados,
saída perfurada e impressa
• armazenagem: 1000 palavras de 50 algarismos decimais
• moinho: soma/subtração/multiplicação/divisão / testes
• uso geral: podia realizar cálculos diversos
• Produção de software: Babbage contratou Ada Lovelace –
1ª programadora de computadores
Babbage (1792-1871)
• Engenho diferencial
Organização Estruturada de Computadores
27
Charles Babbage (1792-1871)
• Engenho analítico
Organização Estruturada de Computadores
28
Charles Babbage (1792-1871)
Organização Estruturada de Computadores
29
Computadores Mecânicos
(1642 – 1945)
•
Charles Babbage (1792 – 1871)
° 1ª tentativa: dispositivo mecânico, soma/subtração , realizava um único algoritmo, saída:
perfurava resultados sobre chapa e gravação de cobre (prenúncio de CD-Roms)
° 2ª tentativa (1834): 1ª máquina analítica (ainda inteiramente mecânica)
4 unidades: armazenagem, moinho, leitora de cartões perfurados, saída perfurada e
impressa
armazenagem: 1000 palavras de 50 algarismos decimais
moinho: soma/subtração/multiplicação/divisão / testes
uso geral: dependendo dos cartões de entrada, podia realizar cálculos diversos
Produção de software: Babbage contratou Ada Lovelace – 1ª programadora de
computadores
•
Konrad Zuse, 1930´s: 1ª máquina calculadora automática com relés eletromagnétios
° Vários outros esforços nesta época
° John Atanasoff: máquina super-avançada para época, baseada em aritmética binária.
Máquina nunca se tornou realmente funcional
° Howard Aiken,: revisitou trabalho de Babbage e decidiu construir com relés um computador
de uso geral. Quando terminou, os computadores de relés estavam obsoletos.
Hollerith
• Proc. de cartões perfurados (censo 1890)
• Empresa viria a se transformar na IBM (1924)
Organização Estruturada de Computadores
31
Computadores Mecânicos
(1642 – 1945)
• Konrad Zuse, 1930´s:
° 1ª máquina calculadora automática com relés eletromagnétios
• John Atanasoff:
° máquina super-avançada para época, baseada em aritmética
binária.
° Máquina nunca se tornou realmente funcional
• Howard Aiken:
° revisitou trabalho de Babbage e decidiu construir com relés um
computador de uso geral.
° Quando terminou, os computadores de relés estavam obsoletos.
Atanasoff-Berry Computer (ABC), 1939
•
•
•
•
Incompleto
válvulas
lógica binária
memória
dinâmica
Organização Estruturada de Computadores
33
Conrad (?) Zuse
• Máquina digital (relés), 1941
Organização Estruturada de Computadores
34
Harvard Mark I
• Calculador baseado em relés
• Primeiro “totalmente
automático”
Organização Estruturada de Computadores
35
Primeira geração: válvulas (1945-1955)
• Substitutos naturais dos relés
• Menor espaço, maior velocidade, sem partes móveis
• Grande estímulo para computador eletrônico:
• Segunda Guerra Mundial
• Mensagens alemãs enviadas codificadas
usando ENIGMA
Organização Estruturada de Computadores
36
Alan Turing
• COLOSSUS, 1943
• Primeiro computador
eletrônico (válvulas)
programável
• Projeto do Governo
Britânico
• Segredo militar por
anos
• Desenvolvido para
decodificar msgs
nazistas
50
Organização Estruturada de Computadores
37
Eckert e Mauchley
• ENIAC (Eckert e Mauchley, 1946)
°
°
°
°
°
°
Necessidade de cálculos pesados pelo exército dos EUA
Idéias de Atanasoff e outros
18000 válvulas e 1500 relés
30 toneladas, 140 kW
Cabos e 6000 chaves
Arquitetura:20 registradores
cada
um um número decimal
de 10
algarismos
° Primeiro “bug”
° Após a guerra,“escola de verão”
Organização Estruturada de Computadores
38
Mauchley & Eckert: ENIAC
Electronic Numerical Integrator and Compute
Mauchley & Eckert: UNIVAC (#1 no mercado)
John Von Neumann
• IAS – a máquina de von Neumann (1952)
° Arquitetura dos computadores modernos
° Programa armazenado em memória
° Unidades de controle e aritmética
Memória
Unidade de
controle
Unidade
lógicaaritmética
Acumulador
Organização Estruturada de Computadores
Entrada
Saída
41
John Von Neumann
• IAS – a máquina de von Neumann (1952)
° Memória: 4096 palavras de 40 bits
° Cada palavra: 2 instruções de 20 bits ou um inteiro de 40 bits
com sinal
° Instruções: 8 bits para identificar tipo, 12 bits para especifica
um das 4096 palavras de memória
° Registrador Acumulador: dentro da Unidade Lógica e
Aritmética
A Primeira Geração: Válvulas (1945 – 1955)
• IBM, 1953: 701
° 2048 palavras de 36 bits
° Início da atuação da IBM no mercado de computadores
° Primeiro de uma série de máquinas científicas que
passaram a dominar o setor na próxima década
Outros computadores da época
•
•
•
•
EDSAC, 1949
UNIVAC, 1951
Whirlwind, 1951
MANIAC, 1952
Organização Estruturada de Computadores
44
Segunda geração: transistor (1955-1965)
•
•
•
•
•
Menos falhas, menor espaço
DEC PDP-1
IBM 1401
CDC 6600
Burroughs 5000: programação em ALGOL
incluíram muitas características no hardware
para facilitar tarefa do compilador
“software também é importante”
Organização Estruturada de Computadores
45
A Segunda Geração: Transistores
(1955 – 1965)
• MIT, 1950´s: TX-0 – Transistorizes eXperimental Computer 0
° 1º computador transistorizado
° Depois veio o TX-2 que acabou nao dando em nada
° Kenneth Olsen, um dos engenheiros, fundou a empresa Digital
Equipment Corporation (DEC) em 1957
• DEC, 1960: PDP-1
° 4096 palavras de 18 bits
° Podia executar 200 mil instruções por segundo: metade do desempenho
do IBM 7090, o mais rápido na época
° Porém o PDP1 custava 120 mil dólares, o 7090 custava milhões
° DEC vendeu dezenas de PDP-1: nascia a indústria de
minicomputadores
° Visor e capacidade de plotar pontos na tela -> criação de videogames
DEC PDP-1, 1960
• Primeiro “mini-computador”
Organização Estruturada de Computadores
47
A Segunda Geração: Transistores
(1955 – 1965)
• IBM: computação científica
° 7090, 7094 tempo de ciclo de 2 microssegundos
• IBM, processamento comercial, periféricos
° 1401: máquina pequena voltada para empresas
° 1401: arquitetura complexa, sem registrador, palavra sem tamanho fixo
Control Data: CDC 6600, 1964
• Primeiro “super-computador”
°
°
°
°

várias unidades de processamento
estrutura pipeline
múltiplas threads
Arquitetura estava décadas
a frente do seu tempo
Projetista:
Seymour Cray
Organização Estruturada de Computadores
49
DEC PDP-8, 1965
• Mini-computador com barramento padrão
° Inovação: barramento único
(omnibus) conectando cpu,
memória, console, E/S
• Berço do Unix (Bell Labs)
Organização Estruturada de Computadores
50
Terceira geração: CIs (1965-1980)
• Invenção do circuito integrado por Robert
Noyce em 1958:
° dezenas de transistores em um único chip
• Maior integração permitiu reduções
significativas de tamanho
Organização Estruturada de Computadores
51
IBM System/360
• Arquitetura de máquina comum
a vários modelos
° Família de máquinas
• compatibilidade
° multiprogramação
° emulava 1401 e 7090
(máquinas virtuais)
° Microprogramado
• Um microprograma
para cada máquina alvo
° Espaço de endereçamento:
• 224 bytes: parecia muito no início mas gerou problemas de
compatibilidade na década de 80 (memória insuficiente)
Organização Estruturada de Computadores
52
DEC PDP-11
• Bastante popular em
universidades
• Ligado à difusão do Unix
• Instruções complexas
• Seguido pela linha VAX
Organização Estruturada de Computadores
53
Quarta geração: VLSI (1980-?)
• Integração em Escala Muito Grande
• Computador em um chip (4004)
• Explosão dos computadores pessoais
° Kit com chip Intel 8080 x Apple
• IBM decide entrar no mercado de computadores pessoais
° IBM Personal Computer construído com peças do mercado
(Intel 8080): grande popularidade
° Sistemas operacional MS-DOC da Microsoft
° Projeto aberto: vários clones, assim nascia a indústria de PCs
• Apple Macintosh – interface gráfica
• Microsoft Windows – rompimento com IBM
• 1992: DEC lança o ALPHA de 64 bits
Organização Estruturada de Computadores
54
Quarta geração: VLSI (1980-?)
• Era dos antagonismos:
°
°
°
°
°
IBM PC x Macintosh
IBM PC x Workstations
RISC x CISC
DOS/Win x Unix
Microsoft x o resto
Organização Estruturada de Computadores
55
Quinta geração – computadores invisíveis?
• A Internet está presente em todo lugar
• Processadores estão cada vez menores
• Podem ser embutidos em quase tudo
°
°
°
°
°
°
PDAs
Celulares
Eletro-eletrônicos
Máquinas (automóveis)
Sensores
RFIDs
• A idéia existe há anos, mas “a hora é agora”
Organização Estruturada de Computadores
56
Tendências fundamentais: “Lei” de Moore
O no. de transistores dobra a cada 18 meses
Organização Estruturada de Computadores
57
Tendências fundamentais: “Lei” de Moore
O no. de transistores dobra a cada 18 meses
Organização Estruturada de Computadores
58
Tendências fundamentais: “Lei” de Nathan
• Software é um gás: ele se expande até
ocupar todo o recipiente que o contém
• Exemplo clássico: Win*
Organização Estruturada de Computadores
59
Marcos da Arquitetura de Computadores
Organização Estruturada de Computadores
60
Marcos da Arquitetura de Computadores
Organização Estruturada de Computadores
61
Espectro dos computadores atuais
Tipo
Computador descartável
Preço
1
Computador embutido
10
Computador de jogos
100
Computador pessoal
Servidor
Clusters de estações
Mainframe
Supercomputadores
1K
10K
100K
Aplicação
Cartões musicais
Relógios, carros, eletro-eletrônicos
Jogos (vídeo-games simples)
Estações de trabalho
Servidores de rede
Supercomputadores departamentais
1M Processamento de grande volume de dados
10M Previsão do tempo, armas nucleares
Organização Estruturada de Computadores
62
Computador Pessoal
Organização Estruturada de Computadores
63
Exemplos de famílias de computadores
• Pentium 4 da Intel
• UltraSPARC III da Sun Microsystems
• O chip 8051 da Intel, para sistemas embutidos
Organização Estruturada de Computadores
64
Família de computadores Intel
Organização Estruturada de Computadores
65
Família de computadores Intel
Lei de Moore para chips de CPU (Intel).
Organização Estruturada de Computadores
66
Família de computadores Intel
Chip Pentium 4.
Direitos de reprodução da
Intel Corporation, 2003,
utilização permitida.
Organização Estruturada de Computadores
67
Família de computadores Sparc
• Estações de trabalho pessoais Unix
• Sun computers (Stanford University Network)
° “The Network is the Computer”
• SPARC: Scalable Processor Architecture
° Apenas definiu a arquitetura, diversos fabricantes
fizeram suas implementações
• Exemplo clássico de processador RISC
° Posteriormente o conjunto de instruções foi extendido
Organização Estruturada de Computadores
68
Família MCS-51
• “Um computador em um chip”
°
°
°
°
°
°
CPU 8 bits
Memória ROM
Memória RAM
UART (serial)
Temporizadores
Saídas de controle (binárias ou analógicas)
Organização Estruturada de Computadores
69
Família MCS-51
Organização Estruturada de Computadores
70
Próximo capítulo
• Introdução aos componentes básicos da
arquitetura
° processador
° memória
° dispositivos de entrada e saída
• Princípios de projeto dos vários componentes
Organização Estruturada de Computadores
71
Organização Estruturada de Computadores
72
Download

cap1 - Universidade Federal de Minas Gerais