Total de visualizações de página

quarta-feira, 23 de março de 2016

RESUMO SOBRE A EVOLUÇÃO DOS COMPUTADORES



    O aparecimento dos primeiros computadores ou computadores de primeira geração surgiram por volta de 1951/1959 - O funcionamento era um pouco complicado pois possuíam muitos circuitos eletrônicos e válvulas, seu uso era restrito, precisavam ser reprogramados a cada tarefa, consumiam muita energia e tinham problemas devido ao grande aquecimento.

    As válvulas foram utilizadas em computadores eletrônicos, como por exemplo o ENIAC. Normalmente quebrava após algumas horas de uso e tinha o processamento bastante lento. Os PCS calculavam com uma velocidade de milésimos de segundo e eram programados em linguagem de máquina.
  
   Entre 1959/1965 - Os computadores de segunda geração, foram utilizados para uso comercial, mas ainda possuíam um tamanho gigantesco, tinham uma capacidade de processamento muito pequena e usavam transístores em substituição às válvulas.

   As válvulas foram substituídas pelos transístores. A partir daí seus tamanhos foram diminuídos em pelo menos 100 vezes, não aqueciam tanto, e consumiam menos energia, eram mais rápidos e confiáveis. Esses já calculavam em microssegundos (milionésimos) e eram programados em linguagem montadora.

   Por volta de 1965/1975 - Os computadores de terceira geraçãosurgem com circuitos integrados, além da aparente diminuição do tamanho, maior capacidade de processamento e também início da utilização dos computadores pessoais.

    Com o surgimento dos computadores e aplicativos de quarta geração, vieram os softwares integrados, processadores de texto, planilhas eletrônicas, gerenciadores de banco de dados, gráficos e gerenciadores de comunicação.

   Alguns anos depois, ocorreram avanços bastante significativos, surgindo assim os microprocessadores, os microcomputadores e os supercomputadores. As principais características da quinta geração foram:   Supercomputadores, automação de escritórios, automação comercial e industrial, robótica, imagem virtual, multimídia e a era online (comunicação através da Internet).

ARQUITETURA RISC E CISC - DIFERENÇAS



    Com certeza este é um tema bem interessante quando falamos de processadores. A arquitetura de processador descreve o tipo que foi usado em um computador. Grande parte dos computadores vêm com identificação e literatura descrevendo o processador que contém dentro de si, que são as arquiteturas CISC e RISC.

    A CISC (em inglês: Complex Instruction Set Computing, Computador com um Conjunto Complexo de Instruções), usada em processadores Intel e AMD. Essa arquitetura suporta mais instruções, no entanto, mais lentas ficam as execuções delas.
    A RISC (em inglês: Reduced Instruction Set Computing, Computador com um Conjunto Reduzido de Instruções) usada em processadores PowerPC (da Apple, Motorola e IBM) e SPARC (SUN); suporta menos instruções, e com isso executa com mais rapidez o conjunto de instruções que são combinadas.

     Um processador CISC (Complex Instruction Set Computer), é capaz de executar várias centenas de instruções complexas, sendo extremamente versátil. Estes são exemplos de processadores CISC são os 386 e os 486. Utilizados no começo da década dos anos 80. Nessa época a tendência era construir chips com conjuntos de instruções cada vez mais complexos, mas alguns fabricantes contrariaram esse conceito, criando o padrão RISC (Reduced Instruction Set Computer).

     Ao contrário dos complexos CISC, os processadores RISC são capazes de executar apenas algumas poucas instruções simples. Justamente por isso, os chips baseados nessas arquiteturas são mais simples e muito mais baratos. Outra vantagem dos processadores RISC, é que por terem um menor número de circuitos internos, podem trabalhar com CLOCKS mais altos. Um processador RISC é capaz de executar instruções muito mais rapidamente.

     Assim, em conjunto com um software adequado, estes processadores são capazes de desempenhar todas as funções de um processador CISC, compensando as suas limitações com uma velocidade maior de operação. Atualmente, vemos processadores híbridos, que são essencialmente processadores CISC, porém que possuem internamente núcleos RISC. Assim, a parte CISC do processador pode cuidar das instruções mais complexas, enquanto que o núcleo RISC pode cuidar das mais simples, nas quais é mais rápido.

      Na verdade, as grandes empresas que desenvolvem microprocessadores hoje, utilizam o melhor de cada estrutura. Essa classificação por arquitetura está um pouco obsoleta, tendo em vista que nenhum processador hoje em dia é CISC ou RISC totalmente. Por necessidade e pelos desenvolvimentos cada vez mais ousados das diferentes empresas, um caminhou em direção ao outro, tentando aproveitar as vantagens que existiam em cada qual, adaptando-as para melhorar a eficiência e desempenho e chegaram ao patamar que conhecemos atualmente.

