Docstoc

Arquitetura de hardware

Document Sample
Arquitetura de hardware Powered By Docstoc
					          Arquitetura de hardware
                        INTRODUÇÃO:
   “Um computador é uma máquina (composta de partes
           eletrônicas e eletromecânicas) capaz de
  sistematicamente coletar, manipular e fornecer resultados
           das manipulações de informações para
                    um ou mais objetivos.”
    “Processamento de dados consiste em uma série de
        atividades ordenadamente realizadas, com o
objetivo de produzir um arranjo determinado de informações
                   a partir de outras obtidas
                         inicialmente.”
“Dado pode ser definido como a matéria-prima originalmente
             obtida de uma ou mais fontes (etapa
                           da coleta).”
“Informação é o resultado do processamento, isto é, o dado
                  processado ou “acabado”.”
               Conceito de sistema
• 1.1.2 Sistemas:
• “Um sistema é um conjunto de partes coordenadas que concorrem para
  a realização de um determinado objetivo.”
• Sistemas se fazem presentes em praticamente todas as áreas do
  desenvolvimento: comercial, científico, industrial e social.
• “Sistema de processamento de dados (SPD) são aqueles
  responsáveis pela coleta, armazenamento, processamento e
  recuperação, em equipamento eletrônico, dos dados necessários ao
  funcionamento de um outro sistema maior: o sistema de informação.”
• a) Sistema de computação;
• b) Sistema de aplicação.
• “Sistema de informação de uma empresa pode ser conceituado como
  o conjunto de métodos, processos e equipamentos necessários para se
  obter, processar e utilizar informações dentro da empresa.”
• Os sistemas de informações se desenvolvem segundo os níveis
  operacional, gerencial e alto nível da organização (estratégico).
• “Sistema de informações gerenciais (SIG) é o sistema que engloba
  todos os componentes e todos os níveis de decisão de uma
  organização.”
                   Programas
• Os computadores passam o tempo todo executando
  PROGRAMAS.
• Os programas nada mais são que grupos de instruções e
  dados.
• Por exemplo, quando você está executando um jogo no
  computador, está na verdade executando um programa.
• Se você deixa o computador "parado", por exemplo, na
  hora do almoço, pode pensar que nessa hora o
  computador não está executando nenhum programa.
• Na verdade, mesmo que você não tenha dado nenhum
  comando, o computador está na verdade executando um
  programa interno. O que este programa faz é monitorar
  continuamente o teclado e o
• MOUSE, para checar se você envia um novo comando.
• A única hora em que o computador não está executando
  programa nenhum é quando está desligado.
  Execução de programas pelo processador
• Para que um programa possa ser executado, é preciso que seja
  transferido para a memória RAM. A maioria dos programas fica
  armazenada em disco mas a CPU não pode executar nenhum
  programa diretamente a partir do disco.
• O programa precisa ser antes lido do disco e carregado na RAM.
• Por exemplo, para executar o programa FORMAT (usado para
  formatar discos), é preciso que você forneça pelo teclado um
  comando como: FORMAT A:
• Uma vez que você digita este comando, o programa que se
  encontra no arquivo de nome FORMAT.COM é lido do HD e
  carregado na RAM.
• A CPU pode então executar o programa, que fará a formatação de
  um disco.
• A operação de cópia do programa do HD para a memória principal
  (RAM) é chamada de CARGA. O processamento do programa pela
  CPU é chamado de EXECUÇÃO.
 Execução de programas pelo processador
• Bem, e quem carrega o sistema operacional?
• Numa memória principal do tipo ROM (read only memory) existe um
  sistema chamado BIOS composto de muitos programas
• Um dos programas chamado POST – power on self test , verifica o
  hardware. Os programas abaixo participam da carga do windows
  XP. Este processo é conhecido como BOOT.

                       Localização                     Fase
 Arquivo
 Ntldr                 Raiz da partição de sistema C:\ Pré-boot e boot
 Boot.ini              Raiz da partição de sistema C:\ boot
 Bootsect.dos          Raiz da partição de sistema C:\ boot
 Ntdetect.com          Raiz da partição de sistema C:\ boot
 Ntoskrnl.exe          systemroot\System32             Carga do kernel
 Hal.dll               systemroot\System32             Carga do kernel
 System                systemroot\System32\Config      Inicialização do kernel
 Device drivers (*.sys) systemroot\System32\Drivers    Inicialização do kernel
               Programa de computador
•   Sistemas de Computação:
•   “Programa é um conjunto de instruções.”
•   Algoritmo para soma de 100 números.




•   Um programa de computador é a formalização de um algoritmo em linguagem inteligível pelo
    computador.
•   “Linguagem binária é a linguagem de comunicação dos computadores.”
•   Na linguagem binária os caracteres inteligíveis não são A, B, +, 0, etc., mas apenas zero(0) e um (1).
•   Essa linguagem também chamada de linguagem de máquina, é, para os seres humanos, tediosa de
    manipular, difícil de compreender e fácil de acarretar erros. Por essa razão, foram desenvolvidas outras
    linguagens, mais próximas do entendimento dos operadores, genericamente chamadas de Linguagens
    de programação.
•   Instruções de máquinas entendidas pelos computadores:
            a) executar operações aritméticas sobre dois números;
            b) executar operações lógicas sobre dois números;
            c) mover um conjunto de bits (um número ou parte) de um ponto para outro do computador;
            d) desviar a seqüência do programa;
            e) comunicação com algum dispositivo de entrada ou saída de dados.
•   “Hardware é o conjunto formado pelos circuitos eletrônicos e partes eletromecânicas de um
    computador.”
•   “Software consiste em programas, de qualquer tipo e em qualquer linguagem, que são introduzidos na
    máquina para fazê-la trabalhar, passo a passo, e produzir algum trabalho.”
      Compilação x Interpretação
• Existem dois métodos de tradução de um programa
  escrito em linguagem de programação para a linguagem
  de máquina: interpretação e compilação.
• Na interpretação, cada comando é analisado
  sintaticamente de forma individual, traduzido para
  linguagem de máquina e executado. Na prática,
  linguagens que adotam esta técnica são utilizadas
  apenas para fins de prototipagem ou testes específicos.
• Na compilação, o programa fonte inteiro é verificado
  quanto à correção sintática. Quando está sintaticamente
  correto, o programa é traduzido, na íntegra, para a
  linguagem de máquina, ou seja, o programa fonte é
  traduzido, dando origem ao programa objeto. Só então
  tem início a verificação da semântica do programa, isto
  é, se o programa executa corretamente.
Níveis de programação
Microprocessadores Intel
Conversão de base
    Adição de números binários
A operação de soma de dois números em base 2 é efetuada de modo
   semelhante à soma decimal,
• levando-se em conta, apenas, que só há dois algarismos disponíveis
   (0 e 1). Assim:
• 0+0=0
• 0+1=1
• 1+0=1
• 1 + 1 = 0, com "vai 1“
Adição Utilizando Números Com Sinal:
• O Meio normal para representar números com sinal (+
  ou -) é adicionando-se um BIT ao número,
• chamado BIT de sinal (BIT mais representativo).
• Convenção:
• 0: BIT DE SINAL que representa um número positivo;
• 1: BIT DE SINAL que representa um número negativo.
• Ex:
• 0 0111 = (+7)10
• 1 0111 = (-7)10
• ↑
• Bit de sinal
         Aritmética complementar
• Complemento Aritmético: É definido como sendo o que
  falta a um número para atingir o seu módulo. Módulo de um
  número de um dígito é a quantidade de números diferentes
  que podemos distinguir.
• Ex: Sistema Decimal -> Módulo 10
• 2 -> 8
• 4 -> 6
• No sistema binário, composto por dois símbolos, isto é, os
  BITS 0 e 1, um é complemento do outro.
