Вы находитесь на странице: 1из 62

Universidade Federal de Pelotas

Curso de Cincia da Computao


Introduo Cincia da Computao

Evolues da Computao:
Mquinas e Software
Prof. Andr Desessards Jardim
andre.jardim@inf.ufpel.edu.br

Profa. Ana Marilza Pernas


Prof. Marcelo Schiavon Porto
Prof. Rafael Iankowski Soares
Profa. Lisane Brisolara

Evoluo tecnolgica
A evoluo da computao esteve
sempre associada a evoluo da
tecnologia
Alguns dispositivos foram
histricos
importantes
evoluo

Introduo Cincia da Computao (ICC) Prof. Andr Jardim

marcos
nesta

Evoluo tecnolgica
Rels (eletro-mecnico)
Vlvulas (eletrnico)
Transistor

Circuito integrado
Introduo Cincia da Computao (ICC) Prof. Andr Jardim

Evoluo tecnolgica
Rel

Efeito eletromecnico

Consome muita energia

Ocupa muito espao

Sonora
Calor
Tamanho
Dissipao do calor

Grande nmero de
conexes
muito muito lento
Introduo Cincia da Computao (ICC) Prof. Andr Jardim

Evoluo tecnolgica
Vlvula

Efeito eletrnico
Consome muita energia

Ocupa muito espao

Luz
Calor
Tamanho
Dissipao do calor

Grande nmero de
conexes
muito lento
Introduo Cincia da Computao (ICC) Prof. Andr Jardim

Evoluo tecnolgica
Transistor

Efeito semi-condutor
(bipolar - espacial)
Consome menos energia
Tamanho menor (dezenas por um
comparado valvula)
Menor nmero de conexes
Mais rpido

Introduo Cincia da Computao (ICC) Prof. Andr Jardim

Evoluo tecnolgica
Circuitos Integrados

Semi-condutores
(transistores CMOS planos )
Consome muito, muito
menos energia
Tamanho muito, muito menor
(milhares por um se comparado ao
transistor discreto e bilhes por
um se comparado valvula)
Conexes integradas ao chip
Introduo Cincia da Computao (ICC) Prof. Andr Jardim

Evoluo tecnolgica
Circuitos Integrados

Introduo Cincia da Computao (ICC) Prof. Andr Jardim

Evoluo tecnolgica
Circuitos Integrados

Introduo Cincia da Computao (ICC) Prof. Andr Jardim

Evoluo das mquinas


baco, ... Mquina de Babbage,...
Mquinas mecnicas

Zuse (Z1, Z2, etc), Mark 1 (IBM)


Mquinas com rels

ENIAC
vlvulas

EDVAC
Vlvulas + memria
Introduo Cincia da Computao (ICC) Prof. Andr Jardim

10

Evoluo das mquinas


TX-0
Transistores

4004 (Intel)
CI: circuito integrado
Microprocessadores em chip

Introduo Cincia da Computao (ICC) Prof. Andr Jardim

11

Processadores Intel
Microprocessador 4004 (1971)

Intel
4 bits
Bus: 4 bits
Clock: 108 Khz
Transistores: 2250
Memria: 640 Bytes
Primeiro microprocessador
em um chip

Introduo Cincia da Computao (ICC) Prof. Andr Jardim

12

Processadores Intel
Microprocessador 8008 (1972)

Intel
8 bits
Bus: 8 bits
Clock: 108 Khz
Transistores: 2500
Memria: 16 Kbytes
Primeiro microprocessador
8 bits

Introduo Cincia da Computao (ICC) Prof. Andr Jardim

13

Processadores Intel
Microprocessador
8080 (1974)

Intel
8 bits
Bus: 8 bits
Clock: 2 Mhz
Transistores: 5000
Memria: 64 Kbytes
Primeira CPU de propsito
geral em um chip

Introduo Cincia da Computao (ICC) Prof. Andr Jardim

14

Processadores Intel
Microprocessador
8088 (1979)

Intel
16 bits
Bus: 8 bits
Clock: 4,77-8 Mhz
Transistores: 29.000
Memria: 1 Mbytes
Utilizado no 1 IBM PC
em 1981

Introduo Cincia da Computao (ICC) Prof. Andr Jardim

15

Processadores Intel
Microprocessador 80286 (1982)

Intel
16 bits
Bus: 16 bits
Clock: 8-12 Mhz
Transistores: 134.000
Memria: 16 Mbytes
IBM PC AT

