quinta-feira, 9 de abril de 2015

(Arquitetura computacional) Arquiteturas de computadores e sistemas operacionais

Arquiteturas de computadores e sistemas operacionais
O termo arquitetura de computador vem da possibilidade de se visualizar uma máquina como um conjunto hierárquico de níveis que permite entender como os computadores estão organizados. Os primeiros computadores digitais por exemplo somente possuiam dois níveis. O primeiro é chamado o nível da lógica digital, formado no início por válvulas e depois por transistores, circuitos integrados, etc. O segundo é chamado de nível 1, também chamado de nível de microprograma, que é o nível da linguagem da máquina, onde toda a programação era feita, através de zeros e uns, e que posteriormente seria o responsável por interpretar as instruções do nível 2.
Com Maurice Wilkes em 1951 surgiu outro nível, onde as instruções eram escritas de um modo mais conveniente para o entendimento humano: a técnica consistia em substituir cada instrução desse novo nível por um conjunto de instruções do nível anterior (nível da máquina) ou examinar uma instrução de cada vez e executar a sequência de instruções equivalentes do nível da máquina. Denominam-se estes procedimentos por tradução e interpretação. Isto simplificou o hardware que agora somente tinha um conjunto mínimo de instruções e portanto menos circuitos eram necessários.
A partir daí a evolução do hardware avança juntamente com as novas descobertas científicas: quase na mesma época do aparecimento dos transistores, por exemplo, surgiu o conceito de barramento de dados, que acelerou a velocidade dos computadores. Ao mesmo tempo apareceram os grandes sistemas operacionais, (simplificadamente, um conjunto de programas mantidos no computador durante todo o tempo, liberando o programador de tarefas relacionadas diretamente com o funcionamento da máquina), como o DOS e OS, da IBM. Estes evoluíram possibilitando novos conceitos que melhoraram a performance das máquinas, como por exemplo os sistemas de multiprogramação, isto é, a possibilidade de vários programas serem executados em paralelo em uma mesma da máquina. Se um destes programas tiver origem em um terminal remoto, tal sistema será chamado de tempo compartilhado. Um importante marco que possibilitou esses avanços foi a introdução de processadores de entrada e saída, também chamados de canais. Isso motivou o aparecimento dos conceitos de concorrência, comunicação e sincronização: uma vez que dois processadores estão operando simultaneamente, surge a necessidade de prover mecanismos para sincronizá-los e estabelecer um canal de comunicação entre eles.
É a era das arquiteturas mainframes: o suporte às tarefas computacionais e o desenvolvimento das aplicações eram feitos numa área central, denominada centro de computação. Terminais conectados diretamente à máquina eram utilizados somente por pessoas relacionadas às aplicações disponíveis.
Nos anos 70 surgiram os supercomputadores, máquinas que inovaram na arquitetura. Até o momento, o crescimento da eficiência dos computadores estava limitado pela tecnologia, mais especificamente pelo processamento escalar que exigia que o processador central de um computador terminasse uma tarefa para começar a realizar outra, produzindo o gargalo de von Neumann. Um avanço significativo veio com o supercomputador Cray-1, da Cray Research, em 1971. Foi a primeira máquina pipeline, cujo processador executava uma instrução dividindo-a em partes, como na linha de montagem de um carro. Enquanto a segunda parte de uma instrução estava sendo processada, a primeira parte de outra instrução começava a ser trabalhada. A evolução seguinte foi a denominada máquina vetorial, ou máquina SIMD (single instruction multiple data) cujo processador trabalhava com mais de um conjunto de dados ao mesmo tempo. Um pouco depois surgiu a arquitetura MIMD (multiple instructions multiple data) e apareceram máquinas com múltiplos processadores como a Connection Machine, com 65.536 processadores.
Há primariamente três limites para a performance dos supercomputadores: a velocidade do processador, o gasto de tempo (o termo técnico, amplamente utilizado na Computação, é overhead), que envolve fazer um grande número de processadores trabalharem juntos em uma única tarefa, e a velocidade de entrada e saída entre os processadores e entre os processadores e a memória. A velocidade dos processadores aumenta a cada dia, mas a um alto custo de pesquisa e desenvolvimento, e a realidade é que se está alcançando os limites dos processadores baseados em silício. Seymour Cray demonstrou que a tecnologia de gálio arsênico poderia ser a solução, mas é muito difícil trabalhar com ele e poucas indústrias estariam aptas a desenvolver processadores desse tipo. A solução, como se falará mais abaixo caminha para o uso de um maior número de processadores, dando maior velocidade ao computador pelo uso desses processadores através do processamento paralelo.
Com a tecnologia VLSI (quarta geração de computadores) surgiram os minicomputadores, o que possibilitou muitas empresas e universidades informatizarem seus departamentos. Os grandes usuários interligavam os minicomputadores para enviar tarefas aos seus mainframes. A arquitetura principal continuava no entanto estabelecida no centro de computação. Do minicomputador para o computador pessoal foi somente um passo, e no início da década de 1980 apareceram os primeiros PC's. Ainda nos anos de 1980 apareceram as arquiteturas RISC (Reduced Instruction Set Code), com a promessa de ganho de desempenho pela eliminação do conceito de microprograma. De qualquer maneira estas máquinas ainda são máquinas de von Neumann tradicionais, com todas as suas limitações, a maior delas a velocidade dos circuitos que não pode crescer indefinidamente.
As tentativas de quebrar o gargalo de von Neumann e o início da descentralização dos sistemas, com o surgimento das arquiteturas de rede que possibilitaram a universalização do uso da tecnologia da Computação, fizeram emergir e desenvolver as arquiteturas paralelas de hardware.
A idéia de incluir paralelismo nos computadores é tão antiga quanto os próprios computadores. Trabalhos desenvolvidos por von Neumann na década de 1940 já discutiam a possibilidade de algoritmos paralelos para a solução de equações diferenciais. O sistema Model V, desenvolvido entre 1944 e 1947 por G. R. Stibitz e S. B. Willians nos laboratórios da Bell Telephone é um exemplo típico de máquina paralela. Constituído por dois processadores e de três posições de entrada e saída, esse multiprocessador primitivo tanto era capaz de executar dois programas distintos como era possível que os dois processadores ficassem alocados para um mesmo programa. Posteriormente foi desenvolvido o Illiac IV, na década de 1960, constituído por 64 processadores. Como foi citado, a partir da década de 1970 começaram a ser produzidos supercomputadores baseados em arquiteturas paralelas.
Juntamente com as arquiteturas evoluiram os sistemas operacionais e a evolução das linhas de processadores de uma empresa como a Intel servem para refletir a evolução da indústria dos computadores em um determinado período. Como destaque podem-se citar o MS-DOS, o OS/2 e o UNIX. Especialmente este último, que surgiu como fruto dos trabalhos de um engenheiro da Bell Labs, Ken Thompson, foi popularizado nos meios universitários que usavam computadores PDP-11/45, durante a década de 1970. A palavra UNIX espalhou-se rapidamente por todo o mundo e no início de 1980 este sistema operacional estava disponível em mais máquinas do que qualquer outro sistema operacional da época, continuando hoje ainda a ser amplamente utilizado.
A mais nova arquitetura, que determinou a mais recente evolução da Computação foi o resultado da rápida convergência das tecnologias de comunicações de dados, telecomunicações e a própria informática. É a Internet, ou modelo computacional baseado em uma rede, que teve sua origem nos anos da década de 1970, como um esforço do Departamento de Defesa dos EUA para conectar a sua rede experimental, chamada ARPAnet, a várias outras redes de rádio e satélites. Espalhou-se logo em seguida nos meios acadêmicos e está bastante popularizada.
                                              Informática - Brasil Escola            