• Subtração no sistema complemento-de-2:
• Obtenção do complemento-de-2 de um número binário:
• - Troca-se cada 0 por 1 e vice-versa (complemento-de-1);
• - Soma-se 1 ao resultado.
• Ex.: 1001 ⇒ 0110 (complemento-de-1) + 1 = 0111
  (complemento-de-2)
• OBS: A principal vantagem do uso de complemento é
  executar a SUBTRAÇÃO pelo processo da ADIÇÃO.
    Representação em ponto flutuante
•   Consideremos o número 57,683. Este número pode ser também expresso como
    0,57683 x 100. E também poderia ser expresso com 57683 x 10-3 ou ainda 0,57683
    x 102. Na realidade, qualquer número - inteiro ou fracionário - pode ser expresso
    neste formato
•   número x base expoente, em que variamos duas coisas: a posição da vírgula
    (que delimita a parte fracionária) e a potência à qual elevamos a base. Essa
    representação é denominada representação em ponto flutuante, pois o ponto
    varia sua posição, modificando, em conseqüência, o valor representado.
•   Representação Normalizada:
•   Na representação normalizada, o número é preparado movendo a vírgula para a
    direita ou para a esquerda de forma que o número seja menor que 1, o mais
    próximo possível de 1, obviamente multiplicado por uma potência da base de forma
    a manter o valor do número. Em geral, isso significa que o primeiro dígito
    significativo seguirá imediatamente ao ponto (ou vírgula).
•   Por exemplo:
•   57,68310 --> normalizando ==> 0,57683 x 102
•   0,000462810 --> normalizando ==> 0,4628 x 10-3
•   0,000010112 --> normalizando ==> 0,1011 x 2-4
•   De forma genérica, podemos representar a forma normalizada:
•   ± número x base ±expoente
•   A parte do número representado dessa forma normalizada (os algarismos
    significativos), damos o nome de mantissa.e portanto podemos representar:
•   ± 0,M x B ± e onde M é a mantissa, B é a base e e é o expoente.
  Representação de números reais



• Pode-se notar acima que a base não é expressa. Como a base,
  para cada computador, será sempre a mesma, não há
  necessidade de apresentar a base na representação (no exemplo,
  a base é 2). Dizemos que a base é implícita.
• Para cada computador, o número total M de bits para a
  representação, o número de bits para SN (sinal do número), para
  SE (sinal do expoente), para a mantissa e para o expoente, são
  pré-definidos em projeto.
• Assim, podemos concluir que, quanto maior o número de bits para
  o expoente, maior será a faixa de números que o computador
  pode representar (maior alcance); e quanto maior o número de
  bits para a mantissa, maior a precisão da representação. Porém,
  reduzindo-se a mantissa, perde-se precisão e há maior a
  necessidade de truncar o número (truncar um número é cortar
  algarismos significativos que não podem ser representados).
           Overflow e underflow
• Ocorre overflow quando o valor absoluto do dado a ser
  representado excede a capacidade de representação,
  porque o número de bits do expoente (neste caso,
  positivo) é insuficiente para representar o dado.
• Um outro problema ocorre na região de números
  próximos de zero, que tem o maior expoente negativo
  possível. Ocorre underflow quando o valor absoluto do
  dado a ser representado é tão pequeno que fica menor
  que o menor valor absoluto representável. Nesse caso,
  o expoente é negativo mas não representa os números
  muito próximos de zero e ocorre uma descontinuidade
  na representação, com os números próximos a zero não
  sendo representados.
• Underflow não é o mesmo que imprecisão. Dados na
  faixa de underflow não podem ser representados,
  ocorrendo estouro no expoente.
           Conceitos de lógica digital
•   Exatamente tudo no mundo digital é baseado no sistema numérico binário.
    Numericamente, isso envolve apenas dois símbolos: 0 e 1. Na lógica
    digital, podemos especificar que:
           0 = Falso = Não
           1 = Verdadeiro = Sim
•   Todos as complexas operações de um computador digital acabam sendo
    combinações de simples operações aritméticas e lógicas básicas: somar
    bits, complementar bits (para fazer subtrações), comparar bits, mover bits.
    Estas operações são fisicamente realizadas por circuitos eletrônicos,
    chamados circuitos lógicos ou gates - "portas" lógicas.
•   Computadores digitais (binários) são construídos com circuitos eletrônicos
    digitais - as portas lógicas (circuitos lógicos). Os sistemas lógicos são
    estudados pela álgebra de chaveamentos, um ramo da álgebra moderna ou
    álgebra de Boole, conceituada pelo matemático inglês George Boole (1815
    - 1864).
•   A álgebra de Boole trabalha com apenas duas grandezas: falso ou
    verdadeiro. As duas grandezas são representadas por 0 (falso) e 1
    (verdadeiro).
•   Nos circuitos lógicos do computador, os sinais binários são representados
    por quantidades físicas, sinais elétricos, os quais são gerados e mantidos
    internamente ou recebidos de elementos externos, em dois níveis de
    intensidade, cada um correspondendo a um valor binário.
Exemplo de um sinal binário
       Portas e operações lógicas
• Enquanto cada elemento lógico ou condição é representado por
  um valor “0” ou “1”, faz-se necessário que tenhamos meios de
  combinar diferentes sinais lógicos ou condições para gerar um
  resultado útil.
• Uma porta lógica (“gate”) é um circuito eletrônico, portanto uma
  peça de hardware, que se constitui no elemento básico mais
  elementar de um sistema de computação. Grande parte do
  hardware do sistema é fabricado através da adequada
  combinação de milhões desses elementos.
       Tabela Verdade
• São tabelas que representam todas as possíveis combinações
  das variáveis de entrada de uma função, e os seus respectivos
  valores de saída.
• Uma tabela verdade possui, então, tantas linhas de informação
  quantas são as possíveis combinações de valores de entrada
  que se tenha.
       Operadores Lógicos
• Uma operação lógica realizada sobre um ou mais valores lógicos
  produz um certo resultado (também um valor lógico), conforme a
  regra definida para a operação lógica.
Portas lógicas (gates)
          Porta lógica AND - E
• A porta AND combina dois ou mais sinais de entrada
  de forma equivalente a um circuito em série, para
  produzir um único sinal de saída, ou seja, ela produz
  uma saída 1, se todos os sinais de entrada forem 1;
  caso qualquer um dos sinais de entrada for 0, a porta
  AND produzirá um sinal de saída igual a zero.
Exemplo de utilização do gate AND
        Porta lógica OR - OU
• A porta OR é definida para produzir um resultado
  verdade (=1) na sua saída, se pelo menos uma
  das entradas for verdade.
Porta lógica NOT – NÃO (inversor)

• A porta NOT é um circuito lógico que requer apenas um
  valor na entrada: inverte o sinal de entrada (executa a
  negação do sinal de entrada), ou seja, se o sinal de
  entrada for 0 ela produz uma saída 1, se a entrada for 1
  ela produz uma saída 0.
        Porta NAND – NOT AND
• A porta NAND equivale a uma porta AND seguida por
  uma porta NOT, isto é, ela produz uma saída que é o
  inverso da saída produzida pela porta AND. Esta porta
  produzirá uma saída falsa se e somente se todas as
  entradas forem verdade.
             Porta NOR – NOT OR
• A porta NOR equivale a uma porta OR seguida por uma porta NOT,
  isto é, ela produz uma saída que é o inverso da saída produzida
  pela porta OR. Esta porta produzirá uma saída verdade se e
  somente se todas as entradas forem falsas.
       Porta XOR – Exclusive OR
• A porta (ou operação lógica) XOR, abreviação do termo
  EXCLUSIVE OR, pode ser considerada um caso
  particular da função OR, ou seja, sua definição: “a saída
  será verdade se exclusivamente uma ou outra entrada
  for verdade”. A porta XOR compara os bits: ela produz
  saída 0 quando todos os bits de entrada são iguais e
  saída 1 quando pelo menos um dos bits de entrada é
  diferente dos demais.