Introduo Cincia da Computao (ICC) Prof. Andr Jardim

16

Processadores Intel
Microprocessador 80386 (1985)

Intel
32 bits
Bus: 32 bits
Clock: 16-33 Mhz
Transistores: 275.000
Memria: 4 Gbytes
Primeira CPU 32 bits
Multitarefa

Introduo Cincia da Computao (ICC) Prof. Andr Jardim

17

Processadores Intel
Microprocessador 80486 (1989)

Intel
32 bits
Bus: 32 bits
Clock: 25-100 Mhz
Transistores: 1.180.000
Memria: 4 Gbytes
Possuia 8 K de memria cache

Introduo Cincia da Computao (ICC) Prof. Andr Jardim

18

Processadores Intel
Microprocessador Pentium (1993)

Intel
32 bits
Bus: 64 bits
Clock: 60-233 Mhz
Transistores: 3.100.000
Memria: 4 Gbytes
2 pipelines (canais de execuo)

Introduo Cincia da Computao (ICC) Prof. Andr Jardim

19

Processadores Intel
Microprocessador Pentium Pro (1995)

Intel
32 bits
Bus: 64 bits
Clock: 150-200 Mhz
Transistores: 3.100.000
Memria: 64 Gbytes

Introduo Cincia da Computao (ICC) Prof. Andr Jardim

20

Processadores Intel
Microprocessador Pentium II (1997)

Intel
32 bits
Bus: 64 bits
Clock: 233-400 Mhz
Transistores: 7.500.000
Memria: 64 Gbytes
2 nveis de cache

Introduo Cincia da Computao (ICC) Prof. Andr Jardim

21

Processadores Intel
Microprocessador Pentium III (1999)

Intel
32 bits
Bus: 64 bits
Clock: 450 M 1.33 Ghz
Transistores: 24.000.000
Memria: 64 Gbytes

Introduo Cincia da Computao (ICC) Prof. Andr Jardim

22

Processadores Intel
Microprocessador Pentium 4 (2000)

Intel
32 bits
Bus: 64 bits
Clock: 1.30 2.20 Ghz
Transistores: 42.000.000

Introduo Cincia da Computao (ICC) Prof. Andr Jardim

23

Processadores Intel
Core 2 Quad (2007)
Intel
582.000.000 transistores
(253.043 vezes mais)
Tecnologia de 65nm
(6.500 vezes menor)
2,66 GHz de freqncia
de
operao
(24.630 vezes mais)

Introduo Cincia da Computao (ICC) Prof. Andr Jardim

24

Processadores Intel
Core i7 (2008)
Intel
64 bits
731.000.000 transistores
Tecnologia de 45 a 32nm
3,5 GHz de frequncia de
operao

Introduo Cincia da Computao (ICC) Prof. Andr Jardim

25

Evolues no software

26

Software
todo e qualquer programa que
esteja sendo processado por um
computador executando tarefas e/ou
instrues das quais resulte um
resultado
Resultado pode ir para uma memria,
ser impresso, ou ser mostrado na tela
Umprogramadecomputador uma
coleo de instrues que descrevem uma
tarefa a ser realizada por umcomputador
Introduo Cincia da Computao (ICC) Prof. Andr Jardim

27

Software
O Software d flexibilidade ao projeto
Permite a comunicao entre o
usurio e o Hardware
hardwar
e

software

usurio

Introduo Cincia da Computao (ICC) Prof. Andr Jardim

28

Evoluo do Software
O software tambm evoluiu
Com a chegada do computador pessoal, a
necessidade por software aumentou
assustadoramente
A necessidade de produzir software sem
necessitar de grandes equipes forou a
evoluo
nas
linguagens
de
programao

Introduo Cincia da Computao (ICC) Prof. Andr Jardim

29

Evoluo do Software

1847 lgebra booleana


1945 Lgica binria (Von Neumann)
1945 1 gerao da linguagem de mquina
1955 2 gerao da linguagens de
programao
1958 FORTRAN, ling. de 3 gerao de alto
nvel
1963 BASIC, popularizao nos
microcomputadores
Introduo Cincia da Computao (ICC) Prof. Andr Jardim

30

Evoluo do Software
1968 Linguagem Pascal
1972 Linguagem C
1975 Incio das linguagens de 4 gerao
e Smaltalk
1978 Ada (baseada em Pascal e
FORTRAN)
1991 Java (pela Sun)
1995 Linguagens visuais (Visual Basic,
Delphi, etc)
Introduo Cincia da Computao (ICC) Prof. Andr Jardim

