1 / 72

Software Básico

Introdução aos sistemas de computação Tanembaum, capítulo 1. Software Básico. A visão do usuário. O usuário enxerga software, velocidade, capacidade de armazenamento e funcionalidades de periféricos. “Visão do computador” . Circuitos eletrônicos Transistores interconectados

paul
Download Presentation

Software Básico

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introdução aos sistemas de computação Tanembaum, capítulo 1 Software Básico

  2. Organização Estruturada de Computadores A visão do usuário O usuário enxerga software, velocidade, capacidade de armazenamento e funcionalidades de periféricos

  3. Organização Estruturada de Computadores “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

  4. Organização Estruturada de Computadores 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?...

  5. Organização Estruturada de Computadores 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

  6. Organização Estruturada de Computadores 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”

  7. Organização Estruturada de Computadores 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)

  8. Organização Estruturada de Computadores Linguagens, Níveis e Máquinas Virtuais

  9. Organização Estruturada de Computadores 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 Linguagem de máquina = nível de Arquitetura do Conjunto de Instruções - ISA

  10. Organização Estruturada de Computadores Arquiteturas em níveis atuais Programadores de aplicações Programas contêm Palavras e abreviações Linguagens de alto nível Interpretação Tradução (compilador) Linguagem assembly Tradução (assembler) Sistema operacional Suporte aos Níveis superiores Programadores de sistemas Programas consistem em séries de números Interpretação parcial (chamadas do sistema) Linguagem de máquina Execução direta Interpretação (microprograma) Microarquitetura Hardware Java: código primeiro compilado para bytecode (semelhante à ISA – nível 2) depois interpretado Lógica digital

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

  12. Organização Estruturada de Computadores 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

  13. Organização Estruturada de Computadores 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.

  14. Organização Estruturada de Computadores Evolução das máquinas multiníveis • Primeiroscomputadores, década de 40: • 2 níveis: • Programaçãofeita no nível ISA • Nívellógical digital (hardware) executava • Circuitoscomplicados, dífíceis de entender e de montar • Baixaconfiabilidade ENIAC, 1946

  15. Organização Estruturada de Computadores 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

  16. Organização Estruturada de Computadores Evolução das máquinas multiníveis • A programaçãoevoluiu: • passou a ser feita com cartõesperfurados • Mas o programadoraindatinhaquecontrolar o computadordiretamente • Máquinaociosa

  17. Organização Estruturada de Computadores Evolução das máquinas multiníveis • Ex de job no SO FMS • ~1960: sistemaoperacional • Automatizartrabalho do operador • Minimizardesperdício de tempo • Programadorproduziacartões de controlejuntodom o programaqueeram lidos e executadospelo SO *JOB, 5494, BARBARRA * FORTRAN Programa Fortran * DATA Cartões de dados * END

  18. OrganizaçãoEstruturada de Computadores Evolução das máquinasmultiní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

  19. Organização Estruturada de Computadores 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)

  20. Organização Estruturada de Computadores 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)

  21. Organização Estruturada de Computadores Um pouco de história Era uma vez...

  22. Organização Estruturada de Computadores A pré-história • Máquinas mecânicas • Computadores baseados em relés • O computador ABC (não terminado)

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

  24. Organização Estruturada de Computadores Blaise Pascal • Pascaline – calculadora simples, 1642

  25. Organização Estruturada de Computadores Leibniz • Calculadora c/ 4 operações básicas, 1672

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

  27. Organização Estruturada de Computadores Babbage (1792-1871) • Engenho diferencial

  28. Organização Estruturada de Computadores Charles Babbage (1792-1871) • Engenho analítico

  29. Organização Estruturada de Computadores Charles Babbage (1792-1871)

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

  31. Organização Estruturada de Computadores Hollerith • Proc. de cartões perfurados (censo 1890) • Empresa viria a se transformar na IBM (1924)

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

  33. Organização Estruturada de Computadores Atanasoff-Berry Computer (ABC), 1939 • Incompleto • válvulas • lógica binária • memória dinâmica

  34. Organização Estruturada de Computadores Conrad (?) Zuse • Máquina digital (relés), 1941

  35. Organização Estruturada de Computadores Harvard Mark I • Calculador baseado em relés • Primeiro “totalmente automático”

  36. Organização Estruturada de Computadores 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

  37. Organização Estruturada de Computadores Alan Turing • COLOSSUS, 1943 • Primeiro computador eletrônico (válvulas) programável • Projeto do Governo Britânico • Segredo militar por 50 anos • Desenvolvido para decodificar msgs nazistas

  38. Organização Estruturada de Computadores 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”

  39. Mauchley & Eckert: ENIACElectronic Numerical Integrator and Compute

  40. Mauchley & Eckert: UNIVAC (#1 no mercado)

  41. Organização Estruturada de Computadores Unidade lógica- aritmética 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 Entrada Unidade de controle Saída Acumulador

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

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

  44. Organização Estruturada de Computadores Outros computadores da época • EDSAC, 1949 • UNIVAC, 1951 • Whirlwind, 1951 • MANIAC, 1952

  45. Organização Estruturada de Computadores 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”

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

  47. Organização Estruturada de Computadores DEC PDP-1, 1960 • Primeiro “mini-computador”

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

  49. Organização Estruturada de Computadores • Projetista: Seymour Cray 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

  50. Organização Estruturada de Computadores 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)

More Related