SlideShare uma empresa Scribd logo
Luiz Arthur
                Fundamentos de Programação I              1




Universidade Tecnológica Federal do Paraná – UTFPR

                              Campus:
                           Campo Mourão

                              Professor:
                    Luiz Arthur Feitosa dos Santos

                                E-mail:
                      luiz_arthur@fornet.com.br


Sumário:

 ●   Conceitos sobre computação;
 ●   Evolução dos computadores;
 ●   Hardware;
 ●   Software;
 ●   Sistema Operacional;
Luiz Arthur
                 Fundamentos de Programação I                          2

Definições básicas:

 ●   Computação - Pode ser definida como a busca pela solução de um
     problema, considerando as entradas e algoritmos para resolver o
     problema.


           Entrada            Processamento            Solução



 ●   Ciência da Computação - É o estudo dos algoritmos e suas
     aplicações, bem como das estruturas matemáticas indispensáveis à
     formulação precisa dos conceitos fundamentais da teoria da
     computabilidade e da computação aplicada.

 ●   Informática - O termo informática, vem de “informação automática”. É
     a ciência do tratamento da informação. Informática é mais
     abrangente que Ciência da Computação. Hoje aparecem profissionais
     da área de TI (Tecnologia da Informação) e TIC (Tecnologias da
     Informação e da Comunicação).
Luiz Arthur
                  Fundamentos de Programação I                           3

 ●   Programa - De acordo com o artigo 1° da Lei 9.609/98 (Lei de
     Software), Programa de Computador “é a expressão de um conjunto
     organizado de instruções em linguagem natural ou codificada, contida
     em suporte físico de qualquer natureza, de emprego necessário em
     máquinas automáticas de tratamento da informação, dispositivos,
     instrumentos ou equipamentos periféricos, baseados em técnica digital
     ou análoga, para fazê-los funcionar de modo e para fins
     determinados.” (Instituto Nacional da Propriedade Industrial, 2010).

 ●   Algoritmo - Um algoritmo é uma sequência não ambígua de
     instruções que é executada até que determinada condição se
     verifique. Mais especificamente, em matemática, constitui o conjunto de
     processos (e símbolos que os representam) para efetuar um cálculo.



Qual é a relação sociedade, informática, computação e programação?
   Tente responder isto!
Luiz Arthur
                Fundamentos de Programação I                                4

Evolução dos Computadores:

Inicialmente para se computar e para a evolução da computação havia duas
possibilidades: analógica e digital.

Máquinas analógicas: são baseadas em dispositivos físicos que medem
quantidades contínuas. Este computadores baseavam-se em engrenagens,
peças mecânicas e eletromecânicas, o que acarreta uma certa imprecisão
nos cálculos.


                                 Ábaco
                              Data: 500AC




                               Calculadora
                                Mecânica
                           Blase Pascal ~1642
                                                       Máquina Analítica
                                                    Charles Babage – 1834
                                                Projetado para ser programável.
Luiz Arthur
                  Fundamentos de Programação I                          5

Início da tenologia digital:

 ●   Álgebra de Boole: Em 1854, George Boole publica trabalhos em que
     tenta descobrir leis algébricas para o pensamento. Seu trabalho será a
     base lógica dos cálculos nos futuros dos computadores ele inventa a
     Álgebra de Boole.


Primeira geração – válvulas (1945 – 1955)

O estímulo para o computador eletrônico foi a Segunda Gerra Mundial.
Um dos motivos foi tentar quebrar a criptografia das mensagens de guerra.
Era necessário fazer cálculos mais rápidos para entender as mensagens a
tempo de fazer alguma coisa.

Em 1943 é construído um computador eletrônico chamado de ENIAC
(Eletronic Numeral Integrator And Compute) que consistia de 18 mil
válvulas e 1.500 relés, pesava 30 toneladas e consumia 140 quilowatts de
energia.
Luiz Arthur
                  Fundamentos de Programação I                       6

IAS construído por John von Neumann, que observou que programar
computadores com quantidades imensas de interruptores e cabos era uma
tarefa lenta, tediosa, mecânica e isto podia/devia ser representada em
forma digital na memória do computador, junto com os dados. Também foi
que ao invés aritmética decimal usada no ENIAC, com cada dígito
representado por 10 válvulas, podia ser substituída usando aritmética
binária. O projeto conhecido como máquina de Von Neumann é ainda hoje a
base para quase todos os computadores digitais.


        Memória




                                                             Entrada
                             Unidade Lógica e Aritmética
      Unidade de
       controle
                                    Acumulador
                                                               Saída
Luiz Arthur
                Fundamentos de Programação I                           7

Segunda geração – transistores (1955-1965)

O transistor foi inventado no Bell Labsem 1948 e revolucionou o
computador, o primeiro a utilizar foi o TX-0 (Transistorized eXperimental
Computer 0). Em 1961 apareceu o PDP-1, tinha 4.096 palavras de 18 bits e
podia executar 200 mil instruções por segundo, custava 120 mil dólares e
trouxe o conceito de minicomputador.
Luiz Arthur
                Fundamentos de Programação I                          8

Terceira geração – circuitos integrados (1965-1980)

A invenção de circuito integrado de silício em 1958 permitiu que dezenas
de transistores fossem colocados em um único chip, possibilitando
computadores menores, mais rápidos e mais baratos. Um computador desta
época é o System/360 da IBM que trás o conceito de família de
computadores, que trazia também o conceito de multiprogramação.
Luiz Arthur
                Fundamentos de Programação I                         9

Quarta geração – integração em escala muito grande (1980-?)

