Profs.: Joseluce de Farias Cunha Roberto Medeiros de Faria Ulrich Schiel Carga Horária: 60 h O COMPUTADOR E SUAS UTILIDADES • Substitução de tarefas repetitivas • Tarefas altamente complexas (cálculos científicos e de engenharia) • Processos de tomada de decisão • Informática no Ensino • Projetos de Engenharia e Arquitetura (CAD) • Robótica • Análises estatísticas • Comunicação local e a distância - Internet • Substituição do papel • Interatividade (redes sociais, e-mail, vídeo, música) História: • Ábaco • Blaise Pascal (1623-1667) – Pascaline: máquina de somar e subtrair História: Charles Babbage (1792-1871) – Calculador analítico: uso de cartões perfurados e registradores. Impressora. Herman Hollerith (1860-1929): Uso de cartões perfurados. Censo de 1890. Empresa: IBM. História: Konrad Zuse: computador eletro-mecânico (Z1) – primeira máquina programável. - Aiken – MARC I. 120m2. - ENIAC - 18 mil válvulas e 1.500 relés, pesava 30 toneladas e consumia 140 quilowatts de energia. História: - John von Neumann – arquitetura do computador ~ cérebro humano Computador e Computação • O Hardware • O Software 7 Computador Máquina eletrônica capaz de realizar uma grande variedade de tarefas com rapidez e precisão Computadores processam dados a partir de conjuntos de instruções denominadas programas Um programa é um conjunto especificado/pré- determinado de operações lógicas/aritméticas e fornecer o resultado destas operações 8 Os computadores executam quatro tipos de operações Entrada (Input) Processamento Saída (Processing) (Output) Armazenamento (Storage) Ciclo IPOS 9 Ciclo IPOS Entrada Processamento Saída Armazenamento 10 Sistema de Computação Integração de componentes atuando como uma entidade, com o propósito de processar dados, para a produzir informações 11 Componentes de um Sistema Computacional Peopleware Hardware Software 12 Componentes de um Sistema Computacional Peopleware Componente humana de um sistema de computação, i.e. programadores e usuários 13 Componentes de um Sistema Computacional Hardware Componentes físicas de um sistema de computação, i.e. todos os equipamentos utilizados como teclado, mouse, Unidade Central de Processamento, Unidade de disco, Impressora, etc. 14 Componentes de um Sistema Computacional Software Componente lógica de um sistema de computação, i.e. séries de instruções que fazem o computador funcionar programas do usuário e programas básicos) 15 Unidade Central de Processamento Dispositivos de Entrada Unidade de Controle ULA Dispositivos de Saída Memória Principal Memórias Secundárias 16 Partes funcionais de um computador digital: Unidade de Entrada Obtenção da informação a partir de dispositivos de entrada (e.g. teclado, mouse, entrada de áudio, microfone) Unidade de Saída Apresenta a informação em dispositivos de saída (e.g. monitor, impressora, CD/DVD, áudio) Unidade de Memória Secundária Armazenamento barato, de alta capacidade e longa duração Armazenamento de programas inativos 17 Unidade Central de Processamento – UCP (Central Processing unit - CPU) Supervisão e coordenação das demais unidades que compõem o computado Unidade de Contrôle Unidade Aritmético-Lógica Unidade de Memória Principal (Primária) Acesso rápido, de baixa capacidade e armazenamento da informação obtida pelos dispositivos de entrada 18 Conjunto complexo de circuitos eletrônicos. Executa instruções de programa armazenadas. Duas partes: Unidade de Controle Unidade Lógica e Aritmética (ULA) Memória Central 19 Direciona o sistema do computador a executar instruções de programa armazenadas. Deve comunicar-se com a memória e com a ULA. Envia dados e instruções do armazenamento secundário para a memória, quando necessário. 20 Executa todas as operações aritméticas e lógicas. Operações aritméticas: Adição, subtração, multiplicação, divisão. Operações lógicas: Compara números, letras ou caracteres especiais. Testa uma de três condições: Condição de igualdade (igual a) Condição menor que Condição maior que 21 Dois tipos de armazenamento: Armazenamento primário (memória): Armazena informações temporariamente. A CPU referencia-o tanto para obtenção de instruções de programa como de dados. Armazenamento secundário: Armazenamento de longo prazo. Armazenado em mídia externa; por exemplo, um disco. 22 A CPU não pode processar dados diretamente do disco ou de um dispositivo de entrada: Primeiramente, eles devem residir na memória. A unidade de controle obtém dados do disco e transfere-os para a memória. Dados e instruções permanecem na memória até serem enviados a um dispositivo de saída ou armazenamento, ou o programa ser fechado. 23 Registradores Memória central 24 Campos de armazenamento temporário de alta velocidade. Localizações de armazenamento situadas dentro da CPU. Funcionam sob direção da unidade de controle: Recebem, guardam e transferem Instruções ou dados. Controlam onde a próxima instrução a ser executada ou os dados necessários serão armazenados. 25 Também conhecida como memória primária, memória principal ou memória central. memória de acesso aleatório (RAM). Não faz parte da CPU. Retém dados e instruções para serem processados. Armazena informações somente enquanto o programa está em operação. 26 Quatro etapas são executadas para cada instrução: Ciclo de máquina: a quantidade de tempo necessária para executar uma instrução. Computadores pessoais executam-nas em menos de um bilionésimo de segundo. Supercomputadores executam-nas em menos de um trilionésimo de segundo. Cada CPU tem seu próprio conjunto de instruções: Aquelas instruções as quais a CPU pode entender e executar. 27 1. 2. 3. 4. Captar. Decodificar Executar Armazenar O clock de sistema sincroniza as operações. 28 Também chamado de I-time. 1. A unidade de controle recebe a instrução da memória e a coloca em um registro. 2. A unidade de controle decodifica a instrução e determina qual é a localização na memória para os dados necessários. 29 1. A unidade de controle transfere dados da memória para registros na ULA. 1. 2. A ULA executa instruções relativas aos dados. A unidade de controle armazena o resultado da operação na memória ou em um registro. 30 1. EXEMPLO CHA R1 (carrega a entrada no registrador R1) CHA 2 (carrega a entrada no endereço 2) SUM 2 (soma o valor no endereço 2 ao registrador) PRT R1 (Imprime o conteúdo do registrador R1) 31 Cada localização de memória tem um endereço: Pode conter somente uma instrução ou peça de dados: Um número único, como em uma caixa postal. Quando dados são reescritos na memória, o conteúdo anterior desse endereço é destruído. Referenciado pelo número: As linguagens de programação usam um endereço simbólico (nomeado), tal como Horas ou Salário. 32 Os computadores entendem duas coisas: ligado e desligado. Dados são representados na forma binária: Sistema numérico binário (base 2). Contém somente 2 dígitos: 0 e 1. Corresponde a dois estados: ligado e desligado. 33 Bit Byte Palavra (32 bits ou 64 bits) (~átomo) (~molécula) (~célula) 34 Abreviação de binary digit (dígito binário). Dois valores possíveis: 0 e 1. Nunca pode estar vazio. Unidade básica para armazenar dados: 0 significa desligado; 1 significa ligado. 35 Um grupo de 8 bits. Cada Para texto, armazena um caractere: Pode byte tem 256 (28) valores possíveis. ser letra, dígito ou caractere especial. Dispositivos de memória e armazenamento são medidos em número de bytes. 36 O número de bits que a CPU processa como uma unidade. Tipicamente, um número inteiro de bytes. Quanto maior a palavra, mais potente é o computador. Computadores pessoais tipicamente têm 32 ou 64 bits de extensão de palavras. 37 Kilobyte: 1024 (210) bytes. Megabyte: aproximadamente, um milhão (220) de bytes. Memória de computadores pessoais antigos. Dispositivos de armazenamento portáteis (disquetes, CD-ROMs). Gigabyte: aproximadamente, um bilhão (230) de bytes. Capacidade de memória dos computadores pessoais mais antigos. Dispositivos de armazenamento (discos rígidos). Capacidade de memória de computadores pessoais, mainframes e servidores de rede atuais. Terabyte: aproximadamente, um trilhão (240) de bytes. Dispositivos de armazenamento para sistemas muito grandes ou discos rígidos de armazenamento externo. 38 Provêem uma maneira comum para representar um caractere de dados. Necessários para os computadores poderem intercambiar dados. Esquemas comuns: ASCII EBCDIC Unicode 39 Sigla de American Standard Code for Information Interchange. O padrão mais amplamente usado. Usado virtualmente em todos os computadores pessoais. Exemplos: ASCII(048) = 0, ASCII(065) = A ASCII(135) =ç ASCII(146) = Æ ASCII(185) = ╣ 40 041=)*+,-./012 051=3456789:;< 061==>?@ABCDEF 071=GHIJKLMNOP EXEMPLO: Alt135 = ç 081=QRSTUVWXYZ 091=[\]^_`abcd 101=efghijklmn 111=opqrstuvwx 121=yz{|}~⌂Çüé 131=âäàåçêëèïî 141=ìÄÅÉæÆôöòû 151=ùÿÖÜø£Ø׃á 41 Sigla de Extended Binary Coded Decimal Interchange Code. Usado principalmente em mainframes IBM compatíveis com IBM. e 42 Projetado para acomodar alfabetos com mais de 256 caracteres. Usa 16 bits para representar um caractere. 65.536 valores possíveis. Exige duas vezes mais espaço para armazenar dados. 43 Abriga os componentes eletrônicos do sistema de computador: Placa-mãe (motherboard) Dispositivos de armazenamento 44 Placa de circuitos plana que contém os circuitos do computador. A unidade central de processamento (microprocessador) é o componente mais importante. 45 Memória central (armazenamento temporário) Memórias secundárias (Armazenamento de longo prazo ). Dados não se perdem quando o computador é desligado. discos rígidos (HD), disquetes, DVD-ROMs. 46 Unidade central de processamento impressa em chip de silício. Contém dezenas de milhões de minúsculos transistores. Componentes-chave: Unidade central de processamento. Registradores. Clock do sistema. 47 Comutadores eletrônicos que podem permitir ou não a passagem de corrente elétrica. Se a corrente elétrica passar, o comutador estará ativado, representando um bit 1. Caso contrário, o comutador estará desativado, representando um bit 0. 48 A Intel produz uma família de processadores: Processadores Pentium 4, Pentium Dual Core, Core 2 Duo, i3 e i5, na maioria dos PCs. Processador Celeron e Atom vendidos para PCs de baixo custo. Opteron, Xeon, Itanium, Core 2 Extreme, Core 2 Quad e i7, para estações de trabalho high-end e servidores de rede. Outros processadores: A Cyrix e a AMD produzem microprocessadores compatíveis com Intel. Chips PowerPC são usados principalmente em computadores Macintosh. O microprocessador Alpha, da Compaq, é usado em servidores high-end. 49 RAM e ROM Tecnologias: Memória semicondutora Memória Flash 50 Usada pela maioria dos computadores modernos: Confiável, barata e compacta. Volátil: exige corrente elétrica contínua. Se a corrente for interrompida, os dados se perdem. Semicondutor Complementar de Óxido de Metal – Complementary Metal Oxide Semiconductor (CMOS). Retém informação quando a energia é desligada. Usado para armazenar informações necessárias quando o computador é inicializado. 51 Memória Flash • um chip re-escrevível que, ao contrário de uma memória RAM convencional, preserva o seu conteúdo sem a necessidade de fonte de alimentação Os chips de memória flash assemelham-se aos cartões de crédito. Menores do que uma unidade de disco e requerem menos energia. 52 Memória de Acesso Aleatório – RandomAccess Memory (RAM) Memória Somente de Leitura – Read-Only Memory (ROM) 53 Dados temporários que podem ser acessados aleatoriamente: O endereço de memória 10 pode ser acessado tão rapidamente quanto o endereço de memória 10.000.000. 54 Contém programas e dados registrados permanentemente na memória pela fábrica. Não pode ser alterada pelo usuário. Não-volátil: o conteúdo não desaparecerá quando houver queda de energia. 55 Percursos elétricos paralelos que transportam dados entre a CPU e a memória. Largura de barramento: O número de percursos elétricos para transportar dados. Medida em bits. Velocidade de barramento: Medida em megahertz (MHz). 56 Tipicamente, a mesma largura do tamanho de palavra da CPU. Com um tamanho de barramento maior, a CPU pode: Transferir mais dados simultaneamente: Torna o computador mais rápido. Referenciar números de endereço de memória maiores: Permite mais memória. Suportar um número e uma variedade maiores de instruções. 57 Quanto maior a velocidade de barramento, mais rapidamente os dados viajarão por meio do sistema. Computadores pessoais têm velocidades de barramento de 400 MHz, 533 MHz, 800 MHz ou 1066 MHz. 58 Adiciona dispositivos periféricos ao sistema: Placa de expansão Porta 59 Conectam-se a slots (encaixes) de expansão ou à placa-mãe. São usadas para conectar dispositivos periféricos. 60 Conectores externos para plugar periféricos, como, por exemplo, impressoras. Três tipos de portas: Seriais: transmitem dados à base de um bit a cada vez. Paralelas: transmitem grupos de bits em conjunto, lado a lado. Usadas para dispositivos lentos, como o mouse e o teclado. Usadas para dispositivos mais rápidos, como impressoras e scanners. Porta Universal Serial Bus (USB): Permite conectar muitos dispositivos em série na porta USB. 61 As velocidades de instrução são medidas em segundos: Milissegundo: um milésimo de segundo. Microssegundo: um milionésimo de segundo. Nanossegundo: um bilionésimo de segundo. Computadores Picossegundo: modernos atingiram essa velocidade. um trilionésimo de segundo. 62 Medida da velocidade de clock do sistema: Quantos pulsos eletrônicos o clock produz por segundo. Usualmente, expressa em gigahertz (GHz). Billhões de ciclos de máquina por segundo. Alguns PCs antigos mediam em megahertz (MHz). Uma comparação de velocidades de clock somente é significativa entre microprocessadores idênticos. 63 MIPS – Um Milhão de Instruções por Segundo. Computadores pessoais de alta velocidade podem executar mais de 500 MIPS. Tipicamente, uma medida de desempenho mais acurada do que a velocidade de clock. Megaflop – um milhão de operações em ponto flutuante por segundo. Mede a capacidade do computador para executar operações matemáticas complexas. 64 Uma área de armazenamento temporário: Agiliza a transferência de dados dentro do computador. Memória cache Cache de processador © 2004 by Pearson Education 65 Um pequeno bloco de memória de alta velocidade: Armazena os dados e as instruções usados com mais freqüência e mais recentemente. O microprocessador procura primeiramente na memória cache os dados de que necessita: Transferidos da cache muito mais rapidamente do que da memória. Se não estiverem na cache, a unidade de controle recupera-os da memória. Quanto mais “presença de dados” na cache, mais rápido é o desempenho do sistema. 66 Cache interna (Nível 1) embutida no microprocessador. Acesso mais rápido, porém custo mais elevado. Cache externa (Nível 2) em um chip separado. Incorporada ao processador e alguns microprocessadores atuais. 67 Que usa múltiplos processadores simultaneamente O processador de controle divide o problema em partes: Cada parte é enviada a um processador distinto. Cada processador tem sua própria memória. O processador de controle monta os resultados. Alguns computadores que usam processamento paralelo operam em termos de teraflops: trilhões de instruções com ponto flutuante por segundo. 68 É um conjunto de programas Um programa são instruções eletrônicas que informam ao computador como realizar determinadas tarefas Existem duas classes de software: Software Básico Software Aplicativo 69 O software básico tem como finalidade possibilitar a operação e o uso do computador, seja qual for a aplicação (o foco está na máquina) – o software básico se concentra na necessidades gerais de grande parte dos usuários 70 TIPOS: sistemas operacionais, compiladores, Utilitários: Office Comunicação Compactação SGBD, Tocadores etc. e editores de áudio, vídeo, 71 solução de um problema específico, utilizando o computador como ferramenta (o foco está na aplicação) Exemplos: Folha de pagamento Controle de vendas Venda de passagens Sistema de biblioteca 72 Customizado Aplicações originais desenvolvidas por analistas e programadores Pronto Free (Domínio público, código aberto,..) Shareware 73 Linguagens de Programação Linguagens de baixo nível Primeira geração: Linguagem de máquina Segunda geração: Linguagem de montagem (Assembler) Linguagens de alto nível Terceira geração: Linguagens procedurais Quarta geração: Linguagens aplicativas 74 Linguagens de Programação Linguagens de baixo nível 1ª geração: (exemplo – n-ésimo número de Fibonacci) 8B542408 83FA0077 06B80000 0000C383 FA027706 B8010000 00C353BB 01000000 B9010000 008D0419 83FA0376 078BD98B C84AEBF1 5BC3 75 Linguagens de Programação Linguagem x86 MASM: Linguagens de baixo nível 2ª geração: ESTRUTURA GERAL: [<endereço>]: <instrução> <argumento(s)> fib: mov edx, [esp+8] cmp edx, 0 ja @f mov eax, 0 ret @@: cmp edx, 2 ja @f mov eax, 1 ret @@: push ebx mov ebx, 1 mov ecx, 1 @@: lea eax, [ebx+ecx] cmp edx, 3 jbe @f mov ebx, ecx mov ecx, eax dec edx jmp @b @@: pop ebx ret 76 Linguagens de Programação Linguagens de alto nível unsigned int fib(unsigned int n) { if (n <= 0) return 0; else if (n <= 2) return 1; else { int a,b,c; a = 1; b = 1; while (true) { c = a + b; if (n <= 3) return c; a = b; b = c; n--; } } } } 77 Sistemas Cliente/Servidor Redes locais (LAN) Redes a distância (WAN) Redes de redes (Internet) 78 Mídias Com de Comunicação fio Cabos coaxiais Fibra ótica Sem fio Micro-ondas / Satélite Semfio – IrDA, Bluetooth 79 Padrões de comunicação Protocolo TCP/IP (transporte/rede) HTTP: HyperText Transfer Protocol (aplicação) Topologia da Rede: Estrela Anel Barramento 80 Topologias da Rede: Estrela Anel Barramento 81 Aplicações Aplicações distribuídas Correio eletrônico (e-mail) FAX e FTP Teleconferência A Internet e a Web 82 É uma rede de redes mundial Web (é um sistema de hiper-documentos e serviços interligados na Internet) HTTP: Protocolo de comunicação na Web URL: Endereço de um membro da Internet http://www.dsc.ufcg.edu.br/~icc (protocolo://nome do computador/end local 83 Navegadores Mozilla-Firefox; Chrome; Explorer Mecanismo de busca na WEB Um Banco de Dados de todos endereços da Web indexados por palavras-chave Google, Yahoo, Bing, .. 84 Aplicações Procura por assuntos Comércio eletrônico Pagamentos Serviços Bancários Portais e home-pages Blogs e redes sociais Notícias 85 ned int fib(unsigned int n) { if (n <= 0) return 0; else if (n <= 2) return 1; else { int a,b,c; a = 1; b = 1; while (true) { c = a + b; if (n <= 3) return c; a = b; b = c; n--; } } } EXERCÍCIO 1. Dado a linguagem: LER n (coloca a entrada no endereço n) LER R (coloca a entrada no registrador R) SUB n (subtrai o conteúdo de n de R e coloca o resultado em R) SENEG end se o registrador for negativo, ir para end) ESCREV “texto” (escreve o que está em texto) FIM (encerra o programa) Faça um programa que lê dois números, calcula a diferença e escreve “negativo” ou “positivo” dependendo do resultado 2. Desenhe uma rede de 7 computadores interligados em forma de anel. Suponha que dois deles quebraram, mostre quais dos restantes ainda podem comunicar entre si. 86