Exemplo de emprego de circuitos XOR para teste
         de igualdade entre palavras
     Expressões lógicas – aplicações de portas
• Uma expressão lógica ou função lógica pode ser definida como
  sendo uma expressão algébrica formada por variáveis lógicas
  (binárias), por símbolos representativos de uma operação lógica
  (+, ., etc.), por parênteses (às vezes) e por um sinal de igual.

            F = X + Y .Z - Expressão lógica da função F




Diagrama lógico da função F             Tabela verdade da função F
     Cálculo de expressões lógicas
• Assim como podemos obter todos os possíveis resultados
  de uma expressão lógica para cada um dos valores de
  entrada componentes da expressão (através da construção
  progressiva da tabela verdade), também poderemos obter
  o valor da expressão para um valor específico de cada
  uma das entradas (usar apenas uma linha da tabela
  verdade).
• Na avaliação de uma expressão lógica, as seguintes
  regras devem ser seguidas:
  a) Uma expressão pode ou não conter parênteses; quando
  contêm, eles têm a mesma prioridade que nos cálculos da
  álgebra comum;
  b) A prioridade da operação AND é maior que a do cálculo
  de uma operação OR, como na aritmética comum. Assim:
  X+Y .Z = X + (Y .Z)
  c) A prioridade da operação OR é maior que a operação
  XOR
                   Álgebra Booleana
• Álgebra Booleana é uma área da Matemática que trata de regras e
  elementos de Lógica. O projeto de elementos digitais está relacionado
  com a conversão de idéias em hardware real, e os elementos encontrados
  na álgebra booleana permitem que uma idéia, uma afirmação, possa ser
  expressa matematicamente. Permitem também que a expressão
  resultante da formulação matemática da idéia possa ser simplificada e,
  finalmente, convertida no mundo real do hardware de portas lógicas e
  outros elementos digitais.
          Evolução da microeletrônica




Os CHIPS podem ser divididos em várias categorias, dependendo da quantidade de transistores que
existem em seu interior:
SSI - Short Scale of Integration, ou Integração em Baixa Escala. Esse chip contém em seu interior
apenas algumas dezenas de transistores.
MSI - Medium Scale of Integration, ou Integração em Média Escala. Esse chip contém algumas dezenas
de transistores.
LSI - Large Scale of Integration, ou Integração em Alta Escala. Contém em seu interior, alguns milhares
de transistores.
VLSI - Very Large Scale of Integration, ou Integração em Escala Muito Alta. Esse chip contém da ordem
de dezenas de milhares de transistores, ou mais.
ULSI – Ultra Large Scale of integration
       Circuitos integrados - chips
• Um circuito integrado (CI) é um pequeno dispositivo, às vezes
  denominado chip ou microchip, que contém em seu interior dezenas
  e ate milhões de componentes eletrônicos: transistores, diodos,
  resistores e suas interligações. Estes componentes são os
  formadores das portas lógicas que, interligadas, formam um
  determinado circuito combinatório. A pastilha é encapsulada em um
  pacote de cerâmica ou plástico e as conexões com o exterior são
  soldadas aos pinos externos para completar o dispositivo.
Identificação dos componentes de um computador




  Variáveis envolvidas: LADO1, LADO2, HIPOTENUSA, Q1, Q2
Componentes de um sistema de computação
                  Função dos componentes
•   UCP → é o componente vital do sistema de computação, responsável pela realização das operações
    de processamento (os cálculos matemáticos com os dados, etc.) e pelo controle de quando e o que
    deve ser realizado, durante a execução de um programa. Tal controle é realizado através da emissão
    de sinais apropriados de controle, representados na figura pelas linhas pontilhadas.
•   Memória → é o componente de um sistema de informação cuja função é armazenar as informações
    que são, foram ou serão manipuladas pelo sistema. Os programa e os dados são armazenados na
    memória para execução imediata (memória principal) ou para execução ou uso posterior (memória
    secundária). Há duas únicas ações que podem ser realizadas:
    1)a de guardar um elemento na memória, então chamamos de armazenar e a operação associada a
    esta ação é de escrita ou gravação (“write”) ou
    2) recuperação de um elemento da memória, ação de recuperar, e operação de leitura (“read”).
•   Dispositivos de Entrada e Saída → serve basicamente para permitir que o sistema de computação
    se comunique com o mundo externo, realizando ainda, a interligação, a conversão das linguagens do
    sistema para a linguagem do meio externo e vice-versa. Os seres humanos entendem símbolos
    como A, b, *, ?, etc. e o computador entende sinais elétricos que podem assumir um valor de +3Volts
    para representar 1 e ou outro valor, 0 Volts para representar 0. O teclado (dispositivo de ENTRADA)
    interliga o usuário e o computador, por exemplo, quando pressionamos a tecla A, os circuitos
    eletrônicos existentes no teclado “convertem” a pressão mecânica em um grupo de sinais elétricos,
    alguns com voltagem alta (bit 1) e outras com voltagem baixa (bit 0), que corresponde, para o
    computador, ao caractere A. Os dispositivos de SAÍDA operam de modo semelhante, porém em
    sentido inverso, do computador para o mundo exterior, convertendo os sinais elétricos em símbolos
    conhecidos por nós.
•   A função da UCP consiste, então, em:
    a) buscar uma instrução na memória, uma de cada vez;
    b) interpretar que operação a instrução está explicitando (pode ser e soma de dois números, uma
    multiplicação, etc.);
    c) buscar os dados onde estiverem armazenados, para trazê-los até a UCP;
    d) executar efetivamente a operação com os dados, guardar o resultado no local definido na
    instrução;
    e) reiniciar o processo apanhando nova instrução.
                              Bit e byte
•   Bit → é a menor unidade de informação armazenável em um computador.
    Bit é a contração das palavras inglesas Binary Digit. O bit pode ter, então,
    somente dois valores: 0 e 1. Evidentemente, com possibilidades tão
    limitadas, o bit pouco pode representar isoladamente; por essa razão, as
    informações manipuladas por um computador são codificadas em grupos
    ordenados de bits, de modo a terem um significado útil.
•   Caractere → é o menor grupo de bits representando uma informação útil e
    inteligível para o ser humano. Qualquer caractere a ser armazenado em
    um sistema de computação é convertido em um conjunto de bits
    previamente definidos para o referido sistema (chama-se código de
    representação de caracteres). Cada sistema poderá definir como (quantos
    bits e como se organizam) cada conjunto de bits irá representar um
    determinado caractere.
•   Byte → é o grupo de 8 bits, tratados de forma individual, como unidade de
    armazenamento e transferência. Como os principais códigos de
    representação de caracteres utilizam 8 bits por caractere, os conceitos de
    byte e caractere tornam-se semelhantes e as palavras, quase sinônimas.
•   Múltiplos: Kilobyte (Kb) = 2 ^ 10 bytes = 1024 bytes
               Megabyte (Mb) = 1 Kbyte x 1 Kbyte = 1.048.576 bytes
               Gigabyte (Gb) = 1 Kbyte x 1 Mbyte = 1.073.741.824 bytes
             Terabyte (Tb) = 1 Gbyte x 1 Kbyte = 1.099.511.627.776 bytes
         Classificação dos computadores
•   Microcomputadores → surgiram comercialmente por volta de 1974, através do
    desenvolvimento dos microprocessadores (todos os componentes de uma UCP em uma
    única pastilha) e o nome foi justamente devido ao tamanho e à capacidade de
    processamento, ambos pequenos em relação ao que já existia no mercado. Há no mercado
    várias categorias de microcomputadores, classificadas quanto ao tamanho físico do
    equipamento e a sua portabilidade: Mesa ou desktop, Laptops, Palmtops.
•   Estação de Trabalho → é essencialmente um microcomputador projetado para realizar
    tarefas pesadas, em geral na área científica ou industrial, tais como complexas
    computações matemáticas e a composição, manipulação e apresentação de gráficos e
    imagens de altíssima resolução. Especialmente no que se refere a velocidade do
    processador e a capacidade de memória, a potência de uma estação de trabalho é
    semelhante à de um minicomputador. Ex: IBM RS/6000.
•   Minicomputadores → são máquinas projetadas para atender simultaneamente a demanda
    por execução de programas de vários usuários, embora a quantidade de usuário e de
    programas não seja tão grande quanto se pode encontrar em computadores de grande
    porte. A capacidade de suportar múltiplos usuários e programas requer além de velocidade
    de processamento e capacidade/velocidade de memória, uma extensa potencialidade para
    manipular diversos dispositivos de entrada e saída. Ex: IBM AS/400.
•   Computador de Grande Porte → são sistemas projetados para manusear considerável
    volume de dados e executar simultaneamente programas de uma grande quantidade de
    usuários. Essas máquinas podem interagir com centenas de usuários em um dado instante,
    como, por exemplo, um sistema de reserva de passagens aéreas, bem como uma contínua
    solicitação de processamento por parte dos incontáveis terminais conectados diretamente
    ao sistema, aos quais os computadores têm que atender e responder em poucos segundos.
    Ex: IBM 3090 e Control Data CDC 6600.
•   Supercomputadores → são projetados primariamente para atender a um único propósito:
    realizar grandes quantidades de cálculos matemáticos o mais rapidamente possível, tipo
    previsão do tempo, simulação, modelagem tridimensional, etc. Ex: IBM 9021 e CRAY Y-MP.
            Medidas de desempenho
•   A medida geral de desempenho de um sistema de computador depende
    fundamentalmente da capacidade e velocidade de seus diferentes
    componentes, da velocidade com que estes se comunicam entre si e do
    grau de compatibilidade que possa existir entre eles.
•   Desempenho dos Processadores → é medido em termos de sua
    velocidade de trabalho; como seu trabalho é executar instruções, criou-se a
    unidade chamada MIPS – milhões de instruções por segundo e também a
    unidade MFLOPS – milhões de operações de ponto flutuante por segundo,
    que é uma medida típica de estações de trabalho e de supercomputadores,
    pois estes costumam trabalhar mais com cálculos matemáticos.
•   Tempo de Acesso → é uma unidade de medida mais apropriada, estando
    relacionada à velocidade de cada componente e à do canal de interligação
    entre os dois (UCP e memória).
•   Tempo de Resposta → é a medida ligada ao desempenho global do
    sistema e não de um ou outro componente. Trata-se do período de tempo
    gasto entre o instante em que o usuário iniciou uma solicitação ou
    interrogação e o instante em que o sistema apresentou ao usuário a sua
    resposta ou atendeu à sua solicitação. Ex: o intervalo de tempo entre a
    solicitação de um saldo de conta em um terminal bancário e apresentação
    no vídeo da resposta (o saldo da conta).
•   Vazão (throughput) → define a quantidade de ações ou transações que
    podem ser realizadas por um sistema na unidade de tempo. Por exemplo, a
    quantidade de atualizações que podem ser feitas em um sistema de
    controle do estoque de uma empresa ou um sistema WEB de IRPF.
             Arquitetura básica
• A arquitetura básica de um computador moderno segue
  ainda de forma geral os conceitos estabelecidos pelo
  Professor da Universidade de Princeton, John Von
  Neumann (1903-1957), um matemático húngaro (Janos
  Neumann) de origem judaica, naturalizado americano e
  um dos construtores do EDVAC.
• Von Neumann propôs construir computadores que:
• 1. Codificassem instruções que pudessem ser
  armazenadas na memória e sugeriu que usassem
  cadeias de uns e zeros (binário) para codificá-los;
• 2. Armazenassem na memória as instruções e todas as
  informações que fossem necessárias para a execução
  da tarefa desejada;
• 3. Ao processarem o programa, as instruções fossem
  buscadas diretamente na memória.
• Este é o conceito de PROGRAMA ARMAZENADO.
                          Cibernética
•   A palavra Cibernética (do grego, ``kybernetiké'', piloto, no sentido utilizado por Platão
    para qualificar a ação da alma) foi cunhada em 1948 por Norbert Wiener (1894-
    1964), americano de origem judaica, como o nome de uma nova ciência que visava à
    compreensão dos fenômenos naturais e artificiais através do estudo dos processos
    de comunicação e controle nos seres vivos, nas máquinas e nos processos sociais.
    Para tanto procura entender o tratamento da informação no interior destes processos
    como codificação e decodificação, retroação (feedback), aprendizagem, etc.

•   As idéias que deram origem à cibernética foram concebidas na década de quarenta,
    uma época extremamente fértil em novas idéias, durante a qual diversos resultados
    fundamentais e avanços tecnológicos foram atingidos. Até a cibernética, os
    fenômenos naturais eram explicados principalmente a partir da noção de energia,
    central na física newtoniana. A cibernética representou uma troca de tipo de
    explicação, adotando a noção de informação como base para a descrição dos
    fenômenos naturais.

•   A idéias iniciais da cibernética tiveram origem em trabalhos desenvolvidos por
    Wiener e seu colega Julian Bigelow, durante a Segunda Guerra Mundial. Esses
    trabalhos visavam ao aperfeiçoamento de canhões anti-aéreos e resultaram na
    formalização da noção de realimentação negativa. Esta noção foi então utilizada
    como base para modelos de controle de sistemas artificiais e até do sistema nervoso
    central.

•   A abrangência pretendida pela cibernética tornou-a um fórum adequado para a
    discussão sobre temas emergentes na época como a comunicação de massas e a
    tomada de decisão nos níveis político, econômico e social. No entanto, essa mesma
    abrangência acabou por esvaziar os temas propriamente científicos da cibernética,
    que hoje incluiriam boa parte na neurofisiologia e da ecologia, além da informática e
    das disciplinas de automação e controle.
Diagrama de blocos de um computador
               Funções dos componentes
    Unidade Central de Processamento:
•   A Unidade Central de Processamento é a responsável pelo processamento
    e execução de programas armazenados na MP. Funções:
•   Executar instruções - realizar aquilo que a instrução determina.
•   Realizar o controle das operações no computador.
•   a) Unidade Lógica e Aritmética (ULA) - responsável pela realização das
    operações lógicas (E, OU, etc) e aritméticas (somar, etc).
•   b) Unidade de Controle (UC) - envia sinais de controle para toda a
    máquina, de forma que todos os circuitos e dispositivos funcionem
    adequada e sincronizadamente.
    Memória Principal:
•   A Memória Principal tem por finalidade armazenar toda a informação que é
    manipulada pelo computador - programas e dados. Para que um programa
    possa ser manipulado pela máquina, ele primeiro precisa estar armazenado
    na memória principal.
    Dispositivos de Entrada e Saída (E/S):
•   Tem por finalidade permitir a comunicação entre o usuário e o computador.
•   OBS.: Para executar um programa, bastaria UCP e MP; no entanto, sem os
    dispositivos de E/S não haveria a comunicação entre o usuário e o
    computador.
              Hierarquia de memórias
•   A MP não é o único dispositivo de armazenamento de um computador. Em função de
    características como tempo de acesso, capacidade de armazenamento, custo, etc.,
    podemos estabelecer uma hierarquia de dispositivos de armazenamento em
    computadores.
•   Devido a essa grande variedade de tipos de memória, não é possível implementar um
    sistema de computação com uma única memória. Na realidade, há muitas memórias
    no computador, as quais se interligam de forma bem estruturada, constituindo um
    sistema em si, parte do sistema global de computação, podendo ser denominado
    subsistema de memória
       Tecnologia de fabricação de memória
•   Ao longo do tempo, diversas tecnologias vêm sendo desenvolvidas para a fabricação
    de memória.
•   Atualmente algumas dessas tecnologias já são obsoletas, como as memórias de
    núcleo de ferrite (magnéticas), algumas das tecnologias mais conhecidas são:
.   Memória de semicondutores → são dispositivos fabricados com circuitos
    eletrônicos e baseados em semicondutores. São rápidas e relativamente caras, se
    comparadas com outros tipos. Registradores e memória principal são exemplos de
    memórias de semicondutores ou, mais simplesmente, memórias eletrônicas.
.   Memórias de meio magnético → são dispositivos, como os disquetes, discos
    rígidos e fitas magnéticas, fabricados de modo a armazenar informações sob a forma
    de campos magnéticos. Eles possuem características magnéticas semelhantes às
    das fitas cassetes de som, as quais são memórias não voláteis.
•   Memórias óticas → são dispositivos como os CDs que são discos, sobre o qual é
    impressa uma longa espiral (22188 voltas, totalizando 5,6 km de extensão). As
    informações são gravadas em furos nessa espiral, o que cria dois tipos de
    irregularidades físicas: pontos brilhantes e pontos escuros. Estes pontos são
    chamados de bits, e compõem as informações carregadas pelo CD. A leitura destas
    informações é feita por dispositivos especiais, que podem ser CD players ou DVD
    players A superfície da espiral é varrida por um laser, que utiliza luz no comprimento
    infravermelho. Essa luz é refletida pela superfície do disco e captada por um
    detector. Esse detector envia ao controlador do aparelho a seqüência de pontos
    claros e escuros, que são convertidos em "1's ou 0's", os bit's (dados binários).
•   Outros tipos de memória estão sendo pesquisados, como por exemplo, a memória
    principal ótica.
Tempo de acesso e capacidade de memórias
• Tempo de Acesso → é o período de tempo gasto
  decorrido desde o instante em que foi iniciada a operação
  de acesso até que a informação requerida (instrução ou
  dado) tenha sido efetivamente transferida. Pode ser
  chamado tempo de acesso para leitura ou simplesmente
  tempo de leitura. É dependente do modo como o sistema
  de memória é constituído e da velocidade dos seus
  circuitos. Ele varia bastante de acordo com o tipo de
  memória analisado.
• Capacidade → é a quantidade de informação que pode
  ser armazenada em uma memória; a unidade de medida
  mais comum é o byte, embora também possam ser usadas
  outras unidades como células (no caso da memória
  principal e cache), setores (no caso de discos) e bits (no
  caso de registradores). Dependendo do tamanho (tamanho
  refere-se a quantidade de informação que pode ser
  armazenada e não no tamanho físico) da memória, isto é,
  de sua capacidade, indica-se o valor numérico total de
  elementos de forma simplificada, através da inclusão de K
  (kilo), M (mega), G (giga) ou T (tera).
    Exemplo de nomenclatura e valores de
          capacidade de memória

• O registrador R1 tem 64 bits;
• A ROM do microcomputador A tem 128 Kbytes;
• A RAM do computador B tem capacidade para
  endereçar 512 M células;
• O disco C tem capacidade para armazenar 160
  Gbytes.
• O CD-RW do drive E tem capacidade de
  armazenamento igual a 700 Mbytes.
• O DVD-RW do drive F tem capacidade de
  armazenamento de 4.7 Gbytes
            Endereços e células
• Célula: é a unidade de armazenamento do computador. A memória
  principal é organizada em células. Célula é a menor unidade da
  memória que pode ser endereçada (não é possível buscar uma
  "parte" da célula) e tem um tamanho fixo (para cada máquina).
• Endereço: é o localizador da célula, que permite identificar
  univocamente uma célula. Assim, cada célula pode ser
  identificada pelo seu endereço.
                     Leitura e gravação na memória
MAR: Memory address register ou registrador de endereço de memória
MBR: Memory buffer register ou registrador de dados de memória
Barramento de dados: bidirecional
Barramento de endereços: unidirecional
Barramento de controle: bidirecional - A UCP envia para a memória principal os pulsos de comando de
leitura ou escrita. Este barramento é bidirecional porque a UCP recebe por este barramento, pulso de
resposta sobre o estado (status) dos periféricos, quando o barramento de controle também interliga
periféricos e memória principal.



                                 Barramento de endereços
                               MAR
            Processador                                            Memória RAM

                      MBR         Barramento de dados




        Controle teclado                 Controle vídeo                 Controle HD

           TECLADO                           Monitor                          HD
        UNIDADE CENTRAL DE PROCESSAMENTO
•   A Unidade Central de Processamento - UCP (em inglês,
    Central Processing Unit - CPU) é a responsável pelo
    processamento        e   execução     dos     programas
    armazenados na MP. As funções da UCP são: executar
    as instruções e controlar as operações no computador.
•   Um programa, para ser efetivamente executado pelo
    processador, deve ser constituído de uma série de
    instruções de máquina. Para que a execução tenha
    início, as instruções devem ser armazenadas em células
    sucessivas, na MP.
•   A função da UCP consiste, então, em:
    a) Buscar uma instrução na memória (operação de
    leitura), uma de cada vez;
    b) Interpretar que operação a instrução está explicitando
    (pode ser soma de dois números, uma multiplicação,
    uma operação de entrada ou de saída de dados, ou
    ainda uma operação de movimentação de um dado de
    uma célula para outra);
    c) Buscar os dados onde estiverem armazenados, para
    trazê-los até a UCP;
    d) Executar efetivamente a operação com os dados,
    guardar o resultado (se houver algum) no local definido
    na instrução; e, finalmente;
    e) Reiniciar o processo apanhando nova instrução.
              Instruções de máquina
• Uma instrução de máquina é a especificação de uma operação básica
  (ou primitiva) que o hardware é capaz de realizar diretamente.
  Podemos, p. ex., fabricar um processador com uma ULA capaz de
  somar ou de multiplicar dois números, mas ainda não se fabricou uma
  ULA capaz de executar:
                        X=A+B*C
  de uma só vez. A ULA tem que ser instruída para executar,
  separadamente:
                        T=B*CeA+T
• O projeto de um processador é centrado no conjunto de instruções de
  máquina que se deseja que ele execute. Uma das mais fundamentais
  análise e decisões do projeto envolve o tamanho e a complexidade do
  conjunto de instruções. Quanto menor e mais simples o conjunto de
  instruções, mais rápido é o ciclo de tempo do processador.
• Atualmente, há duas tecnologias de projeto de processadores
  empregadas pelos fabricantes de mini, microcomputadores e de
  estações de trabalho:
  Sistemas com conjunto de instruções complexo (complex instruction set
  computers – CISC); e
  Sistemas com conjunto de instruções reduzido (reduced instruction set
  computers – RISC).
          Instruções de máquina
• Fisicamente falando (do ponto de vista do hardware), uma
  instrução de máquina é um grupo de bits que indica ao
  processador uma operação ou ação que ele deve realizar.
  Um processador é fabricado com a capacidade de realizar
  uma certa quantidade de operações bem simples
  (primitivas), cada uma delas associada a uma instrução
  de máquina.
• Funcionalmente, um processador possui instruções
  capazes de realizar os seguintes tipos de operações:
  Operações matemáticas (aritméticas, lógicas, de
  complemento, de deslocamento);
  Movimentação de dados (memória – UCP e vice-versa);
  Entrada e saída (leitura e escrita em dispositivo de E/S); e
  Controle (desvio da seqüência de execução, parar etc.).
• Quando se escreve “conjunto de instruções”, estamos nos
  referindo a todas as possíveis instruções que podem ser
  interpretadas e executadas por um processador.
              Formato das Instruções:

• De modo geral, podemos separar o grupo de bits que
  constitui a instrução em dois campos:
  Um campo (um subgrupo de bits) chama-se código de
  operação;
  O restante grupo de bits (se houver) denomina-se
  campo do(s)          operando(s)     ou, simplesmente,
  operando(s).
• Código de operação – C.Op – é o campo da instrução
  cujo valor binário é a identificação (ou código) da
  operação a ser realizada. Assim, cada instrução possui
  um único código, o qual servirá de entrada no
  decodificador da área de controle.
• Campo operando – Op – é(são) o(s) campo(s) da
  instrução cujo valor binário indica a localização do dado
  (ou dados) que será(ão) manipulado(s) durante a
  realização da operação.
    CARACTERÍSTICAS DE UM PROCESSADOR SIMPLES
                   E HIPOTÉTICO
•   1. Palavra: 12 bits
•   2. Endereços: 8 bits (256 células de memória)
•   3. Células de 12 bits
•   4. Instruções de 1 operando apenas, com C.Op. = 4 bits e campo operando = 8 bits
•   5. O campo operando sempre indica o endereço de memória do dado, exceto em
    instruções de desvio
•   6. A UCP possui apenas um registrador de dados - o ACC com 12 bits de tamanho,
    assim como, o RI, e o RDM cada um, o CI e o REM, com 8 bits cada um.
•   7. Formato das instruções : C.Op. Operando - 4 bits 8 bits
•   8. Instruções disponíveis:
•   C.Op. SIGLA DESCRIÇÃO
•   0 HLT         Parar a execução do programa *** Halt, em Inglês
•   1 LDA Op ACC ← (Op) *** Load, em Inglês
•   2 STR Op (Op) ← ACC *** Store, em Inglês
•   3 ADD Op ACC ← ACC + (Op)
•   4 SUB Op ACC ← ACC – (Op)
•   5 MPY Op ACC ← ACC * (Op)
•   6 JZ Op       Se ACC = 0, então CI ← Op
•   7 JP Op       Se ACC > 0, então CI ← Op
•   8 JN Op       Se ACC < 0, então CI ← Op
•   9 JMP Op      CI ← Op
•   A GET Op      Ler dado da porta de entrada e armazená-la em (Op)
•   B PRT Op Colocar na porta referente à impressora o valor armazenado em (Op).
    Exemplo de programas em linguagem de
                  máquina
• Qual o tamanho da memória do computador em bits?
• Qual o tamanho do barramento de dados?
• Qual o tamanho do barramento de endereços?
• Faça um programa para ler dois valores e imprimir a sua
  soma
• Faça um programa para ler dois valores e imprimir o
  maior deles
• Faça um programa para acumular a soma de números
  digitados no teclado. Quando 0 for digitado, o programa
  imprime a soma acumulada e para.
Solução do primeiro programa

 GET op – Lê o primeiro número
 LDA op – Carrega cont(op) no acum ACC
 GET op – Lê o segundo número
 ADD op – Soma cont(ACC) + cont(op)
 STR op – Carrega resultado da soma em op
 PRT op – Imprime o cont(op)
  Exemplo de programa em linguagem de
                máquina
• Obtenha a equação que resultou no seguinte programa:
     LDA A
     ADD C
     STA X
     LDA B
     MPY D
     SUB E
     STA Y
     LDA X
     ADD Y
     DIV F
     STA X
        Sistemas operacionais
• Um sistema operacional é formado por um
  conjunto de programas e rotinas computacionais
  que têm como objetivo criar uma camada de
  abstração entre o usuário e o hardware
  propriamente dito. Entende-se por usuário todo
  e qualquer objeto que precise de acesso aos
  recursos de um computador (seja ele um
  usuário "real" ou aplicativo).
• Os     sistemas    operacionais   podem     ser
  classificados de três maneiras: pelo tipo do
  núcleo de sistema (ou kernel, como é
  conhecido no jargão técnico), pelo método
  adotado ao gerenciar os programas em
  execução ou pelo número de usuários que
  podem operá-lo simultaneamente.
Camadas de software
       ESTRUTURA DO SO
• Formado por um conjunto de rotinas
  (procedimentos) que oferecem serviços
  aos usuários do sistema e suas
  aplicações, bem como a outras rotinas do
  próprio sistema. Esse conjunto de rotinas
  é chamado núcleo do sistema ou kernel
  (cérebro).
                      Funções do Sistema
• Tratamento de interrupções e exceções.
• Criação e eliminação de processos: função responsável por alocar em
  memória todos os recursos necessários à execução do processo. É
  esta função que aloca em memória, além do executável, o contexto do
  processo, o buffer de leitura/gravação (se necessário), além de listas e
  estruturas de controle utilizadas pelo sistema operacional. Nesta função
  também são estabelecidos vínculos físicos a arquivos em disco, fitas e
  outros periféricos que serão usados no processamento. Quando do fim
  da execução do programa, é esta função que desaloca todos os
  espaços em memória ocupados pelo processo, liberando-os para
  futuras alocações a outros processos;
• Escalonamento e controle de processos: função responsável por
  organizar a fila de acesso ao processador. Utiliza parâmetros do
  sistema e do perfil do usuário para estabelecer a ordem em que os
  processos permanecerão à espera pela liberação da CPU, para então
  entrarem em execução;
• Gerência de memória: função responsável por fornecer à função de
  criação/eliminação de processos os endereços em memória disponíveis
  para alocação;
• Gerência de sistemas de arquivos: responsável pelo gerenciamento dos
  arquivos, bem como seu compartilhamento pelos diversos usuários,
  implementando mecanismos de controle da segurança e direitos de
  acesso às áreas utilizadas pelos usuários nos diversos dispositivos;
                      Funções do Sistema
• Gerência de dispositivos de E/S: responsável por gerenciar os
  dispositivos, prestando auxílio à criação/eliminação de processos e á
  gerência de sistemas de arquivos no que diz respeito ao
  endereçamento e associação de arquivos em periféricos;
• Suporte a redes: é esta função que executa todos os serviços de rede,
  fazendo o empacotamento das mensagens vindas dos terminais para a
  CPU central (servidor) e vice-versa, além de controlar e confirmar o
  envio e recebimento de todas as mensagens que trafegam pela rede;
• Contabilização de uso do sistema: responsável por contabilizar o uso
  de todos os recursos do sistema consumidos pelos usuários e suas
  aplicações. São registrados: tempo de CPU, tempo corrido, quantidade
  de área alocada em memória, em disco, linhas impressas, páginas de
  papel, entre outros. Isto se faz necessário para servir de subsídio para
  análise de performance, estatísticas de gastos com material de
  consumo e também para definição de custos de processamento.;
• Auditoria e segurança do sistema: função extremamente importante,
  pois detecta e registra (num arquivo especial de LOG) todas as
  ocorrências de erro e violação de direitos de acesso ao sistema, aos
  arquivos, à memória e a todos os recursos do sistema. O arquivo de
  LOG é usado pela gerência de sistemas, com o intuito de verificar e
  aperfeiçoar os mecanismos de segurança e proteção ao sistema.
         TIPOS DE SISTEMAS
           OPERACIONAIS
                     Tipos de Sistemas
                       Operacionais




    Sistemas                Sistemas         Sistemas com
Monoprogramáveis /     Multiprogramáveis /     Múltiplos
   Monotarefa              Multitarefa       Processadores
                  Sistemas Multiprogramáveis
•   Um Sistema Operacional pode ser visto como um conjunto de rotinas que
    executam concorrentemente de forma ordenada. A possibilidade de um
    processador executar instruções em paralelo com operações de entrada e
    saída permite que diversas tarefas sejam executadas concorrentemente. É este
    conceito de concorrência o princípio fundamental para o projeto e
    implementação de sistemas multiprogramáveis.
