Introdução aos Computadores Computadores e Redes de Comunicação Mestrado em Gestão de Informação, FEUP 06/07 Sérgio Sobral Nunes mail: sergio.nunes@fe.up.pt web: www.fe.up.pt/~ssn
Sumário Definição Breve história Evolução Funções básicas Representação de dados Organização Programação Sérgio Nunes Computadores e Redes de Comunicação 2
Definição Breve História e Evolução
Definição Computador Sistema programável que permite armazenar, recuperar e processar dados. Instruções Entrada Processamento Saída Armazenamento Sérgio Nunes Computadores e Redes de Comunicação 4
Breve História Computadores mecânicos Ábaco (2500 AC) Calculadora de discos Pascal (1642) Máquina diferencial (Babbage, 1822) Motor analítico (Babbage, 1833) Tabuladora Hollerith (1890) Sérgio Nunes Computadores e Redes de Comunicação 5
Pascaline Sérgio Nunes Computadores e Redes de Comunicação 6
Máquina Diferencial de Babbage Sérgio Nunes Computadores e Redes de Comunicação 7
Tabuladora de Hollerith Sérgio Nunes Computadores e Redes de Comunicação 8
Breve História 1ª Geração (1946-1957) Uso de válvulas e cartões perfurados. Cálculos digitais substituíram os cálculos analógicos. Harvard MARK I (Aiken, 1944) hardware electromecânico. ENIAC (Eckert e Mauchly, 1946) primeiro computador completamente electrónico. 18 mil válvulas. EDVAC (von Neumann, 1950) introduziu a memória permanente e o sistema binário. UNIVAC I (1951) primeiro computador a ser produzido em massa. Sérgio Nunes Computadores e Redes de Comunicação 9
ENIAC (1946) Sérgio Nunes Computadores e Redes de Comunicação 10
UNIVAC (publicidade, 1955) Sérgio Nunes Computadores e Redes de Comunicação 11
Breve História 2ª Geração (1958-1964) Substituição das válvulas pelo transístor. Linguagens de programação de alto nível. Introdução de sistemas operativos. Foram os primeiros computadores com sucesso comercial. FORTRAN, COBOL linguagens de programação. IBM 1401 Sérgio Nunes Computadores e Redes de Comunicação 12
IBM 1401 Sérgio Nunes Computadores e Redes de Comunicação 13
Circuito Impresso Sérgio Nunes Computadores e Redes de Comunicação 14
Breve História 3ª Geração (1965-1971) Utilização do circuito integrado. Minicomputadores versões reduzidas dos mainframes. Redes de computadores. Desenvolvimento das linguagens de programação BASIC e PASCAL. IBM System/360 Sérgio Nunes Computadores e Redes de Comunicação 15
Circuito Integrado Sérgio Nunes Computadores e Redes de Comunicação 16
IBM System/360 Sérgio Nunes Computadores e Redes de Comunicação 17
Breve História Gerações seguintes (1972-) Invenção do microprocessador. Computadores pessoais. Crescimento acentuado (Lei de Moore). Large Scale Integration (70s) 3,000 a 100,000 elementos num chip. Very LSI (desde 80s) 100,000 a 100,000,000. Ultra LSI (hoje) mais de 100,000,000. Sérgio Nunes Computadores e Redes de Comunicação 18
Wafer Sérgio Nunes Computadores e Redes de Comunicação 19
Evolução dos Computadores Ano Nome Área (m2) Potência (watts) Desempenho (soma/seg) Memória KB Custo ajustado a 1991 $/desempenho vs. UNIVAC 1951 UNIVAC I 100 124.500 1.900 48 $4.533.607 1 1964 IBM S360 6 10.000 500.000 64 $3.756.502 263 1965 PDP-8 0,8 500 330.000 4 $59.947 10.855 1976 Cray-1 5,8 60.000 166.000.000 32.768 $7.675.591 21.842 1981 IBM-PC 0,15 150 240.000 256 $3.702 42.105 1991 HP 9000 0,2 500 50.000.000 16.384 $7.400 3.556.188 Hoje PC 0.2 <300 >100.000.000 262.144 <$1.000 >50.000.000 Sérgio Nunes Computadores e Redes de Comunicação 20
Tendências Evolução nas áreas: Processamento Armazenamento Comunicação Sérgio Nunes Computadores e Redes de Comunicação 21
Sérgio Nunes Computadores e Redes de Comunicação 22
Organização Lógica Representação de Dados
Funções Básicas Entrada e Saída Controlo Armazenamento Processamento Sérgio Nunes Computadores e Redes de Comunicação 24
Funções Básicas Armazenamento de dados Capacidade de armazenar os dados de forma permanente ou temporária. Operações de entrada e saída Permitem obter ou disponibilizar dados ao mundo exterior. Existe uma grande diversidade de dispositivos de entrada e saída. Controlo das operações Selecção e ordenação das operações a executar de acordo com regras pré-determinadas (programa). Processamento de dados Execução de operações básicas: aritméticas, lógicas, comparações, pesquisas, etc. Centenas de milhões de operações por segundo Sérgio Nunes Computadores e Redes de Comunicação 25
Representação de Dados Sistema binário Nos computadores digitais, a informação é representada sob a forma de voltagens. Resulta em circuitos mais simples e mais imunes ao ruído. O uso de um sistema decimal implicaria o recurso a 10 valores diferentes e fiáveis para cada dígito. Voltagem Representação do valor 0110010 Tempo Sérgio Nunes Computadores e Redes de Comunicação 26
Representação de Dados Num computador digital, toda a informação é codificada em binário. Símbolos na base 10: 0,1,2,3,...,9. (algarismos árabes) Símbolos na base 2: 0,1. (dígitos binários ou bits) Notação posicional: a mudança de um símbolo da direita para a esquerda, representa um aumento na ordem de magnitude. base 10: aumentos em potências de 10. (1,10,100,1000...) base 2: aumentos em potências de 2. (1,2,4,8...) Representação de valores numéricos: 1101 2 base 2 1x2 3 + 1x2 2 + 0x2 1 + 1x2 0 = 13 247 10 base 10 2x10 2 + 4x10 1 + 7x10 0 = 247 Sérgio Nunes Computadores e Redes de Comunicação 27
Representação de Dados Decimal Binário Decimal Binário 1 1 11 1011 2 10 12 1100 3 11 13 1101 4 100 14 1110 5 101 15 1111 6 110 16 10000 7 111 17 10001 8 1000 18 10010 9 1001 19 10011 10 1010 20 10100 Sérgio Nunes Computadores e Redes de Comunicação 28
Representação de Dados Binário Decimal 101 2 = 1 x 2 2 + 0 x 2 1 + 1 x 2 0 = 4 + 0 + 1 = 5 10 1001 2 = 1 x 2 3 + 0 x 2 2 + 0 x 2 1 + 1 x 2 0 = 9 10 10,11 2 = 1 x 2 1 + 0 x 2 0 + 1 x 2-1 + 1 x 2-2 = 2 + 0 + ½ + ¼ = 2 + ¾ = 2,75 10 Decimal Binário 27 / 2 = 13 + resto 1 13 / 2 = 6 + resto 1 6 / 2 = 3 + resto 0 3 / 2 = 1 + resto 1 1 / 2 = 0 + resto 1 27 10 = 11011 2 Sérgio Nunes Computadores e Redes de Comunicação 29
Representação de Dados Como representar outros símbolos? Utilizando normas de codificação as normas de codificação permitem relacionar um conjunto de símbolos (alfabeto) com outro conjunto, p.e. números ou impulsos eléctricos. Código ASCII: Binário Decimal ASCII Binário Decimal ASCII 00101110 46. 00101110 65 A 00101111 47 / 00101111 66 B 00110000 48 0 00110000 67 C 00110001 49 1 00110001 68 D Outras normas: Unicode, ISO 8859-1 Sérgio Nunes Computadores e Redes de Comunicação 30
Representação de Dados 1 bit (binary digit) 1 byte (binary term) = 8 bits Os prefixos apresentados correspondem, segundo as normas internacionais, a potências na base 10 (kilo 10 3, mega 10 6,..). No entanto, na área da ciência dos computadores, são associados à base 2. 1 kilobyte (KB) = 2 10 bytes = 1 024 bytes 1 megabyte (MB) = 2 20 bytes = 1 024 kilobytes 1 gigabyte (GB) = 2 30 bytes = 1 024 megabytes 1 terabyte (TB) = 2 40 bytes = 1 024 gigabytes 1 petabyte (PB) = 2 50 bytes = 1 024 terabytes 1 exabyte (EB) = 2 60 bytes = 1 024 petabytes 1 Kb = 1 kilobit 1KB = 1 kilobyte Sérgio Nunes Computadores e Redes de Comunicação 31
Representação de Dados 1 símbolo ~ 1 byte 1 livro ~ 1 MB (apenas texto) Biblioteca do Congresso dos EUA ~ 28 TB Informação armazenada anualmente em todo o mundo ~ 5 EB A maioria da nova informação produzida é armazenada em discos duros. Considerando a população mundial, cada pessoa produz em média 800 MB/ano. Chamadas telefónicas por ano (fixo e móvel) ~ 17 EB Cerca de 3,5 vezes mais do que aquela que é armazenada anualmente. World Wide Web (à superfície) ~ 170 TB À superfície, ignorando as bases de dados ( deep web ). Projecto How Much Information? 2003. website: http://www.sims.berkeley.edu/research/projects/how-much-info-2003/ Sérgio Nunes Computadores e Redes de Comunicação 32
Sérgio Nunes Computadores e Redes de Comunicação 33
Organização do Computador
Organização do Computador Unidade Central de Processamento Unidade de Controlo controlo Memória Entrada e Saída Unidade Lógica e Aritmética barramentos dados Sérgio Nunes Computadores e Redes de Comunicação 35
Organização do Computador Unidade Central de Processamento (CPU) Controla a operação do computador e desempenha as funções de processamento dos dados. Muitas vezes referido apenas como o processador. Memória Armazenamento dos programas, dados e resultados. Entrada e Saída (E/S) Transfere os dados entre o computador e o ambiente externo (teclado, monitor, etc.). No CPU Unidade de Controlo (UC): Controla a operação do CPU. Unidade Lógica e Aritmética (ULA): Desempenha as funções lógicas (p.e. comparações) e aritméticas (p.e. adição). Sérgio Nunes Computadores e Redes de Comunicação 36
Processador Executa as instruções indicadas nos programas armazenados em memória. Instruções Conjunto limitado de operações elementares. Adicionar, testar, comunicar com dispositivos de E/S, mover,... As instruções disponíveis dependem da arquitectura do computador. Ciclo de execução (simplificado) Obter próxima instrução Descodificar instrução Executar instrução Escrever resultados Obter Descod. Exec. Gravar Sérgio Nunes Computadores e Redes de Comunicação 37
Processador Exemplo de instruções LOAD A, R1 Mover os conteúdos da posição de memória A para o registo R1. LOAD B, R2 ADD R1, R2, R3 Adicionar o conteúdo do registo R1 com R2 e colocar o resultado em R3. STORE R3, C Armazenar o valor de R3 na posição de memória C. Sérgio Nunes Computadores e Redes de Comunicação 38
Processador Sérgio Nunes Computadores e Redes de Comunicação 39
Processador Em qualquer computador escalar, apenas uma instrução é executada de cada vez. Durante as fases de descodificação e execução, os canais de comunicação (bus) estão livres. Uma forma de aproveitar esta inactividade é através da obtenção antecipada (prefetch) das instruções seguintes. obter 1 executar 1 obter 2 executar 2 obter 3 executar 3 ganho obter 1 obter 2 obter 3 obter 4 obter 5 obter 6 executar 1 executar 2 executar 3 exec. 4 Sérgio Nunes Computadores e Redes de Comunicação 40
Processador Principais características Comprimento da palavra. A palavra corresponde ao número de bits que são tratados como uma unidade durante o processamento interno (ex: O Sun UltraSPARC é um processador de 64 bits ). Velocidade do processador. Para coordenar o funcionamento das partes do processador são usados sinais de relógio. A velocidade do processador corresponde ao número de ciclos de relógio por segundo (hertz) (ex: PC a 2 GHz ). Sérgio Nunes Computadores e Redes de Comunicação 41
Memória A memória pode ser vista como um conjunto de células onde é possível armazenar dados. A cada célula está associado um número de identificação único endereço. Sérgio Nunes Computadores e Redes de Comunicação 42
Memória Principais características Localização Processador, interna, externa (secundária). Capacidade Tamanho da palavra, número de palavras. Método de acesso Sequencial, directo, aleatório, associativo. Desempenho Tempo de acesso, frequência de relógio, taxa de transferência. Tipo físico Semicondutor, magnético, óptico. Características físicas Volátil, permanente. Sérgio Nunes Computadores e Redes de Comunicação 43
Memória Hierarquia de memórias do computador 10 registos 10 3 cache Unidades de capacidade 10 6 10 6 memória principal cache de disco Menor custo por bit Maior capacidade Maiores tempos de acesso 10 9 disco magnético 10 9 banda magnética disco óptico Sérgio Nunes Computadores e Redes de Comunicação 44
Memória Evolução da capacidade dos chips de DRAM. Ano 1980 1983 1986 1989 1992 1996 1999 2002 DRAM Capacidade 64 Kb 256 Kb 1 Mb 4 Mb 16 Mb 64 Mb 256 Mb 1 Gb Sérgio Nunes Computadores e Redes de Comunicação 45
Memória Memória primária (interna) Usada para armazenar dados de utilização frequente. Geralmente volátil. Memória secundária (externa) Dispositivos periféricos, acessíveis ao processador através dos controladores de E/S. Armazenamento Primário ROM RAM ROM PROM EPROM EEPROM SRAM DRAM Armazenamento Secundário Disco magnético Disco óptico (CR-ROM, DVD) Banda magnética Sérgio Nunes Computadores e Redes de Comunicação 46
Disco Magnético Sérgio Nunes Computadores e Redes de Comunicação 47
Entrada e Saída Os controladores de entrada e saída (E/S) são a interface de um computador para o exterior. O módulo de E/S tem duas funções principais: Interface com o processador e memória através dos canais de comunicação do sistema. Interface com cada um dos periféricos instalados através de canais específicos. Categorização de dispositivos externos (periféricos): Interface com Humanos: comunicação com o utilizador. Interface com Máquinas: comunicação com equipamento. Comunicação: comunicação com dispositivos remotos. Sérgio Nunes Computadores e Redes de Comunicação 48
Periféricos Interface com Humanos Teclado, monitor, impressora. Interface com Máquinas Disco magnético, sensor, actuador. Comunicação Modem. Sérgio Nunes Computadores e Redes de Comunicação 49
Monitor CRT Cathode Ray Tube (CRT) Dispositivo de saída mais usado. Resolução máxima: número máximo de pontos individuais. Taxa de refrescamento: número de vezes que a imagem no ecrã é desenhada. Profundidade de cor: número de cores que podem ser desenhadas num ponto. A imagem corresponde a uma matriz de pixels, representados num mapa de bits (bitmap). Sérgio Nunes Computadores e Redes de Comunicação 50
Programação de Computadores Um programa especifica, na sintaxe precisa de uma linguagem de programação, as tarefas que se pretende que o computador realize. Um algoritmo tem o mesmo objectivo de um programa mas não está associado a nenhuma linguagem em particular. Tem como principal função facilitar a comunicação entre humanos. Exemplo: receita de bolo de chocolate. Sérgio Nunes Computadores e Redes de Comunicação 51
Programação 1.Numa taça: 1.Bater: 5 ovos 2. cháv. de chá de açúcar. até obter uma mistura consistente. 2.Acrescentar alternadamente: 2 cháv. de chá de farinha. 1 col. chá de fermento em pó. 1 cháv. de chá de óleo. 1 cháv. de chá de chocolate em pó. 3.Bater até obter uma massa espessa. 4.Acrescentar 1 cháv. de chá de água. 2.Untar forma com manteiga e farinha. 3.Deitar massa na forma. 4.Levar forma ao forno durante 30-40 minutos a 250ºC. Sérgio Nunes Computadores e Redes de Comunicação 52
Programação Linguagem de alto nível (C) compilador Linguagem de montagem assembler Código máquina swap(int v[], int k); { int temp; temp = v[k]; v[k] = v[k+1]; v[k+1] = temp; } swap: multi $2, $5,4 add $2, $4,$2 lw $15, 0($2) lw $16, 4($2) sw $16, 0($2) sw $15, 4($2) jr $31, 00000000101000010000000000011000 00000000100011100001100000100001 10001100011000100000000000000000 10001100111100100000000000000100 10101100111100100000000000000000 10101100011000100000000000000100 00000011111000000000000000001000 Sérgio Nunes Computadores e Redes de Comunicação 53
Linguagens de Programação Sérgio Nunes Computadores e Redes de Comunicação 54
Programação Sérgio Nunes Computadores e Redes de Comunicação 55