terça-feira, 22 de março de 2016

TIPOS DE MEMÓRIAS DE COMPUTADOR E PARA QUE SERVEM


    Muitas pessoas hoje em dia, ainda não sabem corretamente para que servem as memórias. Em informática, a memória representa todos os dispositivos que podem armazenar informações, sejam elas temporárias ou permanentes. Assim sendo, podemos definir como componentes internos que guardam informações ou dados. (Memória RAM, disco rígido, pendrive, cartão de memória, etc). A unidade básica de memória é o dígito binário (os famosos 0 e 1, que são os dados manipulados por todos os computadores).



QUAIS OS TIPOS DE MEMÓRIAS EXISTENTES


Basicamente dois tipos de memória se sobressaem sobre os outros: Memória principal e memória secundária. Memória principal são memórias que o processador precisa acessar para enviar os dados; em muitos casos sem essas memórias o processador pode não funcionar. Elas armazenam os dados apenas temporariamente, ou seja, quando o computador ficar sem energia da bateria ou for reiniciado, perdem-se as informações. Elas são acessadas diretamente pelo processador, sem passar por outro lugar. Possuem alta velocidade e desempenho. Alguns exemplos de memória principal são: Memórias RAM e Memórias Cache.


    Memória secundária são utilizadas para armazenamento. Elas servem para guardar as informações permanentemente. Ou seja, somente são perdidas as informações quando são formatadas, têm arquivos excluídos, danificados ou deletados. Essas memórias precisam passar primeiro por memórias principais antes de serem usadas pelo processador. Geralmente são mais lentas que as memórias principais, mas têm uma capacidade de armazenamento muito superior. Exemplo de memórias secundárias: Discos rígidos, cartões de memória, pendrives, HDs externos, etc.

Existem alguns subtipos de memória dentro da memória principal são eles: Memórias voláteis e memórias não-voláteis

   Memória volátil: Precisa de energia para armazenar dados. Ou seja, os dados são perdidos quando o computador é desligado. São fabricadas em duas tecnologias: dinâmica e estática, sendo que a dinâmica é um tipo de memória que precisa ser atualizada e recarregada constantemente (função conhecida como refresh). O funcionamento basicamente funciona da seguinte forma: O transistor indica se a célula está vazia (com 0) ou cheia (com 1). Se estiver vazia, o capacitor é carregado. Mas é como se o capacitor sempre estivesse com "defeito", pois ele se descarrega muito rapidamente, por isso são necessários vários refreshes para manter os dados armazenados. No caso das memórias estáticas, a informação fica armazenada durante todo o tempo, mudando apenas durante algum pulso de clock novo. Esse tipo de memória não tem o "defeito" do capacitor (ela não se "esvazia").

   Em teoria as memórias estáticas possuem um desempenho muito superior do que as memórias dinâmicas (que precisam que o processador sempre tenha o trabalho de verificar o estado das células e recarregá-las). Mas, como o tempo de refresh está cada vez sendo reduzido, e as memórias dinâmicas saindo bem mais baratas, atualmente as mais usadas são as dinâmicas.

   Memória não-volátil: Acumulam informações mesmo com o computador desligado (ou
seja, nessa categoria enquadram-se também as memórias secundárias). Das memórias principais não voláteis destacam-se as memórias ROM (traduzidas como, memórias de acesso somente-leitura). Essas memórias geralmente são usadas em um computador para gravar a BIOS (espécie de chip que funciona com um micro-programa para controlar todos os dispositivos de um computador. Ela se inicia quando o computador é ligado, aquela famosa tela preta que aparece quando apertamos o botão de ligar do computador).