Fonte:

http://www.brasilescola.com/informatica/revolucao-do-computador.htm

(Arquitetura computacional) Evolução dos computadores até o dia de hoje.

Você sabia que os primeiros computadores da década de 1940 possuíam somente dois níveis de linguagem de programação: o nível da linguagem de máquina, no qual toda a programação era feita, e o nível da lógica digital, onde os programas eram efetivamente executados. Com Wilkes, em 1951, surgiu a ideía de se projetar um computador a três níveis, a fim de se simplificar o hardware. Esta máquina tinha um programa denominado interpretador armazenado permanentemente, cuja função era executar os programas em linguagem de máquina. O hardware assim poderia ser simplificado: teria apenas que executar um pequeno conjunto de microinstruções armazenadas, ao invés de todo o programa em linguagem de máquina, o que exigia menos circuitos eletrônicos. A partir daí começam a evoluir as linguagens e as arquiteturas das máquinas, impulsionadas, principalmente, pelo aparecimento de um novo conceito na História da Computação: os Sistemas Operacionais.

Da segunda geração de computadores aos dias de hoje
A segunda geração (1956 - 1963) foi impulsionada pela invenção do transistor (1948) e em 1956 já se produziam computadores com esta tecnologia. Apareceram também os modernos dispositivos, tais como as impressoras, as fitas magnéticas, os discos para armazenamento, etc. Os computadores passaram a ter um desenvolvimento rápido, impulsionados principalmente por dois fatores essenciais: os sistemas operacionais e as linguagens de programação.Os circuitos integrados propiciaram um novo avanço e com eles surgiram os computadores de terceira geração (1964 - 1970). As tecnologias LSI, VLSI e ULSI abrigam milhões de componentes eletrônicos em um pequeno espaço ou chip, iniciando a quarta geração, que vem até os dias de hoje. Os atuais avanços em pesquisa e o projeto de novas tecnologias para os computadores estão possibilitando o surgimento da quinta geração. Dois avanços que configuram um divisor de águas são o processamento paralelo, que quebrou o paradigma de von Neumann, e a tecnologia dos supercondutores.