31

Evoluo do Software
1980 MS-DOS da Microsoft para PC e
compatveis
1982 Planilha eletrnica Lotus
1984 MAC OS
1983 MS Word, processador de textos da
Microsoft
1984 Macintosh OS, com interface grfica
1985 Windows como ambiente operacional
1990 Unix firma-se como ambiente multi-usurio
1992 Windows 3.1 e 3.11
Introduo Cincia da Computao (ICC) Prof. Andr Jardim

32

Evoluo do Software

1993
1995
1998
2001
2007
2008
2009
2012

Windows NT para ambiente de rede


Windows 95
Windows 98
Windows XP, MAC OS X
Windows Vista
Android OS
Windows 7
Windows 8

Introduo Cincia da Computao (ICC) Prof. Andr Jardim

33

Tipos de Software
Podemos classificar os softwares quanto a
sua finalidade como:
Bsico ou
Aplicativo

Podemos classificar os softwares quanto a


distribuio como:
Software livre ou
Software proprietrio

Introduo Cincia da Computao (ICC) Prof. Andr Jardim

34

Software Bsico
Software bsico o conjunto de
softwares que permitem ao usurio criar,
controlar e modificar as aplicaes criadas
Os softwares bsicos so essenciais para
todo computador
Sistema Operacional (SO)
Interface grfica
Linguagens de programao
Utilitrios

Introduo Cincia da Computao (ICC) Prof. Andr Jardim

35

Sistema Operacional (SO)


Quando
o
computador

ligado
ele
automaticamente executa um conjunto de softwares
de inicializao (BIOS)
Em seguida, o sistema operacional carregado
O Sistema Operacional (SO) viabiliza a interao do
usurio com a mquina
Fornece a interface grfica para facilitar a interao

Executa diversas tarefas de gerenciamento que so


transparentes ao usurio
Gerencia o paralelismo das operaes ou simula o
paralelismo para o usurio

Introduo Cincia da Computao (ICC) Prof. Andr Jardim

36

Sistema Operacional (SO)


O Sistema Operacional (SO) uma das camadas de
software mais importantes dos sistemas computacionais
Suas principais funes so:

Gerenciamento de memria

Gerenciamento do processador

Controla o escalonamento de tempo dos processos no processador

O SO no pode deixar nenhum processo morrer de fome (starvation)

Garante um
concorrentes

tempo

de

processamento

todos

os

processos

Gerenciamento de arquivos

Controla o acesso a memria para leitura e escrita

Controla a leitura e escrita de arquivos

Gerenciamento de dispositivos de E/S (entrada e sada)


Introduo Cincia da Computao (ICC) Prof. Andr Jardim

37

Sistema Operacional (SO)


Os SOs se comunicam com o hardware em
linguagem de mquina, e diferentes famlias de
processadores costumam utilizar SOs diferentes
Para PCs, os SOs mais comuns so:
MS-DOS, Windows XP, Vista, Seven
Linux, Unix

Para mquinas da Apple


MaC OS

Para smart phone e tablets


Android
iOS
Windows Phone
Introduo Cincia da Computao (ICC) Prof. Andr Jardim

38

Sistema Operacional (SO)


Interface Grfica

Software que transforma os comandos de um outro software (SO,


por exemplo) em smbolos grficos (cones) e informaes textuais

Todo SO atual para PCs utiliza uma interface grfica

Elementos tpicos em interfaces:

Janelas
cones (smbolos grficos)
Menus
Caixas de dilogos
Check box, etc...

Dispositivos Apontadores

Mouse
Caneta eletrnica, tablet
Dedo (telas sensveis ao toque)
Introduo Cincia da Computao (ICC) Prof. Andr Jardim

39

Sistema Operacional (SO)


Multitarefa e Multithreading
Multitarefa em SOs:

Cooperativa: O SO espera o trmino da execuo de uma


tarefa para enviar uma nova

Preemptiva: O SO envia uma nova tarefa assim que o tempo


de execuo da anterior acaba

Multithreading:

Multitarefa dentro da aplicao

Um
software
pode
simultaneamente

A execuo de multithreads pode ser virtual em sistemas com


apenas uma CPU, ou real, em sistemas de mltiplas CPUs ou
multi-cores

executar

mais

de