Na década de 1980, a VLSI (Very Large Scale Integration) possibilita
colocar dezenas, milhares, milhões de transistores em um único chip.
Isto reduziu tanto o preço de um computador que em 1980 um único
indivíduo poderia ter o seu próprio computador. Computadores Pessoais
(PC's) eram usados para processar textos, montar planilhas, jogos, etc.
Surge o Intel 8080, o Apple II, MS-DOS, interfaces gráficas, Macintosh,
Windows. Surge arquiteturas RISC. O futuro são os computadores
embutidos.




   Intel 8080




   MacBookAir                 Apple II
Luiz Arthur
                   Fundamentos de Programação I                                         10

Histórico de alguns computadores:
Ano    Nome                Comentário
1834   Máquina analítica   Primeira tentativa de construir um computador digital.
1936   ZI                  Primeira máquina de calcular com relés.
1943   COLOSSUS            Primeiro computador eletrônico.
1944   Marki               Primeiro computador dos USA, de uso geral.
1946   ENIAC               A história moderna dos computadores inicia neste.
1949   EDSAC               Primeiro computador com programa armazenado.
1951   Whirlwind           Primeiro computador de tempo real.
1952   IAS/VonNeumann      A maioria das máquinas atuais usam esse projeto.
1960   PDP1/DEC            Primeiro minicomputador (50 vendidos).
1961   1401/IBM            Máquina para pequenos negócios (bem popular).
1962   7094/IBM            Dominou a computação científica (1950).
1963   B5000               Linguagem de alto nível.
1964   360/IBM             Cria o conceito de família.
1964   6600                Primeiro supercomputador.
1965   PDP-8               Minicomputador (50 mil vendidos).
1970   PDP-11              Dominou os minicomputadores (1970).
1974   8080/Intel          Primeiro computador de uso geral (8bits).
1974   CRAY-1              Primeiro computador vetorial.
1978   VAX                 Primeiro supercomputador de 32 bits.
1981   IBM PC              Inicio dos computadores pessoais.
1981   Osborne             Primeiro computador portátil.
1983   Lisa/Apple          Primeiro computador com interface gráfica.
1985   386/Intel           Primeiro 32 bits da linha Pentium.
1985   MIPS                Primeiro RISC.
1987   SPARC/Sun           Primeira estação de trabalho RISC.
1990   RS6000/IBM          Primeira superescalar.
1992   Alpha/DEC           Computador pessoal de 64 bits.
1993   Newton/Apple        Primeiro palmtop.
Luiz Arthur
                  Fundamentos de Programação I       11

Evolução Intel:




    1989 – 486
     Pipeline




                                1993 – Pentiun
                                 Superescalar


    1997 – Pentium II
Luiz Arthur
                     Fundamentos de Programação I                      12




                            2000 – Pentium IV         2006 – Core 2 Duo
1999 – Pentium III




    2008 – Core 2 Quad
                                                2008 - i7
Luiz Arthur
              Fundamentos de Programação I                    13

Qual é o impacto da evolução dos computadores em nossa sociedade?
   Pense sobre isto!
     ● Como os computadores afetaram as guerras?

     ● Como os computadores afetaram os governos?

     ● Como os computadores aferaram a industria?

     ● Como   os computadores influenciaram as pequenas e médias
       empresas?
     ● Como os computadores afetam a vida das pessoas hoje?

     ● Onde estão os computadores hoje?

     ● Qual deve ser o futuro dos computadores?
Luiz Arthur
                 Fundamentos de Programação I                               14

Hardware:

Um sistema computacional é um conjunto de circuitos eletrônicos
interligados, formando por processadores, memórias, registradores,
barramentos, monitores de vídeo, impressoras, mouse, discos magnéticos,
além de outros dispositivos físicos (ou seja, hardware). Todos esses
dispositivos manipulam dados na forma digital (0's e 1's), o que proporciona
uma maneira confiável de representação e transmissão de dados.

De uma forma bem rudimentar todos os componentes de um sistema
computacional são agrupados em três subsistemas básicos, chamados
unidades funcionais:

➢Processador ou Unidade Central de Processamento (UCP ou CPU);
    ➢ Registradores, unidade de controle e unidade lógica aritmética;

➢Memória (cache, principal, secundária);

➢Dispositivos de entrada/saída;

➢Barramento;




Estes subsistemas estão presentes em qualquer tipo de computador digital,
independente da arquitetura ou fabricante.
Luiz Arthur
                Fundamentos de Programação I                          15

Software:

Para que o hardware tenha utilidade prática, deve existir um conjunto de
programas, utilizado como interface entre as necessidades do usuário e as
capacidades do hardware. A utilização de software adequados às diversas
tarefas e aplicações torna o trabalho dos usuários muito mais simples e
eficiente.

O software de computador pode ser dividido, a grosso modo, em duas
espécies: programas de sistema, que gerenciam a operação do
computador em si, e programas aplicativos, que executam o trabalho que
os usuários realmente deseja.


Sistema Operacional:

Um SISTEMA OPERACIONAL, é um conjunto de rotinas executado pelo
processador, de forma semelhante aos programas dos usuários. Sua
principal função é controlar o funcionamento de um computador,
gerenciando a utilização e o compartilhamento dos seus diversos recursos,
como processadores, memórias e dispositivos de entrada e saída.
Luiz Arthur
                Fundamentos de Programação I                       16

Sem o Sistema Operacional, um usuário para interagir com o
computador deveria conhecer profundamente diversos detalhes sobre
o hardware do equipamento, o que tornaria seu trabalho lento e com
grandes possibilidades de erros.

O Sistema Operacional desta forma tem por objetivo funcionar como uma
interface entre o usuário e o computador, tornando sua utilização mais
simples, rápida e segura.
Luiz Arthur
                  Fundamentos de Programação I                       17

Tipos de Sistemas Operacionais

Os tipos de Sistemas Operacionais e a sua evolução estão relacionados
diretamente com a evolução do hardware e das aplicações por ele
suportadas. Os principais são:

 ●   Sistema   Monoprogramável/Monotarefa;
 ●   Sistema   Multiprogramáveis/Multitarefa;
 ●   Sistema   de tempo compartilhando;
 ●   Sistema   com Múltiplos Processadores;

Há muitos anos tornou-se bastante evidente a necessidade de encontrar uma
maneira de isolar os programadores da complexidade do hardware. A
maneira com que isso se desenvolveu gradualmente foi colocar uma camada
de software por cima do hardware básico para gerenciar todas as partes do
sistema e oferecer ao usuário uma interface ou máquina virtual que é mais
fácil de entender e de programar. Essa camada de software é o Sistema
Operacional.

Nos primeiros sistemas computacionais, o ato de programar era bastante
complicado, já que o programador deveria possuir conhecimento da
arquitetura da máquina e programar em painéis através de fios. Esses
programas eram desenvolvidos em linguagem de máquina e carregados
diretamente na memória principal para execução
Luiz Arthur
                 Fundamentos de Programação I                          18

Inicio das linguagens de programação:

Com o surgimento das primeiras linguagens de montagem ou
assembly e das linguagens de alto nível, o programador deixou de se
preocupar com muitos aspectos pertinentes ao hardware, como em qual
região da memória o programa deveria ser carregado ou quais endereços de
memória seriam reservados para as variáveis. A utilização dessas linguagens
facilitou a construção de programas, a documentação e a manutenção.

Tradutor:

Apesar das inúmeras vantagens proporcionadas pelas linguagens de
montagem e de alto nível, os programas escritos nessas linguagens não
estão prontos para ser diretamente executados pelo processador (programa-
fonte). Para isso, eles têm de passar por uma etapa de conversão, onde
toda representação simbólica das instruções é traduzida para código de
máquina. Esta conversão é realizada por um utilitário denominado tradutor.

O módulo gerado pelo tradutor é denominado módulo-objeto, que apesar
de estar em código de máquina, na maioria das vezes não pode ser ainda
executado. Isso ocorre em função de um programa poder chamar sub-rotinas
externas, e, neste caso, o tradutor não tem como associar o programa
principal às sub-rotinas chamadas. Esta função é realizada por outro
utilitário denominado linker.
Luiz Arthur
                  Fundamentos de Programação I                               19

Linker

O linker, ou editor de ligação, é o utilitário responsável por gerar, a partir de
um ou mais módulos-objetos, um único programa executável. Suas funções
básicas são resolver todas as referências simbólicas existentes entre os
módulos e reservar memória para a execução do programa.

Para resolver todas as referências a símbolos, o linker também pode
pesquisar em bibliotecas do sistema ou do próprio usuário.

Bibliotecas são arquivos que contém diversos módulos-objetos e/ou
definições de símbolos.

Loader

O loader, ou carregador, é o utilitário responsável por carregar na memória
principal um programa para ser executado. O procedimento de carga varia
com o código gerado pelo linker.
Luiz Arthur
                 Fundamentos de Programação I                         20

Compilador:

O compilador é o utilitário responsável por gerar, a partir de um programa
escrito em linguagem de alto nível, um programa em linguagem de máquina
não executável. As linguagens de alto nível, como Pascal, FORTRAN e
COBOL, não têm nenhuma relação direta com a máquina, ficando essa
preocupação exclusivamente com o compilador.

Os programadores de alto nível devem se preocupar apenas com o
desenvolvimento de suas aplicações, não tendo que se envolver com
detalhes sobre a arquitetura do processador. Assim, os programas-
fontes pode ser portados entre computadores de diversos fabricantes, desde
que existam padrões para a sintaxe da linguagem. Isso permite o
desenvolvimento de aplicações independentes de equipamento.

Um compilador é um utilitário que opera de modo integrado aos
componentes do sistema de programação disponíveis, sob a supervisão do
sistema operacional. Podemos visualizar, então, o compilador como uma
interface entre o sistema operacional e o usuário, de maneira que é
possível acessar diversos serviços do sistema.
Luiz Arthur
                 Fundamentos de Programação I                          21

Interpretador

O interpretador é considerado um tradutor que não gera módulo-objeto. A
partir de um programa-fonte escrito em linguagem de alto nível, o
interpretador, durante a execução do programa, traduz cada instrução e a
executa imediatamente. Algumas linguagens tipicamente interpretadas
são o Basic e o Perl.

A maior desvantagem na utilização de interpretadores é o tempo gasto na
tradução das instruções de um programa toda vez que este for executado, já
que não existe a geração de um código executável. A vantagem é permitir a
implementação de tipos de dados dinâmicos, ou seja, que podem mudar de
tipo durante a execução do programa, aumentando assim, sua flexibilidade.


Tente responder:

Quais são as vantagens e desvantagens da linguagem de alto nível?

Quais são as     semelhanças     e   diferenças   entre   interpretador   e
compilador?
Luiz Arthur
                Fundamentos de Programação I                        22

Depurador

O desenvolvimento de programas está sujeito a erros de lógica,
independente de metodologias utilizadas pelo programador. A depuração é
um dos estágios desse desenvolvimento e a utilização de ferramentas
adequadas é essencial para acelerar o processo        de correção dos
programas. O depurador (debugger) é o utilitário que permite ao usuário
acompanhar toda a execução de um programa a fim de detectar erros
na sua lógica.


O depurador oferece ao usuário recursos como:

➢Acompanhar a execução de um programa instrução por instrução;
➢Possibilitar a alteração e visualização do conteúdo de variáveis;

➢Implementar     pontos de paradas dentro do programa, de forma que,
durante a execução, o programa pare nesses pontos;
➢Especificar   que, toda vez que o conteúdo de uma variável for
modificado, o programa envie uma mensagem (watchpoint).
Luiz Arthur
                  Fundamentos de Programação I                              23

Interpretador de Comandos e Linguagem de Controle

O interpretador de comandos, ou shell, permite que o usuário se comunique
com o sistema operacional. Através de comandos simples, o usuário pode ter
acesso a diversas funções e rotinas específicas do sistema. Quando digitados
pelos usuários, os comandos são interpretados pelo shell, que, ao reconhecer
a linha de comando, verifica sua sintaxe, envia mensagens de aviso ou erro e
faz chamadas a rotinas do sistema. Desta forma, o usuário dispõe de uma
interface direta com o sistema operacional para realizar tarefas como
criar, ler ou eliminar arquivos, consultar diretórios ou verificar a data e hora
armazenada no sistema.

O conjunto de comandos disponíveis pelo interpretador é conhecido como
linguagem de controle ou linguagem de comando. Algumas linguagens são
poderosas a ponto de oferecer a possibilidade de criar programas com
estruturas de decisão e iteração. Esses programas nada mais são do que
uma sequência de comandos armazenados em um arquivo texto,
denominados arquivos de comandos ou shell scripts, que podem ser
executados sempre que necessário.

Em geral, o interpretador de comandos não faz parte do sistema
operacional. Isto possibilita uma maior flexibilidade na criação de diferentes
linguagens de controle para um mesmo sistema operacional.
Luiz Arthur
               Fundamentos de Programação I                       24

Referência:


TANENBAUM, Andrew S. Organização Estruturada de Computadores.
5ed. Editora Prentice-Hall. 2006.

GONÇALVES, Rogério A. Fundamentos de Programação I. UTFPR. 2010.

MACHADO, Francis B. Arquitetura de Sistemas Operacionais. 4 ed.
Editora LTC. 2007.

Instituto Nacional da Propriedade Industrial. O que é programa de
Computador.                          Disponível                   em:
http://www.inpi.gov.br/menu-esquerdo/programa/pasta_oque Acessado em:
agosto de 2010.
Luiz Arthur
       Fundamentos de Programação I       25

Fim!

Mais conteúdo relacionado

Mais procurados

Evolução do Computador
Evolução do ComputadorEvolução do Computador
Evolução do ComputadorRui Filipe
 
Evolução dos Computadores
Evolução dos ComputadoresEvolução dos Computadores
Evolução dos Computadoresstordehistoria
 
História e Evolução dos Computadores
História e Evolução dos ComputadoresHistória e Evolução dos Computadores
História e Evolução dos ComputadoresAna Sêco
 
Aula 01 introdução a computação
Aula 01 introdução a computaçãoAula 01 introdução a computação
Aula 01 introdução a computaçãoMatheus Brito
 
Evolução dos Computadores
Evolução dos ComputadoresEvolução dos Computadores
Evolução dos ComputadoresLucky Fox
 
Aula 4 - História e evolução dos Computadores
Aula 4 - História e evolução dos ComputadoresAula 4 - História e evolução dos Computadores
Aula 4 - História e evolução dos ComputadoresVitor Hugo Melo Araújo
 
Resumo 5 semana
Resumo 5 semanaResumo 5 semana
Resumo 5 semanaTutorainfo
 
Aula 01 - Módulo I
Aula 01 - Módulo IAula 01 - Módulo I
Aula 01 - Módulo IGrendene S/A
 
História dos Computadores
História dos ComputadoresHistória dos Computadores
História dos ComputadoresJoão Monteiro
 
Aula 2 - Introdução aos conceitos básicos
Aula 2 - Introdução aos conceitos básicosAula 2 - Introdução aos conceitos básicos
Aula 2 - Introdução aos conceitos básicosVitor Hugo Melo Araújo
 
Introdução a Sistemas Computacionais - Conceitos basicos
Introdução a Sistemas Computacionais - Conceitos basicosIntrodução a Sistemas Computacionais - Conceitos basicos
Introdução a Sistemas Computacionais - Conceitos basicosrosenclever
 
Microprocessadores ii arquitetura
Microprocessadores ii arquiteturaMicroprocessadores ii arquitetura
Microprocessadores ii arquiteturaMauro Pereira
 
O futuro da informática e unidades de armazenamento
O futuro da informática e unidades de armazenamentoO futuro da informática e unidades de armazenamento
O futuro da informática e unidades de armazenamentoLuiz Eduardo
 

Mais procurados (19)

Arquitetura de computadores
Arquitetura de computadoresArquitetura de computadores
Arquitetura de computadores
 
Evolução do Computador
Evolução do ComputadorEvolução do Computador
Evolução do Computador
 
Evolução dos Computadores
Evolução dos ComputadoresEvolução dos Computadores
Evolução dos Computadores
 
História e Evolução dos Computadores
História e Evolução dos ComputadoresHistória e Evolução dos Computadores
História e Evolução dos Computadores
 
Aula 01(icc)
Aula 01(icc)Aula 01(icc)
Aula 01(icc)
 
História do Computador
História do ComputadorHistória do Computador
História do Computador
 
Aula 02 - Evolução dos computadores - Operador de Microcomputador - SENAI
Aula 02 - Evolução dos computadores - Operador de Microcomputador - SENAIAula 02 - Evolução dos computadores - Operador de Microcomputador - SENAI
Aula 02 - Evolução dos computadores - Operador de Microcomputador - SENAI
 
Aula 01 introdução a computação
Aula 01 introdução a computaçãoAula 01 introdução a computação
Aula 01 introdução a computação
 
Evolução dos Computadores
Evolução dos ComputadoresEvolução dos Computadores
Evolução dos Computadores
 
Apostila de hardware
Apostila de hardwareApostila de hardware
Apostila de hardware
 
Aula 4 - História e evolução dos Computadores
Aula 4 - História e evolução dos ComputadoresAula 4 - História e evolução dos Computadores
Aula 4 - História e evolução dos Computadores
 
Resumo 5 semana
Resumo 5 semanaResumo 5 semana
Resumo 5 semana
 
Aula 01 - Módulo I
Aula 01 - Módulo IAula 01 - Módulo I
Aula 01 - Módulo I
 
História dos Computadores
História dos ComputadoresHistória dos Computadores
História dos Computadores
 
Aula 2 - Introdução aos conceitos básicos
Aula 2 - Introdução aos conceitos básicosAula 2 - Introdução aos conceitos básicos
Aula 2 - Introdução aos conceitos básicos
 
Introdução a Sistemas Computacionais - Conceitos basicos
Introdução a Sistemas Computacionais - Conceitos basicosIntrodução a Sistemas Computacionais - Conceitos basicos
Introdução a Sistemas Computacionais - Conceitos basicos
 
Informatica
InformaticaInformatica
Informatica
 
Microprocessadores ii arquitetura
Microprocessadores ii arquiteturaMicroprocessadores ii arquitetura
Microprocessadores ii arquitetura
 
O futuro da informática e unidades de armazenamento
O futuro da informática e unidades de armazenamentoO futuro da informática e unidades de armazenamento
O futuro da informática e unidades de armazenamento
 

Destaque

Introducao Computacao Slide 1
Introducao Computacao Slide 1Introducao Computacao Slide 1
Introducao Computacao Slide 1Duílio Andrade
 
Introdução a Computadores
Introdução a ComputadoresIntrodução a Computadores
Introdução a ComputadoresMicael Coutinho
 
Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...
Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...
Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...Luiz Arthur
 
Detecção de alertas de segurança em redes de computadores usando redes sociai...
Detecção de alertas de segurança em redes de computadores usando redes sociai...Detecção de alertas de segurança em redes de computadores usando redes sociai...
Detecção de alertas de segurança em redes de computadores usando redes sociai...Luiz Arthur
 
Evaluating the Utilization of Twitter Messages as a Source of Security Alerts
Evaluating the Utilization of Twitter Messages as a Source of Security AlertsEvaluating the Utilization of Twitter Messages as a Source of Security Alerts
Evaluating the Utilization of Twitter Messages as a Source of Security AlertsLuiz Arthur
 
Bibliografia recomendada-seguranca
Bibliografia recomendada-segurancaBibliografia recomendada-seguranca
Bibliografia recomendada-segurancaLuiz Arthur
 
Apresentação Primeiro Dia
Apresentação Primeiro DiaApresentação Primeiro Dia
Apresentação Primeiro DiaLuiz Arthur
 
match making e propaganda na web
match making e propaganda na webmatch making e propaganda na web
match making e propaganda na webLuiz Arthur
 
Invasao kernel.org
Invasao kernel.orgInvasao kernel.org
Invasao kernel.orgLuiz Arthur
 
Análise de Mensagens de Segurança Postadas no Twitter
Análise de Mensagens de Segurança Postadas no TwitterAnálise de Mensagens de Segurança Postadas no Twitter
Análise de Mensagens de Segurança Postadas no TwitterLuiz Arthur
 
Palestra - Fitem 2009 - Ferramentas de segurança OpenSource
Palestra - Fitem 2009 - Ferramentas de segurança OpenSourcePalestra - Fitem 2009 - Ferramentas de segurança OpenSource
Palestra - Fitem 2009 - Ferramentas de segurança OpenSourceLuiz Arthur
 
Palestra Ferramentas de Segurança Open Source v.2
Palestra Ferramentas de Segurança Open Source v.2Palestra Ferramentas de Segurança Open Source v.2
Palestra Ferramentas de Segurança Open Source v.2Luiz Arthur
 
Bibliografia recomendada-programacao-python
Bibliografia recomendada-programacao-pythonBibliografia recomendada-programacao-python
Bibliografia recomendada-programacao-pythonLuiz Arthur
 
Bibliografia recomendada-redes
Bibliografia recomendada-redesBibliografia recomendada-redes
Bibliografia recomendada-redesLuiz Arthur
 
Palestra mau uso da tecnologia
Palestra mau uso da tecnologiaPalestra mau uso da tecnologia
Palestra mau uso da tecnologiaLuiz Arthur
 
UTFPR-inventario-patrimonio-laboratorio-e105
UTFPR-inventario-patrimonio-laboratorio-e105UTFPR-inventario-patrimonio-laboratorio-e105
UTFPR-inventario-patrimonio-laboratorio-e105Luiz Arthur
 
Introdução à Computação Aula 01 - Apresentação
Introdução à Computação  Aula 01 - ApresentaçãoIntrodução à Computação  Aula 01 - Apresentação
Introdução à Computação Aula 01 - ApresentaçãoLeinylson Fontinele
 
Bibliografia recomendada - programação C
Bibliografia recomendada - programação CBibliografia recomendada - programação C
Bibliografia recomendada - programação CLuiz Arthur
 
Aula introdução à lógica matemática
Aula introdução à lógica matemáticaAula introdução à lógica matemática
Aula introdução à lógica matemáticaAristóteles Meneses
 
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...Luiz Arthur
 

Destaque (20)

Introducao Computacao Slide 1
Introducao Computacao Slide 1Introducao Computacao Slide 1
Introducao Computacao Slide 1
 
Introdução a Computadores
Introdução a ComputadoresIntrodução a Computadores
Introdução a Computadores
 
Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...
Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...
Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...
 
Detecção de alertas de segurança em redes de computadores usando redes sociai...
Detecção de alertas de segurança em redes de computadores usando redes sociai...Detecção de alertas de segurança em redes de computadores usando redes sociai...
Detecção de alertas de segurança em redes de computadores usando redes sociai...
 
Evaluating the Utilization of Twitter Messages as a Source of Security Alerts
Evaluating the Utilization of Twitter Messages as a Source of Security AlertsEvaluating the Utilization of Twitter Messages as a Source of Security Alerts
Evaluating the Utilization of Twitter Messages as a Source of Security Alerts
 
Bibliografia recomendada-seguranca
Bibliografia recomendada-segurancaBibliografia recomendada-seguranca
Bibliografia recomendada-seguranca
 
Apresentação Primeiro Dia
Apresentação Primeiro DiaApresentação Primeiro Dia
Apresentação Primeiro Dia
 
match making e propaganda na web
match making e propaganda na webmatch making e propaganda na web
match making e propaganda na web
 
Invasao kernel.org
Invasao kernel.orgInvasao kernel.org
Invasao kernel.org
 
Análise de Mensagens de Segurança Postadas no Twitter
Análise de Mensagens de Segurança Postadas no TwitterAnálise de Mensagens de Segurança Postadas no Twitter
Análise de Mensagens de Segurança Postadas no Twitter
 
Palestra - Fitem 2009 - Ferramentas de segurança OpenSource
Palestra - Fitem 2009 - Ferramentas de segurança OpenSourcePalestra - Fitem 2009 - Ferramentas de segurança OpenSource
Palestra - Fitem 2009 - Ferramentas de segurança OpenSource
 
Palestra Ferramentas de Segurança Open Source v.2
Palestra Ferramentas de Segurança Open Source v.2Palestra Ferramentas de Segurança Open Source v.2
Palestra Ferramentas de Segurança Open Source v.2
 
Bibliografia recomendada-programacao-python
Bibliografia recomendada-programacao-pythonBibliografia recomendada-programacao-python
Bibliografia recomendada-programacao-python
 
Bibliografia recomendada-redes
Bibliografia recomendada-redesBibliografia recomendada-redes
Bibliografia recomendada-redes
 
Palestra mau uso da tecnologia
Palestra mau uso da tecnologiaPalestra mau uso da tecnologia
Palestra mau uso da tecnologia
 
UTFPR-inventario-patrimonio-laboratorio-e105
UTFPR-inventario-patrimonio-laboratorio-e105UTFPR-inventario-patrimonio-laboratorio-e105
UTFPR-inventario-patrimonio-laboratorio-e105
 
Introdução à Computação Aula 01 - Apresentação
Introdução à Computação  Aula 01 - ApresentaçãoIntrodução à Computação  Aula 01 - Apresentação
Introdução à Computação Aula 01 - Apresentação
 
Bibliografia recomendada - programação C
Bibliografia recomendada - programação CBibliografia recomendada - programação C
Bibliografia recomendada - programação C
 
Aula introdução à lógica matemática
Aula introdução à lógica matemáticaAula introdução à lógica matemática
Aula introdução à lógica matemática
 
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...
 

Semelhante a 01 programação - introdução computação

Historia da Informática
 Historia da Informática Historia da Informática
Historia da InformáticaFran Plautz
 
A história dos computadores
A história dos computadoresA história dos computadores
A história dos computadoresAndré Dias
 
Princípios de sistema de informação parte 1
Princípios de sistema de informação parte 1Princípios de sistema de informação parte 1
Princípios de sistema de informação parte 1giovani1
 
Apostila capitulo1 exercicio_1_site
Apostila capitulo1 exercicio_1_siteApostila capitulo1 exercicio_1_site
Apostila capitulo1 exercicio_1_siteSuperTec1
 
Aula 02 história dos computadores
Aula  02   história dos computadoresAula  02   história dos computadores
Aula 02 história dos computadoresDaniel Moura
 
Informatica básica
Informatica básicaInformatica básica
Informatica básicaIndicaCursos
 
STC-TIC-DR2Evolucao Do Pc- Marco
STC-TIC-DR2Evolucao Do Pc- MarcoSTC-TIC-DR2Evolucao Do Pc- Marco
STC-TIC-DR2Evolucao Do Pc- Marcomega
 
Inform 9º ano
Inform 9º anoInform 9º ano
Inform 9º anoluizcviola
 
Evolução dos computadores
Evolução dos computadoresEvolução dos computadores
Evolução dos computadoresAntonio Cabral
 
Geração dos Computadores
Geração dos ComputadoresGeração dos Computadores
Geração dos ComputadoresRicardo Andrade
 
Geraodoscomputadoresquirion 090829220718-phpapp02
Geraodoscomputadoresquirion 090829220718-phpapp02Geraodoscomputadoresquirion 090829220718-phpapp02
Geraodoscomputadoresquirion 090829220718-phpapp02olecramhacker
 
aula01_computador_Info_Cont.pdf
aula01_computador_Info_Cont.pdfaula01_computador_Info_Cont.pdf
aula01_computador_Info_Cont.pdfAntonio Lobato
 
A evolução dos computadores
A evolução dos computadoresA evolução dos computadores
A evolução dos computadoresMarcos Melo
 

Semelhante a 01 programação - introdução computação (20)

História do computador
História do computadorHistória do computador
História do computador
 
Historia da Informática
 Historia da Informática Historia da Informática
Historia da Informática
 
A história dos computadores
A história dos computadoresA história dos computadores
A história dos computadores
 
Princípios de sistema de informação parte 1
Princípios de sistema de informação parte 1Princípios de sistema de informação parte 1
Princípios de sistema de informação parte 1
 
Apostila capitulo1 exercicio_1_site
Apostila capitulo1 exercicio_1_siteApostila capitulo1 exercicio_1_site
Apostila capitulo1 exercicio_1_site
 
Aula 02 história dos computadores
Aula  02   história dos computadoresAula  02   história dos computadores
Aula 02 história dos computadores
 
Informatica
InformaticaInformatica
Informatica
 
Informatica básica
Informatica básicaInformatica básica
Informatica básica
 
STC-TIC-DR2Evolucao Do Pc- Marco
STC-TIC-DR2Evolucao Do Pc- MarcoSTC-TIC-DR2Evolucao Do Pc- Marco
STC-TIC-DR2Evolucao Do Pc- Marco
 
Aula 02 evolução do computador
Aula 02   evolução do computadorAula 02   evolução do computador
Aula 02 evolução do computador
 
Inform 9º ano
Inform 9º anoInform 9º ano
Inform 9º ano
 
Evolução dos computadores
Evolução dos computadoresEvolução dos computadores
Evolução dos computadores
 
Evolução dos computadores
Evolução dos computadoresEvolução dos computadores
Evolução dos computadores
 
Geração dos Computadores
Geração dos ComputadoresGeração dos Computadores
Geração dos Computadores
 
Geraodoscomputadoresquirion 090829220718-phpapp02
Geraodoscomputadoresquirion 090829220718-phpapp02Geraodoscomputadoresquirion 090829220718-phpapp02
Geraodoscomputadoresquirion 090829220718-phpapp02
 
aula01_computador_Info_Cont.pdf
aula01_computador_Info_Cont.pdfaula01_computador_Info_Cont.pdf
aula01_computador_Info_Cont.pdf
 
Evolucao (2)
Evolucao (2)Evolucao (2)
Evolucao (2)
 
Evolucao stc
Evolucao stcEvolucao stc
Evolucao stc
 
Evolucao
EvolucaoEvolucao
Evolucao
 
A evolução dos computadores
A evolução dos computadoresA evolução dos computadores
A evolução dos computadores
 

Mais de Luiz Arthur

Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?
Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?
Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?Luiz Arthur
 
Desafios da cibersegurança - ontem, hoje e amanhã
Desafios da cibersegurança - ontem, hoje e amanhãDesafios da cibersegurança - ontem, hoje e amanhã
Desafios da cibersegurança - ontem, hoje e amanhãLuiz Arthur
 
Mineração de dados no Gmail e Facebook
Mineração de dados no Gmail e FacebookMineração de dados no Gmail e Facebook
Mineração de dados no Gmail e FacebookLuiz Arthur
 
Núcleo do Linux (Kernel Linux)
Núcleo do Linux (Kernel Linux)Núcleo do Linux (Kernel Linux)
Núcleo do Linux (Kernel Linux)Luiz Arthur
 
Dissertacao - Palestra - Algoritmos para simulador de arquiteturas paralelas
Dissertacao - Palestra - Algoritmos para simulador de arquiteturas paralelasDissertacao - Palestra - Algoritmos para simulador de arquiteturas paralelas
Dissertacao - Palestra - Algoritmos para simulador de arquiteturas paralelasLuiz Arthur
 
Dissertacao - Algoritmos para simulador de arquiteturas paralelas
Dissertacao - Algoritmos para simulador de arquiteturas paralelasDissertacao - Algoritmos para simulador de arquiteturas paralelas
Dissertacao - Algoritmos para simulador de arquiteturas paralelasLuiz Arthur
 
Palestra - Segurança da Informação - Softwarein Legal
Palestra - Segurança da Informação - Softwarein LegalPalestra - Segurança da Informação - Softwarein Legal
Palestra - Segurança da Informação - Softwarein LegalLuiz Arthur
 
Redes - Wireless Teoria
Redes - Wireless TeoriaRedes - Wireless Teoria
Redes - Wireless TeoriaLuiz Arthur
 
Redes - VoIP Teoria
Redes - VoIP TeoriaRedes - VoIP Teoria
Redes - VoIP TeoriaLuiz Arthur
 
Redes - VoIP H.323
Redes - VoIP H.323Redes - VoIP H.323
Redes - VoIP H.323Luiz Arthur
 
Redes - VoIP SIP
Redes - VoIP SIPRedes - VoIP SIP
Redes - VoIP SIPLuiz Arthur
 
Redes - VoIP Asterisk Dial Plan
Redes - VoIP Asterisk Dial PlanRedes - VoIP Asterisk Dial Plan
Redes - VoIP Asterisk Dial PlanLuiz Arthur
 
Tópicos - LVS Instalacao Slack11
Tópicos - LVS Instalacao Slack11Tópicos - LVS Instalacao Slack11
Tópicos - LVS Instalacao Slack11Luiz Arthur
 

Mais de Luiz Arthur (14)

Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?
Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?
Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?
 
Desafios da cibersegurança - ontem, hoje e amanhã
Desafios da cibersegurança - ontem, hoje e amanhãDesafios da cibersegurança - ontem, hoje e amanhã
Desafios da cibersegurança - ontem, hoje e amanhã
 
NAPSOL
NAPSOLNAPSOL
NAPSOL
 
Mineração de dados no Gmail e Facebook
Mineração de dados no Gmail e FacebookMineração de dados no Gmail e Facebook
Mineração de dados no Gmail e Facebook
 
Núcleo do Linux (Kernel Linux)
Núcleo do Linux (Kernel Linux)Núcleo do Linux (Kernel Linux)
Núcleo do Linux (Kernel Linux)
 
Dissertacao - Palestra - Algoritmos para simulador de arquiteturas paralelas
Dissertacao - Palestra - Algoritmos para simulador de arquiteturas paralelasDissertacao - Palestra - Algoritmos para simulador de arquiteturas paralelas
Dissertacao - Palestra - Algoritmos para simulador de arquiteturas paralelas
 
Dissertacao - Algoritmos para simulador de arquiteturas paralelas
Dissertacao - Algoritmos para simulador de arquiteturas paralelasDissertacao - Algoritmos para simulador de arquiteturas paralelas
Dissertacao - Algoritmos para simulador de arquiteturas paralelas
 
Palestra - Segurança da Informação - Softwarein Legal
Palestra - Segurança da Informação - Softwarein LegalPalestra - Segurança da Informação - Softwarein Legal
Palestra - Segurança da Informação - Softwarein Legal
 
Redes - Wireless Teoria
Redes - Wireless TeoriaRedes - Wireless Teoria
Redes - Wireless Teoria
 
Redes - VoIP Teoria
Redes - VoIP TeoriaRedes - VoIP Teoria
Redes - VoIP Teoria
 
Redes - VoIP H.323
Redes - VoIP H.323Redes - VoIP H.323
Redes - VoIP H.323
 
Redes - VoIP SIP
Redes - VoIP SIPRedes - VoIP SIP
Redes - VoIP SIP
 
Redes - VoIP Asterisk Dial Plan
Redes - VoIP Asterisk Dial PlanRedes - VoIP Asterisk Dial Plan
Redes - VoIP Asterisk Dial Plan
 
Tópicos - LVS Instalacao Slack11
Tópicos - LVS Instalacao Slack11Tópicos - LVS Instalacao Slack11
Tópicos - LVS Instalacao Slack11
 

01 programação - introdução computação

  • 1. Luiz Arthur Fundamentos de Programação I 1 Universidade Tecnológica Federal do Paraná – UTFPR Campus: Campo Mourão Professor: Luiz Arthur Feitosa dos Santos E-mail: luiz_arthur@fornet.com.br Sumário: ● Conceitos sobre computação; ● Evolução dos computadores; ● Hardware; ● Software; ● Sistema Operacional;
  • 2. Luiz Arthur Fundamentos de Programação I 2 Definições básicas: ● Computação - Pode ser definida como a busca pela solução de um problema, considerando as entradas e algoritmos para resolver o problema. Entrada Processamento Solução ● Ciência da Computação - É o estudo dos algoritmos e suas aplicações, bem como das estruturas matemáticas indispensáveis à formulação precisa dos conceitos fundamentais da teoria da computabilidade e da computação aplicada. ● Informática - O termo informática, vem de “informação automática”. É a ciência do tratamento da informação. Informática é mais abrangente que Ciência da Computação. Hoje aparecem profissionais da área de TI (Tecnologia da Informação) e TIC (Tecnologias da Informação e da Comunicação).
  • 3. Luiz Arthur Fundamentos de Programação I 3 ● Programa - De acordo com o artigo 1° da Lei 9.609/98 (Lei de Software), Programa de Computador “é a expressão de um conjunto organizado de instruções em linguagem natural ou codificada, contida em suporte físico de qualquer natureza, de emprego necessário em máquinas automáticas de tratamento da informação, dispositivos, instrumentos ou equipamentos periféricos, baseados em técnica digital ou análoga, para fazê-los funcionar de modo e para fins determinados.” (Instituto Nacional da Propriedade Industrial, 2010). ● Algoritmo - Um algoritmo é uma sequência não ambígua de instruções que é executada até que determinada condição se verifique. Mais especificamente, em matemática, constitui o conjunto de processos (e símbolos que os representam) para efetuar um cálculo. Qual é a relação sociedade, informática, computação e programação? Tente responder isto!
  • 4. Luiz Arthur Fundamentos de Programação I 4 Evolução dos Computadores: Inicialmente para se computar e para a evolução da computação havia duas possibilidades: analógica e digital. Máquinas analógicas: são baseadas em dispositivos físicos que medem quantidades contínuas. Este computadores baseavam-se em engrenagens, peças mecânicas e eletromecânicas, o que acarreta uma certa imprecisão nos cálculos. Ábaco Data: 500AC Calculadora Mecânica Blase Pascal ~1642 Máquina Analítica Charles Babage – 1834 Projetado para ser programável.
  • 5. Luiz Arthur Fundamentos de Programação I 5 Início da tenologia digital: ● Álgebra de Boole: Em 1854, George Boole publica trabalhos em que tenta descobrir leis algébricas para o pensamento. Seu trabalho será a base lógica dos cálculos nos futuros dos computadores ele inventa a Álgebra de Boole. Primeira geração – válvulas (1945 – 1955) O estímulo para o computador eletrônico foi a Segunda Gerra Mundial. Um dos motivos foi tentar quebrar a criptografia das mensagens de guerra. Era necessário fazer cálculos mais rápidos para entender as mensagens a tempo de fazer alguma coisa. Em 1943 é construído um computador eletrônico chamado de ENIAC (Eletronic Numeral Integrator And Compute) que consistia de 18 mil válvulas e 1.500 relés, pesava 30 toneladas e consumia 140 quilowatts de energia.
  • 6. Luiz Arthur Fundamentos de Programação I 6 IAS construído por John von Neumann, que observou que programar computadores com quantidades imensas de interruptores e cabos era uma tarefa lenta, tediosa, mecânica e isto podia/devia ser representada em forma digital na memória do computador, junto com os dados. Também foi que ao invés aritmética decimal usada no ENIAC, com cada dígito representado por 10 válvulas, podia ser substituída usando aritmética binária. O projeto conhecido como máquina de Von Neumann é ainda hoje a base para quase todos os computadores digitais. Memória Entrada Unidade Lógica e Aritmética Unidade de controle Acumulador Saída
  • 7. Luiz Arthur Fundamentos de Programação I 7 Segunda geração – transistores (1955-1965) O transistor foi inventado no Bell Labsem 1948 e revolucionou o computador, o primeiro a utilizar foi o TX-0 (Transistorized eXperimental Computer 0). Em 1961 apareceu o PDP-1, tinha 4.096 palavras de 18 bits e podia executar 200 mil instruções por segundo, custava 120 mil dólares e trouxe o conceito de minicomputador.
  • 8. Luiz Arthur Fundamentos de Programação I 8 Terceira geração – circuitos integrados (1965-1980) A invenção de circuito integrado de silício em 1958 permitiu que dezenas de transistores fossem colocados em um único chip, possibilitando computadores menores, mais rápidos e mais baratos. Um computador desta época é o System/360 da IBM que trás o conceito de família de computadores, que trazia também o conceito de multiprogramação.
  • 9. Luiz Arthur Fundamentos de Programação I 9 Quarta geração – integração em escala muito grande (1980-?) Na década de 1980, a VLSI (Very Large Scale Integration) possibilita colocar dezenas, milhares, milhões de transistores em um único chip. Isto reduziu tanto o preço de um computador que em 1980 um único indivíduo poderia ter o seu próprio computador. Computadores Pessoais (PC's) eram usados para processar textos, montar planilhas, jogos, etc. Surge o Intel 8080, o Apple II, MS-DOS, interfaces gráficas, Macintosh, Windows. Surge arquiteturas RISC. O futuro são os computadores embutidos. Intel 8080 MacBookAir Apple II
  • 10. Luiz Arthur Fundamentos de Programação I 10 Histórico de alguns computadores: Ano Nome Comentário 1834 Máquina analítica Primeira tentativa de construir um computador digital. 1936 ZI Primeira máquina de calcular com relés. 1943 COLOSSUS Primeiro computador eletrônico. 1944 Marki Primeiro computador dos USA, de uso geral. 1946 ENIAC A história moderna dos computadores inicia neste. 1949 EDSAC Primeiro computador com programa armazenado. 1951 Whirlwind Primeiro computador de tempo real. 1952 IAS/VonNeumann A maioria das máquinas atuais usam esse projeto. 1960 PDP1/DEC Primeiro minicomputador (50 vendidos). 1961 1401/IBM Máquina para pequenos negócios (bem popular). 1962 7094/IBM Dominou a computação científica (1950). 1963 B5000 Linguagem de alto nível. 1964 360/IBM Cria o conceito de família. 1964 6600 Primeiro supercomputador. 1965 PDP-8 Minicomputador (50 mil vendidos). 1970 PDP-11 Dominou os minicomputadores (1970). 1974 8080/Intel Primeiro computador de uso geral (8bits). 1974 CRAY-1 Primeiro computador vetorial. 1978 VAX Primeiro supercomputador de 32 bits. 1981 IBM PC Inicio dos computadores pessoais. 1981 Osborne Primeiro computador portátil. 1983 Lisa/Apple Primeiro computador com interface gráfica. 1985 386/Intel Primeiro 32 bits da linha Pentium. 1985 MIPS Primeiro RISC. 1987 SPARC/Sun Primeira estação de trabalho RISC. 1990 RS6000/IBM Primeira superescalar. 1992 Alpha/DEC Computador pessoal de 64 bits. 1993 Newton/Apple Primeiro palmtop.
  • 11. Luiz Arthur Fundamentos de Programação I 11 Evolução Intel: 1989 – 486 Pipeline 1993 – Pentiun Superescalar 1997 – Pentium II
  • 12. Luiz Arthur Fundamentos de Programação I 12 2000 – Pentium IV 2006 – Core 2 Duo 1999 – Pentium III 2008 – Core 2 Quad 2008 - i7
  • 13. Luiz Arthur Fundamentos de Programação I 13 Qual é o impacto da evolução dos computadores em nossa sociedade? Pense sobre isto! ● Como os computadores afetaram as guerras? ● Como os computadores afetaram os governos? ● Como os computadores aferaram a industria? ● Como os computadores influenciaram as pequenas e médias empresas? ● Como os computadores afetam a vida das pessoas hoje? ● Onde estão os computadores hoje? ● Qual deve ser o futuro dos computadores?
  • 14. Luiz Arthur Fundamentos de Programação I 14 Hardware: Um sistema computacional é um conjunto de circuitos eletrônicos interligados, formando por processadores, memórias, registradores, barramentos, monitores de vídeo, impressoras, mouse, discos magnéticos, além de outros dispositivos físicos (ou seja, hardware). Todos esses dispositivos manipulam dados na forma digital (0's e 1's), o que proporciona uma maneira confiável de representação e transmissão de dados. De uma forma bem rudimentar todos os componentes de um sistema computacional são agrupados em três subsistemas básicos, chamados unidades funcionais: ➢Processador ou Unidade Central de Processamento (UCP ou CPU); ➢ Registradores, unidade de controle e unidade lógica aritmética; ➢Memória (cache, principal, secundária); ➢Dispositivos de entrada/saída; ➢Barramento; Estes subsistemas estão presentes em qualquer tipo de computador digital, independente da arquitetura ou fabricante.
  • 15. Luiz Arthur Fundamentos de Programação I 15 Software: Para que o hardware tenha utilidade prática, deve existir um conjunto de programas, utilizado como interface entre as necessidades do usuário e as capacidades do hardware. A utilização de software adequados às diversas tarefas e aplicações torna o trabalho dos usuários muito mais simples e eficiente. O software de computador pode ser dividido, a grosso modo, em duas espécies: programas de sistema, que gerenciam a operação do computador em si, e programas aplicativos, que executam o trabalho que os usuários realmente deseja. Sistema Operacional: Um SISTEMA OPERACIONAL, é um conjunto de rotinas executado pelo processador, de forma semelhante aos programas dos usuários. Sua principal função é controlar o funcionamento de um computador, gerenciando a utilização e o compartilhamento dos seus diversos recursos, como processadores, memórias e dispositivos de entrada e saída.
  • 16. Luiz Arthur Fundamentos de Programação I 16 Sem o Sistema Operacional, um usuário para interagir com o computador deveria conhecer profundamente diversos detalhes sobre o hardware do equipamento, o que tornaria seu trabalho lento e com grandes possibilidades de erros. O Sistema Operacional desta forma tem por objetivo funcionar como uma interface entre o usuário e o computador, tornando sua utilização mais simples, rápida e segura.
  • 17. Luiz Arthur Fundamentos de Programação I 17 Tipos de Sistemas Operacionais Os tipos de Sistemas Operacionais e a sua evolução estão relacionados diretamente com a evolução do hardware e das aplicações por ele suportadas. Os principais são: ● Sistema Monoprogramável/Monotarefa; ● Sistema Multiprogramáveis/Multitarefa; ● Sistema de tempo compartilhando; ● Sistema com Múltiplos Processadores; Há muitos anos tornou-se bastante evidente a necessidade de encontrar uma maneira de isolar os programadores da complexidade do hardware. A maneira com que isso se desenvolveu gradualmente foi colocar uma camada de software por cima do hardware básico para gerenciar todas as partes do sistema e oferecer ao usuário uma interface ou máquina virtual que é mais fácil de entender e de programar. Essa camada de software é o Sistema Operacional. Nos primeiros sistemas computacionais, o ato de programar era bastante complicado, já que o programador deveria possuir conhecimento da arquitetura da máquina e programar em painéis através de fios. Esses programas eram desenvolvidos em linguagem de máquina e carregados diretamente na memória principal para execução
  • 18. Luiz Arthur Fundamentos de Programação I 18 Inicio das linguagens de programação: Com o surgimento das primeiras linguagens de montagem ou assembly e das linguagens de alto nível, o programador deixou de se preocupar com muitos aspectos pertinentes ao hardware, como em qual região da memória o programa deveria ser carregado ou quais endereços de memória seriam reservados para as variáveis. A utilização dessas linguagens facilitou a construção de programas, a documentação e a manutenção. Tradutor: Apesar das inúmeras vantagens proporcionadas pelas linguagens de montagem e de alto nível, os programas escritos nessas linguagens não estão prontos para ser diretamente executados pelo processador (programa- fonte). Para isso, eles têm de passar por uma etapa de conversão, onde toda representação simbólica das instruções é traduzida para código de máquina. Esta conversão é realizada por um utilitário denominado tradutor. O módulo gerado pelo tradutor é denominado módulo-objeto, que apesar de estar em código de máquina, na maioria das vezes não pode ser ainda executado. Isso ocorre em função de um programa poder chamar sub-rotinas externas, e, neste caso, o tradutor não tem como associar o programa principal às sub-rotinas chamadas. Esta função é realizada por outro utilitário denominado linker.
  • 19. Luiz Arthur Fundamentos de Programação I 19 Linker O linker, ou editor de ligação, é o utilitário responsável por gerar, a partir de um ou mais módulos-objetos, um único programa executável. Suas funções básicas são resolver todas as referências simbólicas existentes entre os módulos e reservar memória para a execução do programa. Para resolver todas as referências a símbolos, o linker também pode pesquisar em bibliotecas do sistema ou do próprio usuário. Bibliotecas são arquivos que contém diversos módulos-objetos e/ou definições de símbolos. Loader O loader, ou carregador, é o utilitário responsável por carregar na memória principal um programa para ser executado. O procedimento de carga varia com o código gerado pelo linker.
  • 20. Luiz Arthur Fundamentos de Programação I 20 Compilador: O compilador é o utilitário responsável por gerar, a partir de um programa escrito em linguagem de alto nível, um programa em linguagem de máquina não executável. As linguagens de alto nível, como Pascal, FORTRAN e COBOL, não têm nenhuma relação direta com a máquina, ficando essa preocupação exclusivamente com o compilador. Os programadores de alto nível devem se preocupar apenas com o desenvolvimento de suas aplicações, não tendo que se envolver com detalhes sobre a arquitetura do processador. Assim, os programas- fontes pode ser portados entre computadores de diversos fabricantes, desde que existam padrões para a sintaxe da linguagem. Isso permite o desenvolvimento de aplicações independentes de equipamento. Um compilador é um utilitário que opera de modo integrado aos componentes do sistema de programação disponíveis, sob a supervisão do sistema operacional. Podemos visualizar, então, o compilador como uma interface entre o sistema operacional e o usuário, de maneira que é possível acessar diversos serviços do sistema.
  • 21. Luiz Arthur Fundamentos de Programação I 21 Interpretador O interpretador é considerado um tradutor que não gera módulo-objeto. A partir de um programa-fonte escrito em linguagem de alto nível, o interpretador, durante a execução do programa, traduz cada instrução e a executa imediatamente. Algumas linguagens tipicamente interpretadas são o Basic e o Perl. A maior desvantagem na utilização de interpretadores é o tempo gasto na tradução das instruções de um programa toda vez que este for executado, já que não existe a geração de um código executável. A vantagem é permitir a implementação de tipos de dados dinâmicos, ou seja, que podem mudar de tipo durante a execução do programa, aumentando assim, sua flexibilidade. Tente responder: Quais são as vantagens e desvantagens da linguagem de alto nível? Quais são as semelhanças e diferenças entre interpretador e compilador?
  • 22. Luiz Arthur Fundamentos de Programação I 22 Depurador O desenvolvimento de programas está sujeito a erros de lógica, independente de metodologias utilizadas pelo programador. A depuração é um dos estágios desse desenvolvimento e a utilização de ferramentas adequadas é essencial para acelerar o processo de correção dos programas. O depurador (debugger) é o utilitário que permite ao usuário acompanhar toda a execução de um programa a fim de detectar erros na sua lógica. O depurador oferece ao usuário recursos como: ➢Acompanhar a execução de um programa instrução por instrução; ➢Possibilitar a alteração e visualização do conteúdo de variáveis; ➢Implementar pontos de paradas dentro do programa, de forma que, durante a execução, o programa pare nesses pontos; ➢Especificar que, toda vez que o conteúdo de uma variável for modificado, o programa envie uma mensagem (watchpoint).
  • 23. Luiz Arthur Fundamentos de Programação I 23 Interpretador de Comandos e Linguagem de Controle O interpretador de comandos, ou shell, permite que o usuário se comunique com o sistema operacional. Através de comandos simples, o usuário pode ter acesso a diversas funções e rotinas específicas do sistema. Quando digitados pelos usuários, os comandos são interpretados pelo shell, que, ao reconhecer a linha de comando, verifica sua sintaxe, envia mensagens de aviso ou erro e faz chamadas a rotinas do sistema. Desta forma, o usuário dispõe de uma interface direta com o sistema operacional para realizar tarefas como criar, ler ou eliminar arquivos, consultar diretórios ou verificar a data e hora armazenada no sistema. O conjunto de comandos disponíveis pelo interpretador é conhecido como linguagem de controle ou linguagem de comando. Algumas linguagens são poderosas a ponto de oferecer a possibilidade de criar programas com estruturas de decisão e iteração. Esses programas nada mais são do que uma sequência de comandos armazenados em um arquivo texto, denominados arquivos de comandos ou shell scripts, que podem ser executados sempre que necessário. Em geral, o interpretador de comandos não faz parte do sistema operacional. Isto possibilita uma maior flexibilidade na criação de diferentes linguagens de controle para um mesmo sistema operacional.
  • 24. Luiz Arthur Fundamentos de Programação I 24 Referência: TANENBAUM, Andrew S. Organização Estruturada de Computadores. 5ed. Editora Prentice-Hall. 2006. GONÇALVES, Rogério A. Fundamentos de Programação I. UTFPR. 2010. MACHADO, Francis B. Arquitetura de Sistemas Operacionais. 4 ed. Editora LTC. 2007. Instituto Nacional da Propriedade Industrial. O que é programa de Computador. Disponível em: http://www.inpi.gov.br/menu-esquerdo/programa/pasta_oque Acessado em: agosto de 2010.
  • 25. Luiz Arthur Fundamentos de Programação I 25 Fim!