(Arquitetura computacional) O que é o sistema binario no computador ?

Sistema binário
Os computadores utilizam internamente o sistema binário (sistema numérico posicional de base 2). A característica mais notável deste sistema numérico é a utilização exclusiva dos algarismos "1" e "0", os chamados "dígitos binários". Através do sistema binário, todas as quantidades e todos os valores de quaisquer variáveis poderão ser expressos usando uma combinação de um determinado número de dígitos binários, ou seja, usando apenas os algarismos "1" e "0".
O uso do sistema binário pelos computadores decorre do fato dessas máquinas se basearem em circuitos elétricos ou eletrônicos. Isto porque a grande maioria dos componentes de circuitos elétricos podem assumir apenas um dentre dois estados. Por exemplo: interruptores podem estar fechados ou abertos, capacitores carregados ou descarregados, lâmpadas acesas ou apagadas, circuitos energizados ou desenergizados e assim por diante. Isto facilita extremente a representação de grandezas expressas no sistema binário usando estes componentes.
Para entender a razão disto, imagine, por exemplo, que se deseje representar o número dez mediante um conjunto de lâmpadas, onde uma lâmpada acesa representa o algarismo "1" e uma lâmpada apagada o algarismo "0". No sistema binário, o número dez assume a forma "1010" (para entender o fenômeno basta saber que qualquer número pode ser expresso na base dois usando apenas os algarismos "1" e "0"; portanto, mesmo que você não saiba fazer a conversão de números do sistema decimal para o binário, acredite que "dez" em binário é "1010" e siga adiante; se desejar uma explicação mais detalhada, consulte a literatura técnica e informe-se sobre sistemas numéricos e conversão de bases). Portanto, para representar o número dez bastam quatro lâmpadas uma ao lado da outra, a da esquerda acesa, sua vizinha apagada, a seguinte acesa e a última da direita apagada, na configuração "1010". É claro que isto pode ser feito igualmente usando interruptores fechados e abertos, circuitos energizados e desenergizados ou capacitores carregados e descarregados (na verdade, alguns circuitos de memória usados nos computadores empregam capacitores microscópicos para armazenar valores binários). Todo dispositivo que possa assumir um dentre dois estados possíveis pode ser utilizado para representar quantidades expressas no sistema binário.
O uso exclusivo dos algarismos "1" e "0" nos circuitos internos dos computadores pode levar a crer que eles apenas servem para resolver problemas muito específicos, cujas grandezas de entrada e saída assumam apenas dois valores e que portanto sua utilização há de ser extremamente limitada. Esta conclusão é falsa. Na verdade, toda e qualquer grandeza do mundo real, desde as cores e posições dos pontos que formam a imagem da Mona Lisa, os compassos, timbres e notas musicais que compõem a Aria da Quarta Corda, o conjunto de caracteres que consubstanciam a Divina Comédia até a sucessão ordenada de aminoácidos que formam o DNA dos seres vivos, em suma: toda e qualquer criação humana ou da natureza, seja ela qual for, pode ser codificada e representada (com maior ou menor precisão) sob a forma de um conjunto de números. E estes números podem ser expressos no sistema binário. É por isso que o computador é uma máquina tão versátil e se presta a atividades tão disparatadas como calcular, escrever, desenhar, reproduzir músicas ou vídeo. Com um computador é possível pintar e bordar.
Para que um dado ou informação possa ser processado por um computador, basta que ele seja codificado de tal forma que possa ser "modelado" através de um conjunto de números. Estes números serão então expressos no sistema binário e processados pelo computador.
O processo de conversão das grandezas do mundo real em quantidades expressas no sistema binário chama-se "digitalização" (por exemplo: o dispositivo denominado "escaner" nada mais é que um digitalizador de imagens, enquanto o processo de gravação de um CD de áudio é a digitalização de sons).
Mas a digitalização é apenas o passo inicial: transformar as grandezas do mundo real em números e exprimi-las no sistema binário. O passo seguinte é escolher uma ferramenta para trabalhar com os valores assim expressos.