Introduo Cincia da Computao (ICC) Prof. Andr Jardim

uma

tarefa

40

Softwares Utilitrios
Softwares que e apoio a soluo de
problemas, que em geral, so comuns a
maioria dos usurios
Anti
vrus,
compactadores
de
arquivos,
verificadores de memria, particionadores de
disco, etc...

Exemplos:
Norton, WinZip, WinRar, PC Tool, etc...

Introduo Cincia da Computao (ICC) Prof. Andr Jardim

41

Softwares Aplicativos
So softwares desenvolvidos para resolver
problemas
especficos,
que
no
necessariamente sejam comuns a maior
parte dos usurios
Editores de texto, players, planilhas de
clculos, desenho, entre outros
Exemplos:
MS-Office, Paint, Winamp, etc...

Introduo Cincia da Computao (ICC) Prof. Andr Jardim

42

Um pouco sobre as
Linguagens de Programao

43

Linguagem de mquina
Umprograma uma coleo de
instrues que descrevem uma tarefa a
ser realizada por umcomputador
Linguagem de mquina formada
pelas instrues primitivas de um
processador (ou computador)
Ou seja, define as instrues que a mquina
pode executar

Introduo Cincia da Computao (ICC) Prof. Andr Jardim

44

Linguagem de Programao
Aumentar a produtividade dos programadores
Facilitar a expresso de intenes quando
comparado com a linguagem de mquina
Linguagens de programao so projetadas
para
prover
abstrao,
facilitando
a
compreenso dos programas por humanos
Programas
escritos
em
linguagens
de
programao so traduzidos para o cdigo de
mquina do computador que executar o
cdigo (independncia de mquina)

Introduo Cincia da Computao (ICC) Prof. Andr Jardim

45

Linguagem de montagem
A Linguagem de montagem constitui uma
evoluo da linguagem de mquina,
substituindo cdigo binrio por instrues e
endereos com smbolos mnemnicos.
Inicialmente chamadas de linguagens
simblicas
Um programa especial, chamado montador,
traduz cdigo em linguagem de montagem
para linguagem de mquina
Introduo Cincia da Computao (ICC) Prof. Andr Jardim

Linguagem de Programao
Chamadas de Linguagem de Alto Nvel
Visam:

aumentar a produtividade dos programadores


facilitar a expresso de intenes quando comparado
com a linguagem de mquina

Linguagens de programao so projetadas


para prover abstrao, facilitando a
compreenso dos programas por humanos
Programas escritos em linguagens de
programao so traduzidos para o cdigo
de mquina do computador que executar o
cdigo (independncia de mquina)
Introduo Cincia da Computao (ICC) Prof. Andr Jardim

LP : Abstrao
Primeira Gerao
Trata-se de umalinguagem de programaoque
compreende as caractersticas da arquitetura do
computador (instrues, registradores, etc)
As instrues so cdigos numricos

Segunda gerao
Embora
no
seja
uma
linguagem
nativa
domicroprocessador, uma linguagem Assembly ainda
deve compreender as caractersticas da arquitetura
domicroprocessador

LP de alto nvel
Mais longe docdigo de mquinae mais prximo
linguagem humana
O programador de uma linguagem de alto nvel no
precisa conhecer caractersticas do processador, pois
essas caractersticas so abstradas na linguagem de
alto nvel
Introduo Cincia da Computao (ICC) Prof. Andr Jardim

48

LP : Abstrao
Geraes
das
programao

linguagens

de

1 gerao: Linguagem em nvel de mquina


2
gerao:
(Assembly)

Linguagem

de

montagem

3 gerao: Linguagem orientada ao usurio


4 gerao: Linguagem orientada a aplicao
5 gerao: Linguagem funcional

Introduo Cincia da Computao (ICC) Prof. Andr Jardim

49

Tradutor de linguagens de
programao
Todas as linguagens de programao, que
no so de linguagem de mquina,
necessitam de um tradutor
O tradutor converte a linguagem de
programao (cdigo fonte) em instrues
em linguagem de mquina (cdigo objeto)
O tradutor em linguagem de montagem
chamado de montador
Em linguagens de alto nvel, os tradutores
so
divididos
em
compiladores
e
interpretadores
Introduo Cincia da Computao (ICC) Prof. Andr Jardim

50