Das memórias ROM existentes, podemos citar: ROM (gravada somente na fábrica uma única vez), PROM (gravada pelo usuário uma única vez), EPROM (gravada e regravada utilizando-se de técnicas de luz ultra-violeta), e EEPROM (memória gravada e regravada quantas vezes necessário). Essas memórias necessitam de uma bateria para manter os dados de usuário gravados para a inicialização personalizada do computador; caso essa bateria perca a carga ou seja removida as configurações de fábrica são restauradas.

segunda-feira, 21 de março de 2016

DISPOSITIVOS DE ENTRADA E SAÍDA DO COMPUTADOR



Dispositivos de entrada/saída é um termo que caracteriza os tipos de dispositivos de um computador. 

Imput/Output é um termo da informática referente aos dispositivos de Entrada e Saída


   Quando um hardware insere dados no computador, dizemos que ele é um dispositivo de entrada. Agora quando esses dados são colocados a mostra, ou quando saem para outros dispositivos, dizemos que estes hardwares são dispositivos de saída.

   Saber quais são os dispositivos de entrada e saída de um computador é bem fácil. Neste artigo serão mostrados os principais dispositivos de entrada e saída do computador.

Dispositivo de Entrada do Computador

Teclado – É um dos principais dispositivos de entrada do computador. É nele que você insere caracteres e comandos. No inicio da computação sua existência era primordial para que o ser humano pudesse interagir com o PC. A inserção de dados era feita através dos prompts de comandos.

Mouse – Não menos importante que os teclados, os mouses ganharam grande importância com advento da interface gráfica. É através dos botões do mouse que interagirmos com o computador. Os sistemas operacionais de hoje estão voltados para uma interface gráfica e intuitiva onde é difícil imaginar alguém usando um computador sem este periférico de entrada. Ícones de programas, jogos e links da internet, tudo isto é clicado através dos mouses.

Touchpad – É um dispositivo sensível ao toque que na informática tem a mesma função que o mouse. São utilizados principalmente em Notebooks.

Web Cam – Câmera acoplada no computador e embutida na maioria dos notebooks. Dependendo do programa utilizado, sua função é capturar imagens que podem ser salvas tanto como arquivos de imagem ou como arquivos de vídeo.

Scanner – Periférico semelhante a uma copiadora, mas com função contrária. O escâner tem a função de capturar imagens e textos de documentos expostos sobre a sua superfície. Estes dados serão armazenados no próprio computador.

Microfone – Periférico de entrada com a função de gravação de voz e testes de pronúncias. Também podem ser usados para conversação online.

Dispositivo de Saída do Computador

Monitor – É um dos principais dispositivos de saída de um computador. Sua função é mostrar tudo que está sendo processado.

Impressora – Dispositivo com a função de imprimir documentos para um plano, folha A4, A3, A2, A1 e etc. Este documento pode ser um desenho, textos, fotos e gravuras. Existem diversos tipos de impressora as mais conhecidas são: As matriciais, jato de tinta, a laser e a Plotter.

Caixas de Som – Dispositivo de saída essencial para quem desejar processar arquivos de áudio como MP3, WMA e AVI.

Dispositivos de Entrada e Saída

   O avanço da tecnologia deu a possibilidade de se criar um dispositivo com a capacidade de enviar e buscar dados. Tais periféricos são classificados como dispositivos de entrada e saída

Alguns exemplos