Esta ferramenta é a lógica digital.

(Arquitetura computacional) Unidade central de processamento;

Ø  A CPU (Central Processing Unit) é a parte de um computador que interpreta e leva as instruções contidas no software.
Ø  Na maioria das CPUs, essa tarefa é dividida entre uma unidade de controle que dirige o fluxo do programa e uma ou mais unidades de execução que executam operações em dados.
Ø  Quando cada parte de uma CPU está fisicamente em um único circuito integrado ela é chamada de microprocessador.

 Praticamente todas as CPU'S são fabricadas com microprocessadores.

(Arquitetura computacional) Principais componetes

·         Os componentes mais importantes são: A CPU e a Memória.

O projeto de circuitos de uma CPU determina sua velocidade básica, porém outros fatores podem interferir na velocidade, descreveremos alguns deles:

Memória: mais RAM significa que o computador pode usar programas maiores e mais poderosos, e que esses programas podem acessar arquivos de dados maiores.

Pode também fazer o computador trabalhar mais rápido.


O computador não precisa necessariamente carregar todo um programa na memória para executá-lo, mas, quanto mais couber na memória, mais depressa será a execução.

·         Relógio interno do computador: sua principal finalidade não é manter a hora do com dia. De acordo com sua velocidade, ele processa os dados mais depressa.
·         Hertz é uma medida de ciclos do relógio por segundo. Ciclo é o tempo que demora para executar uma operação.
·         Megahertz (MHz) significa "milhões de ciclos por segundo".
·         Barramento: este termo refere-se aos percursos entre os componentes de um computador.
·         O barramento de dados é um percurso elétrico que conecta a CPU, a memória e os outros dispositivos de hardware da placa-mãe.
·         É formado por vários fios, onde cada um transfere um bit de cada vez. Por exemplo um barramento de 32 bits, transfere 4 bytes.
·         Memória cache: entre as operações mais demoradas que umaCPU precisa efetuar está a transferência de dados entre a memória e os registradores.
·         O problema é que a CPU é muito mais rápida do que a RAM.
·         A solução parcial para esse problema é incluir uma memória cache na CPU. A cache é parecida com a RAM, mas extremamente mais rápida em comparação a memória normal, e é usada de maneira diferente, contém os dados e instruções mais recentemente carregadas pela CPU.



( Arquitetura Computacional) ) que são periféricos de saida ?

Periféricos de saida são aparelhos ou placas que transmitem as informações do computador para o usuario. Exemplo: Monitor, impressora ...


