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: [email protected] 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 Sérgio Nunes (publicidade, 1955) 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 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 Área (m2) Potência (watts) Desempenho (soma/seg) Memória KB Computadores e Redes de Comunicação Custo ajustado a 1991 $/desempenho vs. UNIVAC 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 Sérgio Nunes Computadores e Redes de Comunicação Processamento 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: – 11012 – 24710 Sérgio Nunes base 2 base 10 1x23 + 1x22 + 0x21 + 1x20 = 13 2x102 + 4x101 + 7x100 = 247 Computadores e Redes de Comunicação 27 Representação de Dados Decimal Sérgio Nunes 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 Computadores e Redes de Comunicação 28 Representação de Dados • Binário Æ Decimal – 1012 = 1 x 22 + 0 x 21 + 1 x 20 = 4 + 0 + 1 = 510 – 10012 = 1 x 23 + 0 x 22 + 0 x 21 + 1 x 20 = 910 – 10,112 = 1 x 21 + 0 x 20 + 1 x 2-1 + 1 x 2-2 = 2 + 0 + ½ + ¼ = 2 + ¾ = 2,7510 • Decimal Æ Binário – – – – – 27 / 2 13 / 2 6/2 3/2 1/2 = 13 =6 =3 =1 =0 + resto 1 + resto 1 + resto 0 + resto 1 + resto 1 – 2710 = 110112 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 – 103, mega – 106, ..). No entanto, na área da ciência dos computadores, são associados à base 2. • • • • • • 1 kilobyte (KB) 1 megabyte (MB) 1 gigabyte (GB) 1 terabyte (TB) 1 petabyte (PB) 1 exabyte (EB) • 1 Kb = 1 kilobit ≠ 1KB = 1 kilobyte Sérgio Nunes = 210 bytes = 220 bytes = 230 bytes = 240 bytes = 250 bytes = 260 bytes = 1 024 bytes = 1 024 kilobytes = 1 024 megabytes = 1 024 gigabytes = 1 024 terabytes = 1 024 petabytes 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 – – • Chamadas telefónicas por ano (fixo e móvel) ~ 17 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. 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 controlo Unidade de Controlo Memória Entrada e Saída Unidade Lógica e Aritmética dados barramentos 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 Sérgio Nunes Obter Descod. Computadores e Redes de Comunicação Exec. Gravar 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 Sérgio Nunes executar 3 Computadores e Redes de Comunicação exec. 4 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 103 Unidades de capacidade 106 registos cache memória principal •Menor custo por bit •Maior capacidade 6 10 109 109 Sérgio Nunes cache de disco •Maiores tempos de acesso disco magnético banda magnética disco óptico Computadores e Redes de Comunicação 44 Memória • Evolução da capacidade dos chips de DRAM. DRAM Ano Capacidade 1980 64 Kb 1983 256 Kb 1986 1 Mb 1989 4 Mb 1992 16 Mb 1996 64 Mb 1999 256 Mb 2002 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 Disco magnético Armazenamento Secundário 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 1 1 1 cháv. de col. chá cháv. de cháv. de chá de farinha. de fermento em pó. chá de óleo. 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) swap(int v[], int k); { int temp; temp = v[k]; v[k] = v[k+1]; v[k+1] = temp; } compilador Linguagem de montagem swap: multi add lw lw sw sw jr $2, $2, $15, $16, $16, $15, $31, $5,4 $4,$2 0($2) 4($2) 0($2) 4($2) assembler Código máquina Sérgio Nunes 00000000101000010000000000011000 00000000100011100001100000100001 10001100011000100000000000000000 10001100111100100000000000000100 10101100111100100000000000000000 10101100011000100000000000000100 00000011111000000000000000001000 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