Pen Drives – Tipo de memória portátil e removível com capacidade de transferir ou retirar dados de um computador.

Impressora Multifuncional - Como o próprio nome já diz esse tipo de impressora pode servir tanto como copiadora ou escâner.

Monitor Touchscreen – Tela de monitor sensível ao toque. Através dela você recebe dados em forma de imagem e também envia dados e comandos ao computador através do toque. A tecnologia é mais usada na indústria telefônica e seu uso em monitores de computadores está em fase de expansão e está ficando cada vez mais popular.

domingo, 20 de março de 2016

NOÇÕES DE PROGRAMAÇÃO EM ASSEMBLY

O que é Assembly



    "Assembly" significa montagem. "Assembler" significa montador. Montagem é o ato de transformar uma seqüência de código fonte (texto) em código objeto (linguagem de máquina), e montador é o programa que faz essa transição.

    O diagrama abaixo mostra que o PROGRAMADOR escreveu uma lista de comandos em forma de texto, onde cada linha realiza uma função específica. 

   No entanto, o micro controlador não entende estes comandos em modo de texto. Eles precisam antes ser traduzidos para uma linguagem binária que são os famosos (0 e 1) ou (linguagem de máquina), e isso é feito pelo programa montador, nesse caso o (ASSEMBLER).



      Até que é possível programar diretamente em linguagem de máquina, mas é muito, mas muito mais difícil do que programar em assembly.
       Ao utilizar esta linguagem e um programa montador, o programador não escreve em linguagem de máquina, e sim em uma linguagem textual, que facilita a construção dos programas. Embora fique mais fácil do que programar direto em linguagem de máquina, programar em ASSEMBLY ainda é uma das formas mais "difíceis" de programação, pois ela é conhecida como a linguagem de programação de "mais baixo nível". 
        O arquivo fonte do diagrama acima (a lista de comandos digitada pelo programador) é composta de instruções chamadas de (mnemônicos), parâmetros, rótulos, comentários e diretivas, e após são transformados em linguagem de máquina por um programa montador.
        Vamos conhecer um pouco sobre cada um destes componentes do programa.
      
      INSTRUÇÃO: É o nome dado a uma operação que o microcontrolador pode realizar. Exemplo, se o microcontrolador pode realizar a soma de dois valores, dizemos que existe no mínimo uma instrução para soma. No caso do microcontrolador PIC, as instruções que realizam soma são duas, a ADDWF e a ADDLW. Você consegue descobrir que instruções estão disponíveis para programação assembly no datasheet do microcontrolador em questão.

      MNEMÔNICO: É uma representação textual de uma instrução. As instruções são, na verdade, códigos binários, e para serem entendidos pelos programadores devem ser representados na forma textual. Se os mnemônicos não fossem utilizados, teríamos que programar assembly utilizando códigos numéricos difíceis de memorizar. Desta forma, uma das instruções de adição citadas anteriormente possui o mnemônico ADDWF, e sua representação binária é 000111xxxxxxxx onde x.


      PARÂMETROS: São as informações manipuladas por uma instrução. Isso é necessário sempre que precisarmos informar à instrução quais os elementos envolvidos na operação. Por exemplo, se desejarmos somar dois valores, a instrução poderá ser ADDWF ou ADDLW, mas os valores a serem somados também deverão ser informados, sendo estes últimos os que chamamos de "parâmetros."








      DIRETIVAS: São linhas que determinam como o programa montador irá trabalhar. Não geram efeito direto no código binário gerado. Por exemplo, a diretiva  LIST p=16F877  determina qual o microcontrolador que será usado.

     RÓTULOS: São nomes dados as linhas do programa, e servem para que em uma instrução de desvio possa se determinar o ponto para onde se deseja ir no programa. Os rótulos sempre são alinhados na coluna 0 (sem espaços antes do mesmo), enquanto que as instruções devem ser escritas após uma margem (obrigatoriamente após a coluna 0).

      COMENTÁRIOS: São trechos de texto escritos após um sinal de ponto e vírgula (;). São úteis para que possamos adicionar pequenos lembretes no programa, facilitando a manutenção futura. Não interferem no tamanho do programa binário gerado.