·         Monitor
1.    É um dispositivo de saída, ou seja, serve para o computador exibir ao usuário programas em execução, vídeos, animações e outros tipos de informações.
2.    Atualmente, estão disponíveis no mercado monitores coloridos com uma grande variedade de tamanhos (14, 15, 17, 20 e 21 polegadas).
3.    Anteriormente, predominavam os monitores monocromáticos e de menor resolução (VGA).
4.    Podem ser monocromáticos (apenas uma cor) ou colorido.
5.    A placa controladora de vídeo é uma interface entre o monitor e aCPU (recebe dados da CPU e envia-os para o monitor).
6.    Existem dois tipos de monitores: CRT, semelhantes a aparelhos de TV, e LCD, comumente usados em notebooks



·         Impressora
1.    É um dispositivo que permite a obtenção de cópias em papel de textos, gráficos, desenhos e outros trabalhos criados no computador.
2.    Existe uma enorme variedade de marcas e modelos de impressoras, que podem ser divididas por sua tecnologia de impressão.



(Arquitetura computacional) O que são perifericos de entrada ?

São aparelhos ou placas que enviam informações ao computador por exemplo: o teclado,o mouse e etc...

·         Teclado

É um dispositivo de entrada, ou seja, serve para que o usuário forneça informações ao computador. Semelhante aos teclados usados nas máquinas de escrever. Existem quatro partes em um teclado padrão: as teclas alfanuméricas, o teclado numérico reduzido, as teclas de função e as teclas de movimentação .


·         Mouse
1.    É considerado um dispositivo de apontamento, ou seja, é um dispositivo de entrada que o usuário emprega para apontar para determinado item na tela, solicitando assim que o programa realize determinada ação.
2.    Em geral, seu funcionamento consiste em posicionar o cursor (ponteiro do mouse) sobre o item desejado, exibido na tela, e dar um ou dois cliques em um dos botões.
3.    O mouse pode ser substituído por outros dispositivos apontadores como trackball, touchpad, entre outros.
4.    A utilização básica do mouse pode ser feita com a combinação de 3 técnicas:
5.    Dar um clique: mover o ponteiro até o local desejado, pressionar e soltar o botão.
6.    Dar dois clique: mover o ponteiro até o local desejado, pressionar e soltar o botão, duas vezes.
7.    Arrastar: mover o ponteiro até o local desejado e depois pressione o botão, mantendo-o pressionado enquanto move o mouse.







Arquitetura computacional ...

Arquitetura de computadores
  • Arquiteturas de hardware mais generalizadas, tais como computação em cluster e arquiteturas NUMA (acesso não-uniforme à memória).
  • A utilização menos formal do termo refere-se a uma descrição dos requisitos (especialmente requisitos de velocidades e interligação) ou implementação do design para as várias partes de um computador, tais como memóriaplaca-mãeperiféricos eletrônicos ou, mais frequentemente, CPU.
  • A arquitetura é frequentemente definida como o conjunto de atributos da máquina que um programador deve compreender para que consiga programar o computador específico com sucesso, ou seja, para que consiga compreender o que o programa irá fazer aquando da sua execução. Por exemplo, parte da arquitetura são as instruções e o raio de operadores manipulados por elas. De uma maneira semelhante, a frequência em que o sistema opera não é incluída na arquitetura. Esta definição revela as duas principais considerações dos arquitetos de computadores: (1)desenhar hardware que se comporta como o programador pensa que se irá comportar, (2)utilizar implementações existentes de tecnologias (por exemplo, semicondutores) para construir o melhor computador possível. A 2ª consideração é frequentemente referida como a microarquitetura.3

Origem: Wikipédia, a enciclopédia livre.


A evolução da informática foi caracterizada pelo desenvolvimento de computadores com as mais diversas características, traduzidas pelos diferentes parâmetros, cada vez mais conhecidos da maioria de usuários de computador: a CPU adotada, a capacidade de memória, a capacidade do disco rígido, a existência de memória cache e outros menos conhecidos. A definição destes parâmetros e a forma como os diversos componentes de um computador são organizados, define aquilo que é conhecido por arquitetura de computador e vai determinar aspectos relacionados à qualidade, ao desempenho e à aplicação para a qual o computador vai ser orientado.1 2

Existem vários modos de uso do termo, que podem ser usados referindo-se a: