61
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

Introdução a Ciência da Computação - UDESC - CCT · Noções Redes Redes: Forma de interligar equipamentos ... Primeiro microcomputador pessoal ... Tempo de operação

  • Upload
    buidan

  • View
    216

  • Download
    0

Embed Size (px)

Citation preview

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 terminologiasSeçã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çãoSeçã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 NumericalIntegrator and Calculator

1946 -John Mauchly e J. Presper Eckert(Ballistic Research Lab, University ofPennsylvania, 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

Transistor

1947 -Universidade de Stanford

(EUA).

primeiro dispositivo eletrônico de

estado sólido

Válvula eletrônica

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 StorageAutomatic 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

1973 -Xerox PARC (Palo Alto Research

Center).

Primeiro microcomputador pessoal

completo, totalmente funcional, incluindo

Monitor.

Altair 8800

1975 -Edward Roberts, William Yates e

Jim Bybee.

Primeiro microcomputador pessoal

produzido industrialmente para venda em

massa.

Evolução do computador

Apple II

1976 -Steve Jobs e Steve Wozniak (Apple

Corp.).

Primeiro microcomputador pessoal a ter

sucesso comercial

IBM PC

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

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

PCs

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

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).

A geração é o resultado da tecnologia aplicada na área de eletrônica.

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).

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 - Gerações

Evolução do computador

Evolução do computador

Evolução do computador

Evolução do computador

Arquitetura de ComputadoresSeçã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

Interpretação (microprograma)

Nível de linguagem orientada para problemasNível 5

Nível de linguagem de montagemNível 4

Nível de sistema operacionalNível 3

Tradução(montador)

Tradução(compilador)

Nível convencional de máquinaNível 2

Interpretação parcial (sistema operacional)

Nível de microprogramaçãoNível 1

Microprogramas são executados diret. pelo HW

Nível de lógica digitalNível 0

Arquitetura de Computadores

Processador

Memória• PRINCIPAL

• AUXILIAR

Dispositivos de

ENTRADADispositivos de

SAÍDA

Principais unidades funcionais do computador

Processador

Principal unidade do computador (o cérebro);

Executa e gerencia todas as operações do computadorcom 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 aqualquer posição em qualquer momento;

Armazena instruções que estão sendoexecutadas e os dados necessários a suaexecução;

Memória de leitura e escrita e de rápidoacesso;

É volátil (na falta de energia elétrica oudesligamento do computador as informaçõessã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 deboot;

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)

Cache interna

OutrosHD

RAM

Cache externa

Registrador

Acesso

mais rápido

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 respectivasplacas controladoras; Portas Paralelas:

impressoras, scanners etc...;

Portas Seriais:

Fax, Modens externos...;

Portas USB : Atualmente, comum para conectardiversos periféricos ao computador.

Arquitetura em níveis

Representação da informaçãoSeçã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:

28 = 256;

BITs e BYTES

BYTE: é um grupo de 8 bits

Em um byte a 28 = 256 combinações possíveis:

Pode-se representar de 00000000 até 11111111

Medidas em Bytes

Unidade de Medida

Bytes / 1 caractere

Espaço

1 byte 1 8 bits

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 E12 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