Introdução a Ciência da Computação Este material é uma adaptação das notas de aula dos professores Edino Fernandes, Juliano Maia, Ricardo Martins e Luciana Guedes
Índice Seção 1 Definições e terminologias Seção 2 Histórico da Computação Seção 3 Arquitetura de computadores Seção 4 Representação da informação
Definições e terminologias Seção 1 Conceitos Hardware X software Noções SO Noções Redes
Conceitos e definições Dado: Pode ser qualquer coisa! Não tem sentido nenhum se estiver sozinho; Informação: São dados processados. Um programa determina o que ele é (Processamento de dados); Informática: computador gerando informações de forma automática. INFORmação automática;
Hardware X Software Hardware: É a parte mecânica e física da máquina, com seus componentes eletrônicos e peças. Software: São conjuntos de procedimentos básicos que fazem que o computador seja útil executando funções. O conjunto de instruções ou ordens é também conhecido como programa.
Tipos de softwares Software Básico: Controla componentes físicos e lógicos do computador, permitindo ao usuário interagir com esses componentes sem a necessidade de conhecimento especializado (baixo nível): Sistemas operacionais (SO); Utilitários: anti-vírus, compactadores, backups,... Linguagens de programação; Software Aplicativo: Desempenham funções específicas para determinadas atividades e usuários: Planilhas eletrônicas, bancos de dados, navegadores.
Linguagem de programação Linguagem: Conjunto de regras e símbolos, obedecendo regras e contendo um vocabulário com o objetivo de produzir comunicação; Linguagem de programação: Linguagem destinada a permitir a comunicação entre o homem e o computador; Assembler; C; Java; Delphi.
Noções Redes Redes: Forma de interligar equipamentos (computadores e periféricos) para que seja possível a troca de dados e o compartilhamento de recursos. Arquitetura cliente servidor (client server): computador central que disponibiliza algum serviço dito servidor; computadores que solicitam informações ao servidor ou utilizam seu processamento ditos clientes. Aplicações Back-End: são aquelas que devem ser rodadas no servidor. Aplicações Front-End: são executadas no cliente.
Histórico da computação Seção 2 Evolução do computador Evolução componentes eletrônicos
Evolução do computador Ábaco calculador decimal operado manualmente foi inventado no oriente médio há milhares de anos Calculadora Mecânica Blaise Pascal (1623-1662) capaz de fazer somas e subtrações.
Evolução do computador Tear Programável (1801) Joseph Marie Jacquard usava cartões perfurados Calculador Analítico (1830) Charles Babbage (1792-1871) Ada Augusta Byron Lady Lovelace moinho Muito a frente do seu tempo, não chegou a ser concluido Usava cartões perfurados (dados e instruções)
Evolução do computador Hollerith Herman Hollerith (1860-1929) Também usava cartões perfurados Tabulação dados do censo Z3 1941 - Konrad Zuse (Alemanha). Primeiro computador digital, automático, programável, de propósito geral, completamente funcional (eletro-mecânico).
Evolução do computador ABC Computer 1942 - John V. Atanasoff / Clifford Berry (EUA) Primeiro protótipo de calculador eletrônico que funcionou nos EUA Colossus 1943 -Alan Turing (Bletchley Park, Inglaterra). Primeiro computador eletrônico programável; aplicação: criptografia; e quebra de códigos
Evolução do computador Harvard Mark 1 1944 -Howard Aiken (Universidade de Harvard -EUA). Primeiro computador eletromecânico automático de grande porte. ENIAC -Eletronic Numerical Integrator and Calculator 1946 -John Mauchly e J. Presper Eckert (Ballistic Research Lab, University of Pennsylvania, EUA). Primeiro computador eletrônico digital de grande porte. Decimal 19000 válvulas 175 kw 5.000 operações por segundo tempo médio entre falhas (MTBF) de 5,6 horas.
Evolução do computador Válvula eletrônica Transistor 1947 -Universidade de Stanford (EUA). primeiro dispositivo eletrônico de estado sólido Transistor moderno
Evolução do computador A máquina de Von Neuman conceito de programa armazenado os programas seriam introduzidos através de cartões perfurados, da mesma forma como se fazia com os dados. revolucionou o conceito de programação de computadores, e é usado até hoje
Evolução do computador Manchester Mark 1 1948 -F.C.Williams, Tom Kilburn e a Max Neuman Royal Society Computing Machine Laboratory (Universidade de Manchester, Inglaterra). Primeiro protótipo de computador eletrônico de programa armazenado. Executou o primeiro programa com sucesso em 21/06/48). EDSAC -Eletronic Delay Storage Automatic Computer 1949 -Maurice Wilkes (Universidade de Cambridge, Inglaterra). Primeiro computador eletrônico digital de programa armazenado de grande porte, totalmente funcional. Executou o primeiro programa com sucesso em 06/05/49.
Evolução do computador UNIVAC I 1949 -Mauchly and Eckert Computer Corporation, depois UNIVAC, depois Unisys. Primeiro computador eletrônico disponível comercialmente usava programa armazenado e um compilador. Aplicação: Processamento das eleições. WHIRLWIND I 1950 -J.Forrester (Massachussets Institute of Technology -MIT, EUA). Primeiro computador para processamento em tempo real
Evolução do computador IBM 701 1953 -IBM Corporation Primeiro computador eletrônico digital IBM. NCR 304 1957 -NCR Corporation. Primeiro computador comercial 100% construído com componentes de estado sólido (transistores).
Evolução do computador IBM 305 1957 -IBM Corporation. Primeiro computador comercial a utilizar unidades de disco com cabeças móveis. PDP -1 1959 -Digital Equipment Corporation. Primeiro mini-computador
Evolução do computador COBOL Common Business Oriented Language 1960 -Conference on Data System Languages CODASYL. Primeira linguagem de programação de computadores para aplicação comercial padronizada. Circuito Integrado - CI 1961 -Fairchild Corporation. Primeiro circuito integrado disponível comercialmente.
Evolução do computador MITS 816 1972 -MITS (Micro Instrumentation and Telemetry Systems). Primeiro microcomputador disponível para uso pessoal. Intel 4004 1971 -Intel Corporation Primeiro microprocessador disponível comercialmente
Evolução do computador ALTO Altair 8800 1973 -Xerox PARC (Palo Alto Research Center). 1975 -Edward Roberts, William Yates e Jim Bybee. Primeiro microcomputador pessoal completo, totalmente funcional, incluindo Monitor. Primeiro microcomputador pessoal produzido industrialmente para venda em massa.
Evolução do computador Apple II IBM PC 1976 -Steve Jobs e Steve Wozniak (Apple Corp.). Primeiro microcomputador pessoal a ter sucesso comercial 1981 -IBM Corp (Boca Raton, FL, EUA). Primeiro microcomputador pessoal IBM; arquitetura aberta; um imenso sucesso comercial.
Evolução do computador
Evolução do computador - Tipos Mainframe Conhecidos dos anos setenta eram computadores de grandes empresas, realizando grandes tarefas e ocupando espaços formidáveis, como salas Em rede São computadores capazes de servir diversas máquinas ao mesmo tempo. Possibilitaram empresas difundirem a utilização do computador entre seus funcionários e setores. Workstation PCs São muito utilizados por pessoas ou empresas que necessitam de um computador veloz e capaz de realizar muito trabalho ao mesmo tempo. Essa é sua principal característica Responsável pelo sucesso da informática entre as pessoas e empresas atualmente. Cada vez mais barato e acessível, realiza as principais tarefas rotineiras e as mais avançadas. Notebooks São computadores portáteis, cabem em uma pasta e são importantes para o trabalho de campo de um serviço ou a movimentação dos seus dados, pois podemos levá-lo a qualquer Palmtop Como o próprio nome diz, cabem na palma da mão e realizam quase todas as tarefas de um PC.
Evolução do computador - Gerações A geração é o resultado da tecnologia aplicada na área de eletrônica. 1 Geração Surgiu em 1945 com o UNIVAC I; Componente eletrônico válvulas; Tempo de Operação: milisegundos (seg); Tamanho: grande; Pouco confiáveis; Poucas horas de funcionamento; Monoprogramáveis; Programados em linguagem de máquina. 2 Geração Surgiu em 1958; Computador mais popular foi o IBM 1401; Componente eletrônico - transistor (SSI e MSI); 100 vezes menor; Não precisava aquecer para funcionar; Consumo menor de energia; tempo de operação; microsegundos (10-6 seg); Auxílio no controle de E/S (surgimento dos discos magnéticos); Monoprogramável; Linguagem assembler; Surgimento do primeiro minicomputador: PDP-5 ($ 120.000).
Evolução do computador - Gerações 3 Geração Surgiu em 1965: IBM 360; Componente eletrônico : Circuito Integrado (LSI); Mais confiáveis; Miniaturização dos componentes; Baixíssimo consumo de energia; Custo muito mais baixo; Menor tamanho; Multiprogramação; IBM 360 - vendeu 30.000 unidades. 4 Geração Surgiu em 1975; Componentes eletrônicos - Circuitos Integrados (LSI e VLSI); Tempo de operação - 0,5 nanosegundos (10-9 seg); Popularização no uso; Tecnologia de FIRMAWARE (Funções do S.O).
Evolução do computador - Gerações 5ª Geração Em fase de estudo Dúvidas quanto à existência Componentes eletrônicos: Circuito integrado (ULSI) Inteligência artificial O hardware e construído visando o software CISC X RISC Muliprocessamento Tempo de operação : pico-segundo (10-12) Memória principal - Gigabytes Memória auxiliar Terabytes
Evolução do computador
Evolução do computador
Evolução do computador
Evolução do computador
Arquitetura de Computadores Seção 3 Arquitetura do conjunto de instruções + Organização da máquina Características de performance e capacidade das principais unidades funcionais. Registradores, Unidade lógica e aritmética, Unidade de controle... Como estas unidades funcionais são conectadas. A natureza das informações trocadas entre componentes. A lógica e os meios pelos quais é controlado este fluxo de informações. Coordenação de Níveis de Abstração: interface entre hardware e software de baixo nível padronização das instruções, linguagem de máquina, etc... Vantagens: diferentes implementações da mesma arquitetura desvantagem: algumas vezes impossibilita o uso de inovações
Arquitetura de Computadores
Arquitetura de Computadores Anatomia de um computador
Arquitetura de Computadores Modernas arquiteturas de conjunto de instruções: Intel (80x86/Pentium/K6/MMX) PowerPC DEC Alpha SGI MIPS ( mainframe ) SUN SPARC HP PA-RISC
Arquitetura de Computadores Nível 5 Nível 4 Nível 3 Nível 2 Nível 1 Nível 0 Nível de linguagem orientada para problemas Nível de linguagem de montagem Nível de sistema operacional Nível convencional de máquina Nível de microprogramação Nível de lógica digital Tradução(compilador) Tradução(montador) Interpretação parcial (sistema operacional) Interpretação (microprograma) Microprogramas são executados diret. pelo HW
Arquitetura de Computadores Principais unidades funcionais do computador Memória PRINCIPAL AUXILIAR Dispositivos de ENTRADA Processador Dispositivos de SAÍDA
Processador Principal unidade do computador (o cérebro); Executa e gerencia todas as operações do computador com o auxílio dos demais dispositivos (memória, periféricos, ); Principal unidade a determinar o poder computacional da máquina; É composto por milhões de transistores. Administrar na memória central (principal/ RAM): programa submetido, os dados transferidos de um elemento ao outro da máquina para processamento
Processador Unidade de controle (UC): Faz com que as instruções sejam processadas: Gerenciamento da memória principal; Requisições as unidades/dispositivos que devem colaborar no processo; Unidade Lógica Aritmética (ULA): Realiza as operações matemáticas (soma, subtração, divisão e multiplicação). Realiza testes lógicos baseados nas instruções de programa (Álgebra Booleana).
Memórias Armazenamento de programas e dados; Local onde o processador: Busca dados a serem processados; Guarda valores intermediários; Envia resultados finais do processamento; Tipos de Memória: Principal: RAM, ROM; Cache; Secundárias: Disco Rígico (HD), discos flexíveis, CD, etc...
Memória Principal - RAM RAM (Random Access Memory) Acesso aleatório: capacidade de acesso a qualquer posição em qualquer momento; Armazena instruções que estão sendo executadas e os dados necessários a sua execução; Memória de leitura e escrita e de rápido acesso; É volátil (na falta de energia elétrica ou desligamento do computador as informações são perdidas).;
Memória Principal - ROM ROM (Read Only Memory) Memória de leitura gravada pelo fabricante; Pouca capacidade de armazenamento; Não-volátil; BIOS (Basic Input Output System) Armazenam informações para iniciar o computador: verificar a memória RAM, iniciar dispositivos e dar início ao processo de boot; CMOS (Complementary Metal-Oxide Semicondutor) Armazena as informações do sistema (setup);
Memória Cache É um tipo de memória RAM; Memória de acesso rápido, porém mais cara; Armazena as instruções e os dados mais requisitados pelo processador; Serve para acelerar o processamento; Pode ser: Cache primária: interna ao processador; Cache secundária: externa ao processador.
Memória Secundária Utilizada para armazenar maior volume de dados; Armazenamento definitivo de programas e dados; Baixo custo, se comparada aos demais tipos de memória; Velocidade de acesso inferior aos demais tipos de memória; Exemplos de Memória Secundária: Disco Rígido (HD Hard Disc); Disco flexível disquetes; Zip-Drive; CDs; Pendrives;
Memórias (Desempenho X Dimensão) Acesso mais rápido Registrador Cache interna Cache externa RAM HD Outros Maior Dimensão
Barramento Comunicação entre UPC e MP Conjunto de condutores elétricos que interligam os diversos componentes do computador e de circuitos eletrônicos que controlam o fluxo dos bits.
Dispositivos de entrada/saída Permite a interação entre o usuário e o computador; Dispositivo de Entrada: Encaminha as solicitações/dados do usuário ao computador; Dispositivo de Saída: Exibe os resultados finais do processamento.
Dispositivos de entrada Convertem dados para um formato manipulável pelo computador; Exemplos de dispositivos de entrada: teclado e mouse; joystick; scanner; microfone; leitor de código de barras; superfícies sensíveis ao toque (touch-screen); sistemas de reconhecimento de voz, etc...
Dispositivos de saída Convertem dados para um formato legível pelo usuário (letras, números, cores, etc...); Exemplos de dispositivos de saída: Monitores de vídeo; Impressoras; Equipamentos de som, sintetizadores de voz, etc...
Portas Conectam periféricos às suas respectivas placas controladoras; Portas Paralelas: impressoras, scanners etc...; Portas Seriais: Fax, Modens externos...; Portas USB : Atualmente, comum para conectar diversos periféricos ao computador.
Arquitetura em níveis
Representação da informação Seção 4 Representação binária Conversão bases Álgebra de Boole
BITs e BYTES BIT: contração de BInary digit Representa um dos valores possíveis em binário, 0 ou 1 0 -> nível baixo, tensão elétrica baixa, falso... 1 -> nível alto, tensão elétrica alta, verdadeiro... Quando o sistema binário começou a ser utilizado, percebeu-se que eram necessários 250 códigos diferentes para representar, com valores diferentes, todos os números, letras maiúsculas, minúsculas e acentuadas e os demais símbolos: 2 8 = 256;
BITs e BYTES BYTE: é um grupo de 8 bits Em um byte a 2 8 = 256 combinações possíveis: Pode-se representar de 00000000 até 11111111
Medidas em Bytes Unidade de Medida Bytes / 1 caractere 1 byte 1 8 bits Espaço 1 kilobyte (KB) 1.024 1024 bytes 1 megabyte (MB) 1.048.576 1024 Kb 1 gigabyte (GB) 1.073.741.824 1024 Mb 1 terabyte (TB) 1,099511628 E 12 1024 Gb
Álgebra de Boole Introduzida em 1854 por George Boole, e até hoje usada para o tratamento sistemático da lógica; Conjunto de operadores e axiomas que são assumidos verdadeiros sem necessidade de prova: Axiomas: Maria tem 25 anos ; Maria não tem 25 anos Principais operações (operações básicas): Adição lógica (OU), multiplicação lógica (E) e Inversão (NÃO).
Álgebra de Boole Adição lógica (operação OU): A operação OU resulta 1 se pelo menos uma das variáveis de entrada vale 1 A B A + B 0 0 0 0 1 1 1 0 1 1 1 1
Álgebra de Boole Multiplicação lógica (operação E): A operação E resulta 0 se pelo menos uma das variáveis de entrada vale 0 A B A. B 0 0 0 0 1 0 1 0 0 1 1 1
Álgebra de Boole Inversão: A operação de inversão resulta no complemento da variável de entrada A A 0 1 1 0