As linguagens ...
ALGOL 60 (ALGOrithmic Language)
Perodo: 1960
Os padres para Algol 60 so estabelecidos juntamente
por cientistas da computao europeus e americanos
BEGIN
FILE F (KIND=REMOTE);
EBCDIC ARRAY E [0:11];
REPLACE E BY "HELLO WORLD!";
WHILE TRUE DO
BEGIN
WRITE (F, *, E);
END;
END.

Introduo Cincia da Computao (ICC) Prof. Andr Jardim

51

As linguagens ...
BASIC (Beginners All-Purpose Symbolic
Instruction Code)

Perodo: 1964
Desenvolvida por John Kemeny e Thomas Kurtz
10 PRINT "Hello World!
20 GOTO 10

Introduo Cincia da Computao (ICC) Prof. Andr Jardim

52

As linguagens ...
SIMULA (Primeira linguagem orientada a
objetos)
Perodo: 1967
Desenvolvida por Ole-Johan Dahl e Kristen
Nygaard no Norwegian Computing
Begin
while 1 = 1 do begin
outtext ("Hello World!");
outimage;
end;
End;

Introduo Cincia da Computao (ICC) Prof. Andr Jardim

53

As linguagens ...
PASCAL
Perodo: 1971
Desenvolvida por Niklaus Wirth
Program Hello (Input, Output);
Begin
Writeln ('Hello World!');
End.

Introduo Cincia da Computao (ICC) Prof. Andr Jardim

54

As linguagens ...
C (sua predecessora possua o nome de B)
Perodo: 1972
Desenvolvida por Dennis Ritchie nos
Laboratrios da Bell
#include <stdio.h>
main(){
for(;;){
printf ("Hello World!\n");
}
}

Introduo Cincia da Computao (ICC) Prof. Andr Jardim

55

As linguagens ...
PROLOG
Perodo: 1972
Desenvolvida por Alain Colmerauer na
Universidade de Marseille
% HELLO WORLD.

Works with Sbp (prolog)

hello :printstring("HELLO WORLD!!!!").


printstring([]).
printstring([H|T]) :- put(H), printstring(T).

Introduo Cincia da Computao (ICC) Prof. Andr Jardim

56

As linguagens ...
ADA
Perodo: 1980
Desenvolvida durante um longo perodo pelo
Departamento de Defesa do EUA para ser
utilizada em controle de processos e aplicaes
embarcadas
with Text_Io; use Text_Io;
procedure hello is
begin
put ("Hello world!");
end hello;

Introduo Cincia da Computao (ICC) Prof. Andr Jardim

57

As linguagens ...
C++
Perodo: 1983
Desenvolvimento da verso orientada a
objetos de C (uma extenso de C) por Bjarne
Stroustrup nos Laboratrios AT&T Bell
#include <iostream.h>
main(){
for(;;){
cout << "Hello World! ";
}
}

Introduo Cincia da Computao (ICC) Prof. Andr Jardim

58

As linguagens ...
Java
Perodo: 1991
Orientada a objetos
Baseada em C
por James Gosling Sun Microsystems
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World");
}
}

Introduo Cincia da Computao (ICC) Prof. Andr Jardim

59

As linguagens ...
http://pt.wikipedia.org/wiki/Linguagem_
de_programa%C3%A7%C3%A3o
http://pt.wikipedia.org/wiki/Anexo:Lista
_de_linguagens_de_programa%C3%A7%C3%A3o
http://startupi.com.br/2014/02/as-linguage
ns-de-programacao-mais-populares-para-2014
/

Introduo Cincia da Computao (ICC) Prof. Andr Jardim

60

LP no Curso
ICC
Ling. Assembly programao do
Neander

Algoritmos e Programao
Programao I
Conceitos de Linguagens de
Programao
Programao Orientada a Objetos
...
Introduo Cincia da Computao (ICC) Prof. Andr Jardim

61

Onde aprender mais ?


[1] Ricardo Fedeli, E. Polloni, F. Peres. Introduo Cincia da
Computao. So paulo: Pioneira Thomson Learning, 2003.
[2] FEDELI, Ricardo. Introduo Cincia da Computao - 2
edio atualizada. ISBN:8522108455.Editora Cengage Learning,
2010.
[3] Apostila UFRGS: Introduo a Informtica Mdulo 1
Conceitos Bsicos
Prof. Maria Livi, Prof. Jos Silveira
[4] Hello Word Home Page.
http://www2.latech.edu/~acm/HelloWorld.shtml

Introduo Cincia da Computao (ICC) Prof. Andr Jardim

62