•   Os sistemas multiprogramáveis surgiram a partir das limitações dos sistemas
    monoprogramáveis onde os recursos computacionais como processador,
    memória e dispositivos de E/S eram utilizados de maneira muito pouco
    eficiente, limitando seu desempenho, com muitos destes recursos
    permanecendo ociosos por longos períodos de tempo.
•   Nos sistemas monoprogramáveis somente um programa pode estar em
    execução de cada vez, permanecendo o processador dedicado exclusivamente
    a uma tarefa, ficando ocioso enquanto uma operação de leitura em disco é
    realizada. O tempo de espera é relativamente longo, já que as operações de
    E/S são muito lentas se comparadas à velocidade de operação do processador.
•   Outro aspecto a ser considerado é a sub-utilização da memória principal, onde
    um programa nem sempre ocupa todo o espaço disponível, ficando o restante
    inutilizado. Nos sistemas multiprogramáveis vários programas podem ser
    alocados na memória, concorrendo pelo uso do processador. Dessa forma,
    quando um programa solicita uma operação de E/S, outros programas poderão
    utilizar o processador, deixando a CPU menos ociosa e tornando o uso da
    memória mais eficiente, pois existem vários residentes e se revezando na
    utilização do processador.
           Sistemas Multiprogramáveis
• A utilização concorrente da CPU deve ser feita de
  maneira que, quando um programa perde o uso do
  processador e depois retorna para continuar sua
  execução, seu estado deve ser idêntico ao do momento
  em que foi interrompido. O programa deverá continuar
  sua execução exatamente na instrução seguinte àquela
  onde havia parado, aparentando ao usuário que nada
  aconteceu. Em sistemas de tempo compartilhado existe
  a impressão de que o computador está inteiramente
  dedicado ao usuário, ficando esse mecanismo
  totalmente transparente aos usuários.
• Quanto ao uso dos periféricos, é comum nos sistemas
  monoprogramáveis é comum termos, por exemplo,
  impressoras paradas por um grande período de tempo e
  discos com acesso restrito a um único usuário. Esses
  problemas      são     minimizados    nos    sistemas
  multiprogramáveis, onde é possível compartilhar os
  dispositivos de E/S, como impressoras e discos, entre
  diversos usuários e aplicativos.
                    Interrupção e Exceção
•   Durante a execução de um programa, alguns eventos inesperados
    podem ocorrer, ocasionando um desvio forçado no seu fluxo normal
    de execução. Esses eventos são conhecidos como interrupção ou
    exceção, e podem ser resultado de sinalizações de algum
    dispositivo de hardware externo ao ambiente memória/processador.
    A interrupção é o mecanismo que permitiu a implementação da
    concorrência nos computadores, sendo o fundamento básico dos
    sistemas multiprogramáveis/multitarefa.
•   Uma interrupção é sempre gerada por um evento externo ao
    programa e, sendo assim, independe da instrução que está sendo
    executada. Um exemplo de interrupção é quando um dispositivo
    avisa ao processador que alguma operação de E/S está completa.
    Neste caso, o processador deve interromper o programa para tratar
    o término da operação.
•   Ao término de cada instrução a Unidade de Controle (situada dentro
    do processador) verifica a ocorrência de algum tipo de interrupção.
    Desta forma, o programa em execução é interrompido e seu controle
    é desviado para uma rotina do sistema responsável por tratar o
    evento ocorrido, denominada rotina de tratamento de interrupção.
    Para que o programa interrompido possa retornar posteriormente à
    sua execução é necessário que, no momento da interrupção, um
    certo conjunto de informações sobre sua execução seja preservado.
•   Essas informações consistem basicamente no conteúdo dos
    registradores internos da CPU, que deverão ser restaurados para a
    continuação do programa.
                   Interrupção e Exceção
•   Para cada tipo de interrupção existe uma rotina de tratamento
    associada, para onde o fluxo do programa é desviado. A
    identificação do tipo de evento ocorrido é fundamental para
    determinar o endereço da rotina adequada ao tratamento da
    interrupção.
•   As interrupções podem ser geradas:
    - Pelo programa do usuário (entrada de dados pelo teclado ou
    mouse)
    - Pelo hardware (operações de E/S)
    - Pelo sistema operacional (ao término da fatia de tempo do
    processador destinada ao programa)
•   As interrupções sempre são tratadas pelo Sistema Operacional.
•   A exceção é um evento semelhante à interrupção, pois também de
    fato interrompe um programa.
•   A principal diferença é que a exceção é o resultado da execução
    de uma instrução dentro do próprio programa, como a divisão por
    zero ou a ocorrência de um overflow (estouro de capacidade de
    um campo) numa operação aritmética.
•   Na maioria das vezes, a exceção provoca um erro fatal no sistema,
    causando o término anormal do programa. Isto se deve ao fato de
    que a exceção é melhor tratada dentro do próprio programa, com
    instruções escritas pelo programador.
    Direct Memory Access - DMA
• No caso de grandes transferências de dados
  (HD, por exemplo) o overhead associado pode
  ser grande
• DMA é um método que permite aliviar o
  processador, realizando a transferência entre o
  dispositivo e a memória através de um
  controlador auxiliar que funciona como bus
  master
• O processador programa o controlador de DMA
• A transferência é realizada sem a intervenção do
  processador
• O controlador DMA envia uma interrupção ao
  processador para sinalizar a finalização ou
  eventuais erros
                           Threads
•   É comum, em sistemas multiprogramáveis, vários usuários
    utilizarem os mesmos aplicativos simultaneamente, como
    editores de texto, compiladores e outros utilitários. Nesta
    situação, se cada usuário que utilizasse um destes aplicativos
    trouxesse o código executável para a memória, haveria então
    diversas cópias de um mesmo programa ocupando espaço na
    memória, o que causaria um grande desperdício de espaço.
•   Thread é a capacidade de um código executável ser
    compartilhado por vários usuários, exigindo apenas uma cópia
    do programa em memória. As threads permitem que cada
    usuário esteja executando um trecho diferente do programa,
    manipulando dados próprios, exclusivos de cada usuário.
•   Threads são utilizadas em utilitários do sistema, como editores,
    compiladores e linkers, promovendo um uso mais eficiente da
    memória e um desempenho maior do sistema. Alguns sistemas
    operacionais permitem a possibilidade de se implementar o
    conceito de thread em aplicações desenvolvidas pelo próprio
    usuário.
           Segurança e Proteção do Sistema
•   A eficiência proporcionada por um ambiente multiprogramável
    implica em maior complexidade do sistema operacional, já que
    alguns problemas de proteção surgem como decorrência deste
    tipo de implementação.
•   Considerando-se que diversos usuários estão compartilhando
    os mesmos recursos, como memória, processador e
    dispositivos de E/S, faz-se então necessário existir
    mecanismos de proteção para garantir a confiabilidade e a
    integridade dos dados e programas dos usuários, além do
    próprio sistema operacional.
•   Como vários programas ocupam a memória principal
    simultaneamente, cada usuário possui uma área reservada
    onde seus programas e dados são armazenados durante o
    processamento. O sistema operacional deve possuir
    mecanismos de proteção a essas áreas, de forma a preservar
    as informações nela contidas. Caso um programa tente
    acessar uma posição de memória fora de sua área, um erro
    indicando a violação de acesso deve ocorrer, sendo
    responsabilidade do sistema operacional o controle eficiente do
    compartilhamento dos recursos e a sincronização da
    comunicação, evitando problemas de consistência.
                       SO Linux
