LABORATÓRIO DE
INFORMÁTICA
Agenda
Áreas da Computação
História da Computação
Informática
Informática: informação automática, tratamento
da informação de modo automático
Informação, comunicação
Área inicialmente conhecida como Ciência da
Computação
Situa-se na interseção de quatro áreas de
conhecimento: Ciência da Computação Ciência da Informação Teoria de Sistemas Cibernética 3
Ciência da Computação
“A computação é o estudo sistemático de
processos algorítmicos que descrevem e
transformam informação: sua teoria, análise,
projeto,
eficiência,
implementação
e
aplicação” [Comer et al. 1989]
Áreas da Ciência da Computação
1. Algoritmos e Estruturas de Dados 2. Linguagens de Programação
3. Arquitetura de Computadores
4. Computação Numérica e Simbólica 5. Sistemas Operacionais
6. Metodologia e Engenharia de Software
7. Sistemas de Banco de Dados e Recuperação de
Informação
8. Inteligência Artificial e Robótica 9. Interação Humano-Computador
Algoritmos e Estruturas de Dados
Lida com classes específicas de problemas e com
soluções eficientes para os mesmos:
quais estruturas de representação de dados e algoritmos de manipulacao de dados sao mais eficientes?
Principais aspectos relacionados:
Computabilidade
Complexidade computacional
Limites de tempo e armazenamento de algoritmos Tratabilidade de problemas
Relacao entre modelagem e implementação Métodos heurísticos
Criptografia, grafos, funções recursivas, etc.
Linguagem de Programação
Preocupa-se com notações para máquinas virtuais
que executam algoritmos, com notações para algoritmos e dados, e com a tradução eficiente de linguagens de alto-nível para código de máquina.
Principais aspectos relacionados
Análise e tradução de linguagens
Procedimentos, funções e computação simbólica Semântica formal
Lógica, álgebra e indução matemática.
Arquitetura de Computadores
Lida com métodos para organizar o hardware
e seu software em sistemas eficientes e
confiáveis
Principais aspectos relacionados:
Álgebra Booleana
Dispositivos eletrônicos
Representação de estados de uma máquina Matemática discreta
Aritmética em diferentes sistemas numéricos.
Computação Numérica e Simbólica
Lida com métodos gerais para resolver com
eficiência e acuracidade equações provenientes da modelagem matemática de sistemas.
Preocupa-se com a representação, aproximação
e manipulação de números e símbolos, de forma eficaz e eficiente
Principais conceitos relacionados:
Teoria dos Números Álgebra Linear
Análise Numérica Cálculo, etc…
Sistemas Operacionais
Preocupa-se com mecanismo de controle que
permitem que múltiplos recursos sejam coordenados com eficiência para a execução de programas
Principais aspectos relacionados:
Sincronização e cooperação entre tarefas
computacionais.
Ordem de execução entre tarefas computacionais. Modelagem e análise de desempenho
Políticas para gerenciamento de armazenamento de
dados.
Metodologia e Engenharia de Software
Preocupa-se com o projeto de programas e grandes sistemas de software de acordo com as respectivas especificações para que elas sejam seguras, confiáveis e fiéis à especificação
Principais aspectos relacionados:
Princípios de desenvolvimento de programas Sistemas/ambientes de programação
Especificação de requisitos
Verificação e prova de programas
Manutenabilidade e legibilidade de programas.
Sistemas de Banco de Dados e
Recuperação de Informação
Preocupa-se com a organização de grandes
conjuntos de dados compartilhados e persistentes de forma que possam ser consultados e atualizados com eficiência
Principais aspectos relacionados:
Representação de dados e seus relacionamentos Implementação eficiente de operações de
armazenamento, busca e recuperação de informação
Proteção e segurança de informações Gerenciamento de dados distribuídos.
Inteligência Artificial e Robótica
Preocupa-se
com
a
modelagem
de
comportamentos inteligentes e a construção
de mecanismos que os simule
Principais aspectos relacionados:
Avaliação de regras, inferência, dedução Coleta e codificação de dados de sensores Representação de conhecimento.
Interação Humano-Computador
Trata da transferência eficiente de informações
entre humanos e máquinas, por meio de
sensores ou mecanismos apropriados aos
humanos
Principais aspectos relacionados:
Métodos para representação e visualização de
objetos
Métodos efetivos para entrada e saída de dados
e informações
Clareza e simplicidade de representações.
História da Computação
Evolução das Máquinas de Vários Níveis
Evolução das arquiteturas
1. Geração zero – Computadores mecânicos
(1642-1945)
2. Primeira geração – Válvulas (1945-1955)
3. Segunda geração – Transistores (1955-1965) 4. Terceira geração – Circuitos integrados
(1965-1980)
5. Quarta geração – Integração de circuito em
escala muito alta (1980-hoje)
Primeira Forma de Calcular
Pastor
Primeiro ser humano a calcular
Técnica utilizada
Empilhamento de pedras para poder contar e
controlar o rebanho
A palavra cálculo vem do latim
Calculos – do latim pedra
Primeira Forma de Cálculo
Uso dos dedos
Primeira maneira dos homens indicarem a que
quantidade estavam se referindo
A palavra dígito vem do latim
Digitus – do latim dedo
Ábaco
Primeira tentativa bem sucedida de se criar
uma máquina de calcular
China, cerca de 2500 anos antes de Cristo Abacus – do latim tábua de argia
Bastões de Napier
Criados em 1614 pelo matemático John
Napier (inventor dos logaritmos)
Criado como auxílio à multiplicação
Os bastões de Napier era um conjunto de 9
bastões,
um
para
cada
dígito,
que
transformavam a
multiplicação de
dois
números numa soma das tabuadas de cada
dígito.
Simulação da multiplicação de 9 por 384 com Bastões de Napier
Régua de Cálculo
Círculos de proporção
Representação dos logaritmos de Napier em
escalas de madeira, marfim ou outro material
Círculos de proporção dão origem à régua de
cálculo
Logaritmos representados por traços e sua
divisão e produto obtidos pela adição e subtração de comprimentos
Régua de Cálculo
Exemplos de réguas de cálculo
Computadores Mecânicos
(1642-1945)
Geração Zero
Geração Zero
Primeira máquina de calcular
Blaise Pascal (físico, filósofo e matemático
francês) em 1642, aos 19 anos
Projetado para ajudar seu pai, coletor de
impostos
Dispositivos inteiramente mecânico, dotado de
várias engrenagens e acionado por uma alavanca
Apenas somava e subtraia
Geração Zero
Barão Gottfried Wilhelm Leibnitz
Construiu uma máquina mecânica que
multiplicava e dividia, além de somar e subtrair, em 1671
Criava o equivalente às calculadoras de bolso
atuais.
Geração Zero
Charles Babbage (matemático)
Em 1822 inventa a Máquina Diferencial
Idealizada para construir tabelas de números
para navegação naval
Construída para executar um único algoritmo
Método das diferenças finitas usando polinômios
Método para disponibilizar informações na saída
Resultados perfurados em um prato de cobre
Mídia precursora dos cartões perfurados e dos CD-ROMs
Máquina Diferencial
Geração Zero
Charles Babbage
Não satisfeito com a máquina diferencial (um
único algoritmo), cria a máquina analítica
Constituída de memória, unidade de
computação, e das unidades de entrada e saída (cartões perfurados)
Máquina de propósito geral
Ada Augusta Lovelace criou o software para a
linguagem de montagem para a máquina analítica
Primeira pessoa a programar um computador.
Primeira Geração
Ada, condessa de Lovelace (Inglaterra,
1815-1851)
Geração Zero
A máquina analítica de Babbage nunca
funcionou a contento
Milhares de engrenagens e mecanismos precisos
impossíveis para a época
Idéia avançada demais para a época
Maioria dos computadores modernos tem estrutura semelhante a máquina analítica
Babbage é o avô dos computadores digitais
Geração Zero
Máquina analítica de Babbage
Geração Zero
Relés
Tentativas de substituir as partes mecânicas dos
computadores por partes elétricas
O alto custo, tamanho físico e baixo desempenho
eram as desvantagens desse tipo de máquinas
Geração Zero
Howard Aiken
Durante seu doutorado
Necessidade de cálculos automáticos
Construiu com relés a máquina de Babbage
Primeira máquina – Mark I
Pronta em 1944
72 palavras de 32 dígitos decimais
6 segundos para executar uma instrução
Quanto terminou o Mark II, ele já estava ultrapassado
Criação dos transistores (início da era eletrônica)
Geração Zero
Características do Mark I
18 metros de comprimento 2 metros de largura Peso – 70 toneladas 7 milhões de peças móveis Fiação alcançava 800Km
Tinha 72 palavras de 23 dígitos decimais Tempo de execução de uma instrução
6 segundos
Válvulas
(1945-1955)
Primeira Geração
Primeira Geração - Válvulas
Primeira Geração
Principal estímulo para o desenvolvimento dos
computadores eletrônicos
2a
guerra mundial
ENIGMA
Codificador de mensagens dos alemães
Primeira Geração
COLOSSUS (1943)
1o computador eletrônico
Decodificador de mensagens
Devido a ser segredo militar a linha não se
desenvolveu (segredo por 30 anos)
Considerado o primeiro computador eletrônico.
Primeira Geração
Características do COLOSSUS
Desenvolvido com a tecnologia de válvulas
Capaz de processar cerca de 5 mil caracteres por
segundo
Capaz de quebrar o código da segunda geração
de máquinas ENIGMA
No final da guerra, dez COLOSSUS em operação
constante permitiam que os ingleses soubessem melhor que o comando alemão onde se
encontravam seus submarinos.
Primeira Geração
Consequências da guerra
Cientista americanos trabalham no
desenvolvimento de máquinas de computação
Objetivo
Calcular tabelas de direção de tiro para auxiliar na pontaria da artilharia americana
Solução
ENIAC (Eletronic Numerical Integrator And computer)
Primeira Geração
Características do ENIAC 18.000 válvulas 70.000 resistências 10.000 capacitores 1500 relés 6000 comutadores manuais 500.000 conexões de solda 30 toneladas de peso 5.5m de altura 25m de comprimento 150 m2 de área 44Primeira Geração
Características do ENIAC
Motor equivalente a 2 potentes motores de carros de quatro cilindros
Consumo
150 kW – equivalente a 50 aquecedores domésticos
Arquitetura
Composta de 20 registradores
Cada um capaz de armazenar 1 número decimal de
10 dígitos.
Primeira Geração
Características do ENIAC
Programação
Através de fios e pinos
Executava 5000 adições/subtrações ou 300 multiplicações por segundo
1 ou 2 dias para programar
Limitação
Capacidade de armazenamento.
Primeira Geração - ENIAC
Primeira Geração - ENIAC
Primeira Geração
Quando o ENIAC foi concluído ele não era
mais útil para o exército
Fim da guerra
Impulsionou o desenvolvimento de sucessores
EDSAC, JOHNIAC, ILLIAC, MANIAC, WEIZAC
Construtores do ENIAC (Eckert e Mauchely)
desenvolvem o EDVAC
Eletronic Discret Variable Automatic Computer
Primeira Geração
John Von Neumman
Versão própria do EDVAC Motivação
Desconforto
Lentidão
Inflexibilidade de se programar por meios de chaves e cabos
Substituiu a aritmética decimal pela binária
Primeira Geração
A máquina de Von Neumman
tinha cinco componentes
Memória
Unidade aritmética lógica Unidade de controle
Dispositivos de entrada e saída.
Primeira Geração – Máquina de
Von Neumman
Primeira Geração
IBM
Produzia perfuradores de cartões e máquinas
mecânicas de separar cartões
1953
IBM 701 (2048 palavras de 36 bits, duas instruções por palavra)
1956
IBM 704
4K de memória
Instruções de 36 bits
Hardware para processamento de números em ponto flutuante
Primeira Geração
IBM
1958
Produção da última máquina a válvula (IBM 709)
A IBM dominou o mercado
de máquinas científicas por uma década.
Transistores
(1955-1965)
Segunda Geração
Segunda Geração
Invenção do transistor
1948, rendendo o prêmio Nobel de física de 1956 Em 10 anos revolucionou a indústria da
computação
Vantagens dos transistores
Aquecimento mínimo
Baixo consumo de energia
Mais confiável e veloz
Segunda Geração
Primeiro computador transistorizado
TX-0 (Transistored eXperimental computer 0) Nunca funcionou muito bem
DEC
Projeto de uma máquina semelhante ao TX-0 1961
PDP-1 (4K palavras de 8 bits e clock com período de 5us, preço: 120.000 dólares)
Origem dos minicomputadores
Primeiro videogame
PDP-8 (máquina de 12 bits com barramento único, preço: 16.000).
Segunda Geração
PDP-8
Segunda Geração
IBM
Versão transitorizada do 709->7090
7094 (clock com período de 2us, memória de
32K, palavras de 36 bits cada)
Líder no mercado da computação científica
1401 – máquina pequena, voltada para
aplicações comerciais.
Segunda Geração
CDC (Control Data Corporation)
Lançou o 660 em 1964 Característica do 660
Alta velocidade
Conceito de processamento paralelo
Hardware composto de um conjunto de pequenos processadores
Denominação atual: Supercomputadores
Segunda Geração
Burroughs B5000
Máquina construída com o objetivo de rodar
programas escritos em Algol 60
Fortalecimento do software.
Circuitos Integrados
(1965-1980)
Terceiro Geração
Terceira Geração
Microeletrônica
Um computador é composto de portas, células
de memória e interconexões.
Terceira Geração
Circuitos integrados
Fabricados em um semicondutor Wafer de silício 65Terceira Geração
1958 – Robert Noyce desenvolveu os circuitos
integrados
Máquinas menores, mais baratas e mais rápidas
Terceira Geração
IBM System/360
Terceira Geração
Surgiram as primeiras linguagens de alto nível
COBOL, FORTRAN, BASIC
Surgimento do mouse
Armazenamento
Fita magnética
Terceira Geração
Altair
Kit – revista
Popular Electronics
Início da linguagem
Altair BASIC
Bill Gates
Paul Allen
Carta para Roberts
Início da Micro-soft
Integração de Circuitos em Escala Muito
Alta
(1980-dias atuais)
Quarta Geração
70Quarta Geração
Técnica VLSI – dezenas de milhares de
transistores em um chip
Máquinas menores e mais rápidas
Não eram mais necessários os centros de
computação
Preços acessíveis a usuários domésticos
Computadores pessoais
Não possuíam software.
Quarta Geração
Gary Kildall escreveu o primeiro Sistema
Operacional – CP/M
Surgimento do Apple e Apple II no início da
década de 80
IBM construiu um computador baseado em um
chip da Intel e componentes de mercado –
surgia o PC da IBM
Quarta Geração
Apple I Apple II
IBM PC Osborne I
Quarta Geração
Devido a grande venda de IBM-PC, a Intel se
torna a maior fabricante de processadores
MS-DOS – SO do IBM-PC
IBM e Microsoft produziram o SO OS/2
As empresas brigam e o novo SO da Microsoft, o
Windows, domina o mercado
Quarta Geração
80086
286
386
486
Pentium, Pentium 2
Pentium 3, Pentium 4
Core 2 Duo
i7
75Quarta geração
Intel i7
é constituído com uma tecnologia de 0.13
micrômetros e possui 731 milhões de transistores.
Super computador Sequoia
Consome 7.9 MW
1,572,864 processadores
Processamento de 16 petaflops
Lei de Moore
Gordon Moore – cofundador da Intel
Número de transistores de um chip dobrará a
cada ano
Desde 1970, isso diminuiu um pouco
Número de transistores dobra a cada 18 meses
Crescimento da contagem de
transistores da CPU
Quinta Geração?
Quinta Geração?
Alguns autores consideram uma quinta
geração de computadores
Máquinas com processamento paralelo Computadores com inteligência artificial Arquitetura reduzida de instruções (RISC)