Outros termos importantes:

     MONTADOR: É o programa que transforma um programa fonte assembly em um programa executável. Um exemplo é o MPASM, que faz parte do MPLAB, uma ferramenta de desenvolvimento distribuída pela MicroChip (fabricante dos microcontroladores PIC)

     Há muito mais para se falar de assembly, porém, abordamos aqui epenas alguns conceitos e noções sobre essa linguagem.

EXEMPLO DE PROGRAMA ASSEMBLY














O código na caixa acima, cria um programa em assembly que exibe a frase "OLÁ, MUNDO!" quando é executado.


sexta-feira, 18 de março de 2016

EXEMPLO DE UMA SIMPLES APLICAÇÃO EM JAVA

Criar um projeto chamado: Teste1, dentro dele cria-se uma classe com o nome Aquecedor, em seguida colar o código abaixo.

Classe Aquecedor.java
 /*   
  * To change this license header, choose License Headers in Project Properties.   
  * To change this template file, choose Tools | Templates   
  * and open the template in the editor.   
  */   
  package teste1;   
  /**   
  *   
  * @author Joel   
  */   
  public class Aquecedor    
  {   
   private double temperatura;   
   private String marca;   
   // construtor   
   public Aquecedor(String marcaNova)   
   {   
    temperatura = 15;   
    marca = marcaNova;   
   }   
   // metodos   
   void maisMorno()   
    {   
     temperatura += 5;   
    }   
   void maisFrio()   
    {   
     temperatura -= 5;   
    }   
   public double getTemperatura()   
    {   
     return temperatura;   
    }    
   public String getMarca()   
    {   
     return marca;   
    }    
  }   

Para fazer a chamada do código acima, basta apenas colar o código abaixo na classe principal do projeto ou "Classe main".

Teste1.java
 /*  
  * To change this license header, choose License Headers in Project Properties.  
  * To change this template file, choose Tools | Templates  
  * and open the template in the editor.  
  */  
 package teste1;  
 /**  
  *  
  * @author Joel  
  */  
 public class Teste1 {  
   /**  
    * @param args the command line arguments  
    */  
   public static void main(String[] args) {  
     // TODO code application logic here  
     Aquecedor aquecedorLG = new Aquecedor("LG");  
     System.out.println("Marca do aquecedor: " + aquecedorLG.getMarca());  
     System.out.println("Temperatura inicial: " + aquecedorLG.getTemperatura());  
     aquecedorLG.maisFrio();  
     aquecedorLG.maisMorno();  
     aquecedorLG.maisMorno();  
     aquecedorLG.maisMorno();  
     aquecedorLG.maisMorno();  
     aquecedorLG.maisFrio();  
     System.out.println("Temperatura final: " + aquecedorLG.getTemperatura());  
   }    
 }  

Após a colagem do texto acima, salve o projeto e em seguida clique em executar. O resultado deverá ser como mostrado abaixo:

run:
Marca do aquecedor: LG
Temperatura inicial: 15.0
Temperatura final: 25.0

CONSTRUÍDO COM SUCESSO (tempo total: 1 segundos)

ENTENDENDO O PROJETO

      Para essa aplicação, foi criada uma variável chamada: temperatura, que já tem um valor padrão de 15 graus. Depois, foram criados os métodos (maisFriomaisMorno), com valores padrão de -5 Graus para maisFrio e +5 Graus para maisMorno. Assim sendo, fica fácil entender que a variável temperatura foi incrementada apenas com Subtração e Adição de uma maneira bem simples, conforme demonstração abaixo.

temperatura = 15-5+5+5+5+5-5 = 25


A Função getTemperatura, mostra o resultado inicial e final após a execução dos procedimentos.