• Linux é um sistema operacional criado inicialmente como
  passatempo de um estudante de Ciências da Computação
  da Universidade de Helsinki, na Finlândia, em 1991. Seu
  nome é Linus Torvalds. Ele não imaginava que esse
  "passatempo" seria um sucesso tão grande. Graças a uma
  arquitetura aberta (que permite a qualquer programador
  fazer alterações no sistema - software livre) e o controle
  rigoroso sobre o kernel (estrutura do sistema operacional),
  o Linux vem ganhando cada vez mais adeptos.
• Requisitos para rodar o Linux:
• Uma característica muito importante do Linux, é que você
  não precisa ter um computador poderoso para poder rodá-
  lo. O requerimento mínimo é de acredite, um processador
  486, 16 MB de memória RAM e 200MB de espaço no HD.
  Mas neste caso, somente será possível utilizá-lo em modo
  texto, ou seja, sem recursos gráficos. Para isso, ele exige a
  mesma capacidade de hardware que o Windows ou o Mac.
                      SO Linux
• O Linux é gratuito. Você pode até fazer download dele pela
  Internet sem pagar nada. E não é só ele que é de graça. A
  maioria de seus programas também. Você pode, por
  exemplo, usar o pacote OPEN OFFICE gratuitamente e
  alterá-lo como quiser (desde que saiba programar). Pelo fato
  do Linux ser um software livre, muitos programadores de todo
  o mundo se interessaram (e se interessam) em melhorá-lo.
  Uns contribuem programando drivers (arquivos que ensinam
  o sistema operacional a lidar com um hardware específico),
  outros adicionam funções extras, outros melhoram o acesso
  à Internet, etc. Com isso, o Linux vem ganhando cada vez
  mais espaço.
• Companhias como a Sun e a IBM investem cada vez mais
  em produtos com o Linux. Graças ao trabalho constante de
  experientes programadores e empresas distribuidoras de
  Linux (como Conectiva, SUSE, Red Hat, etc.), o Linux vem
  cada vez mais se tornando fácil de instalar e de usar.
  Atualmente, o Linux está mais voltado para ser usado como
  servidor ou em computadores corporativos, em vista de seu
  excelente desempenho e estabilidade.
                          UBUNTU
•   Ubuntu é um sistema operacional Linux baseado na distribuição
    Debian. É patrocinado pela Canonical Ltd (dirigida por Mark
    Shuttleworth) e o seu nome deriva do conceito sul africano Ubuntu,
    diretamente traduzido como "humanidade para com os outros".
    Diferencia-se do Debian por ser lançado semestralmente, por
    disponibilizar suporte técnico nos dezoito meses seguintes ao
    lançamento de cada versão (em inglês) e pela filosofia em torno de
    sua concepção.
•   A proposta do Ubuntu é oferecer um sistema operativo que qualquer
    pessoa possa utilizar sem dificuldades, independente de
    nacionalidade, nível de conhecimento ou limitações físicas. A
    distribuição deve ser constituída totalmente de software gratuito e
    livre, além de isenta de qualquer taxa. Atualmente uma organização
    cuida para que cópias sejam remetidas em CDs para todo o mundo
    sem custos.
•   A Comunidade Ubuntu ajuda-se mutuamente, não havendo distinção
    de novatos ou veteranos; a informação deve ser compartilhada para
    que se possa ajudar quem quer que seja, independentemente do nível
    de dificuldade.
•   Há vários meses a distribuição Ubuntu está em primeiro lugar no
    Distrowatch, site especializado em catalogar o desempenho e uso das
    distribuições Linux.
Sistemas de Gerenciamento de Bancos de Dados - SGBD

• Banco de Dados: é uma coleção de dados inter-
  relacionados, representando informações sobre um
  domínio específico.
• Exemplos: Lista Telefônica, Fichas do acervo de uma
  biblioteca
• SGBD: consiste em uma coleção de dados inter-
  relacionados e uma coleção de programas para prover o
  acesso a esses dados.
• O objetivo principal de um sistema de banco de dados é
  possibilitar um ambiente que seja adequado e eficiente
  para uso na recuperação e armazenamento de
  informações.
• Exemplos: Access, Oracle, db2, MySQL, SQL Server
Modelo de Dados
Exemplos de modelos de dados
Características de um SGBD

  •   Integridade
  •   Restrições
  •   Segurança
  •   Privacidade
  •   Restauração
  •   Reorganização
  •   Eficiência
                Tabelas
• Objeto criado para armazenar os dados
  fisicamente
• Os dados são armazenados em linhas
  (registros) e colunas (campos)
• Os dados de uma tabela normalmente
  descrevem um assunto tal como clientes,
  vendas, etc.
      Tabela e chave primária




A chave primária permite a classificação única de
cada registro de uma tabela, como por exemplo: RG,
CPF, Matrícula
Redes
       Meios de transmissão


• Linhas      telefônicas discadas   ou    para
  comunicação de dados, cabos de cobre (par
  trançado), rádio freqüência (redes sem fio) e
  fibras óticas.
        Rede cliente - servidor


                      SERVIDOR
                   MAIOR CAPACIDADE
                  DE DISCO E CPU MAIS
                         RÁPIDA




    CLIENTE           CLIENTE                CLIENTE
MENOS POSSANTES     MAIS BARATOS        LIGADOS EM REDES
         Tipos de servidores
• Servidor de arquivos
• Servidor Web
• Servidor de e-mail
• Servidor de impressão
• Servidor de banco de dados
• Servidor DNS: Resolve nomes de servidores
  em endereços de rede
• Servidor Proxy: conecta clientes a outros
  servidores
• Servidor de imagens
Tipos de redes quanto a abrangência




  LANs : Local Area Network, "rede de área local


  WAN : Wide Area Network , Rede de área alargada

  Outras:       MAN (Metropolitan Area Network)
                RAN (Regional Area Network)
                CAN (Campus Area Network)
  Placa ou Adaptador de Rede
• Padrão Ethernet - o mais
  popular, arquitetura aberta
• Token Ring - a alternativa,
  tecnologia proprietária
  (IBM)
• On-board ou off-board
• Velocidades:
  10/100/1000Mbps
            Cabeamento
Cabo UTP ou par-trançado
Características:
• Conector RJ45
• Alcance: 100 mts
• Velocidade: até
  1000Mbps (cat 6) ou
  100Mbps (cat 5)
                Hub e Switch
   Dispositivos que interligam os computadores,
         impressoras e servidores em rede.

• Devem seguir o padrão da placa de
  rede  ( ethernet, token, etc...)
• Velocidade: 10/100/1000Mbps,
  100Mbps o mais comum
• Hub quase não é mais encontrado
  devido ao baixo custo do Switch, que
  possui performance superior
• Os equipamentos profissionais são
  escalonáveis e gerenciáveis
                     Roteador
Os roteadores são componentes avançados
 de rede que podem dividir uma rede em
    duas redes lógicas independentes


 Uso:
 • Conexão entre redes remotas
   (ex Matriz e filial, internet e
   LAN )
 • Segmentação de grandes
   LANs, com objetivo de
   melhorar o gerenciamento e
   otimizar a performance
           TOPOLOGIAS
• Forma como os micros são interligados
• São três tipos de topologia física,
  conhecidas     como       topologia   de
  barramento, de estrela e de anel.
Topologia de barramento
Topologia de estrela
Topologia de anel
          PROTOCOLOS
• São um conjunto de padrões usados para
  permitir que os micros “falem a mesma
  língua” e possam se entender.
• Protocolos de rede: TCP/IP
• Transferência de arquivos
• HTTP
• SNMP
        GERENCIAMENTO
• O que é gerenciamento de rede?
• É a habilidade de gerir de forma eficiente
  o aumento das exigências dos usuários da
  rede,com        cada      vez      menos
  recursos,através        de       algumas
  ações,políticas e procedimentos.
• Padrão SNMP

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:28
posted:9/6/2011
language:Portuguese
pages:94
pptfiles pptfiles
About