SlideShare uma empresa Scribd logo
1 de 94
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.
Arquivo
Localização Fase
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 systemrootSystem32 Carga do kernel
Hal.dll systemrootSystem32 Carga do kernel
System systemrootSystem32Config Inicialização do kernel
Device drivers (*.sys) systemrootSystem32Drivers 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.
Processador Memória RAM
Controle teclado Controle vídeo Controle HD
Barramento de endereços
Barramento de dados
MAR
MBR
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 * C e A + 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
Sistemas
Monoprogramáveis /
Monotarefa
Sistemas
Multiprogramáveis /
Multitarefa
Sistemas com
Múltiplos
Processadores
TIPOS DE SISTEMAS
OPERACIONAIS
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
MENOS POSSANTES
CLIENTE
MAIS BARATOS
CLIENTE
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
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)
Tipos de redes quanto a abrangência
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
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
Os roteadores são componentes avançados
de rede que podem dividir uma rede em
duas redes lógicas independentes
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

Mais conteúdo relacionado

Mais procurados

Mais procurados (18)

Ac16 conjunto de instruções v2
Ac16   conjunto de instruções v2Ac16   conjunto de instruções v2
Ac16 conjunto de instruções v2
 
Aula 3 sistema computacional (hardware e software)
Aula 3   sistema computacional (hardware e software)Aula 3   sistema computacional (hardware e software)
Aula 3 sistema computacional (hardware e software)
 
Introdução à informática tsc cederj-01
Introdução à informática tsc cederj-01Introdução à informática tsc cederj-01
Introdução à informática tsc cederj-01
 
Roteiro IOC 01
Roteiro IOC 01Roteiro IOC 01
Roteiro IOC 01
 
So-mod-1
So-mod-1So-mod-1
So-mod-1
 
Aula 1 introdu%80%a0%a6%e7%e3o
Aula 1   introdu%80%a0%a6%e7%e3oAula 1   introdu%80%a0%a6%e7%e3o
Aula 1 introdu%80%a0%a6%e7%e3o
 
Roteiro IOC 03_1
Roteiro IOC 03_1Roteiro IOC 03_1
Roteiro IOC 03_1
 
Resumo x86
Resumo x86Resumo x86
Resumo x86
 
Noções de hardware e software
Noções de hardware e softwareNoções de hardware e software
Noções de hardware e software
 
von newman e periféricos
von newman e periféricosvon newman e periféricos
von newman e periféricos
 
Hadware
HadwareHadware
Hadware
 
Oficina de Iniciação a Informática
Oficina de Iniciação a InformáticaOficina de Iniciação a Informática
Oficina de Iniciação a Informática
 
F oc aula_03a
F oc aula_03aF oc aula_03a
F oc aula_03a
 
Configuração de dispositivos de io
Configuração de dispositivos de ioConfiguração de dispositivos de io
Configuração de dispositivos de io
 
Apostila de informatica para concursos atualizada
Apostila de informatica para concursos atualizadaApostila de informatica para concursos atualizada
Apostila de informatica para concursos atualizada
 
Hardware
HardwareHardware
Hardware
 
computador
computadorcomputador
computador
 
Sistemas de Numeracao
Sistemas de NumeracaoSistemas de Numeracao
Sistemas de Numeracao
 

Semelhante a Hardware

Aula 2 - Introducao e Algoritmos.ppt
Aula 2 - Introducao e Algoritmos.pptAula 2 - Introducao e Algoritmos.ppt
Aula 2 - Introducao e Algoritmos.pptJadna Almeida
 
conhecer o computador
conhecer o computadorconhecer o computador
conhecer o computadorgongas
 
Funcionamento de um sistema de computação
Funcionamento de um sistema de computaçãoFuncionamento de um sistema de computação
Funcionamento de um sistema de computaçãoPAULO Moreira
 
Livro aed capitulos-1-2-3-introdpascal
Livro aed capitulos-1-2-3-introdpascalLivro aed capitulos-1-2-3-introdpascal
Livro aed capitulos-1-2-3-introdpascalDeby Bastos
 
Algoritmos e linguagem pascal
Algoritmos e linguagem pascalAlgoritmos e linguagem pascal
Algoritmos e linguagem pascalangelicamenegassi
 
Algoritmos e linguagem pascal
Algoritmos e linguagem pascalAlgoritmos e linguagem pascal
Algoritmos e linguagem pascalangelicamenegassi
 
Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2Robson Ferreira
 
Linguagem c wellington telles - aula 01
Linguagem c   wellington telles - aula 01Linguagem c   wellington telles - aula 01
Linguagem c wellington telles - aula 01profwtelles
 
Computação Científica.pdf
Computação Científica.pdfComputação Científica.pdf
Computação Científica.pdfTomasEdson2
 
A arquitetura básica de um computador
A arquitetura básica de um computadorA arquitetura básica de um computador
A arquitetura básica de um computadorredesinforma
 
Introdução aos algoritmos e à algoritmia.pptx
Introdução aos algoritmos e à algoritmia.pptxIntrodução aos algoritmos e à algoritmia.pptx
Introdução aos algoritmos e à algoritmia.pptxPaulo Cardoso
 
Módulo 5 Arquitetura de Computadores
Módulo 5 Arquitetura de ComputadoresMódulo 5 Arquitetura de Computadores
Módulo 5 Arquitetura de ComputadoresLuis Ferreira
 
Lógica de programação pascal
Lógica de programação   pascalLógica de programação   pascal
Lógica de programação pascalJocelma Rios
 

Semelhante a Hardware (20)

Aula 2 - Introducao e Algoritmos.ppt
Aula 2 - Introducao e Algoritmos.pptAula 2 - Introducao e Algoritmos.ppt
Aula 2 - Introducao e Algoritmos.ppt
 
Hadware
HadwareHadware
Hadware
 
introducao_(1).ppt
introducao_(1).pptintroducao_(1).ppt
introducao_(1).ppt
 
conhecer o computador
conhecer o computadorconhecer o computador
conhecer o computador
 
Aula 03
Aula 03Aula 03
Aula 03
 
aula 08.pdf
aula 08.pdfaula 08.pdf
aula 08.pdf
 
Funcionamento de um sistema de computação
Funcionamento de um sistema de computaçãoFuncionamento de um sistema de computação
Funcionamento de um sistema de computação
 
Livro aed capitulos-1-2-3-introdpascal
Livro aed capitulos-1-2-3-introdpascalLivro aed capitulos-1-2-3-introdpascal
Livro aed capitulos-1-2-3-introdpascal
 
TWP38 Revisão Geral 2
TWP38 Revisão Geral 2TWP38 Revisão Geral 2
TWP38 Revisão Geral 2
 
Algoritmos e linguagem pascal
Algoritmos e linguagem pascalAlgoritmos e linguagem pascal
Algoritmos e linguagem pascal
 
Algoritmos e linguagem pascal
Algoritmos e linguagem pascalAlgoritmos e linguagem pascal
Algoritmos e linguagem pascal
 
Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2
 
T.i.c.9.º
T.i.c.9.ºT.i.c.9.º
T.i.c.9.º
 
Linguagem c wellington telles - aula 01
Linguagem c   wellington telles - aula 01Linguagem c   wellington telles - aula 01
Linguagem c wellington telles - aula 01
 
Computação Científica.pdf
Computação Científica.pdfComputação Científica.pdf
Computação Científica.pdf
 
A arquitetura básica de um computador
A arquitetura básica de um computadorA arquitetura básica de um computador
A arquitetura básica de um computador
 
AC nova-aula 1.pptx
AC nova-aula 1.pptxAC nova-aula 1.pptx
AC nova-aula 1.pptx
 
Introdução aos algoritmos e à algoritmia.pptx
Introdução aos algoritmos e à algoritmia.pptxIntrodução aos algoritmos e à algoritmia.pptx
Introdução aos algoritmos e à algoritmia.pptx
 
Módulo 5 Arquitetura de Computadores
Módulo 5 Arquitetura de ComputadoresMódulo 5 Arquitetura de Computadores
Módulo 5 Arquitetura de Computadores
 
Lógica de programação pascal
Lógica de programação   pascalLógica de programação   pascal
Lógica de programação pascal
 

Hardware

  • 1. 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”.”
  • 2. 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.”
  • 3. 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.
  • 4. 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.
  • 5. 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. Arquivo Localização Fase 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 systemrootSystem32 Carga do kernel Hal.dll systemrootSystem32 Carga do kernel System systemrootSystem32Config Inicialização do kernel Device drivers (*.sys) systemrootSystem32Drivers Inicialização do kernel
  • 6. 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.”
  • 7. 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.
  • 11. 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“
  • 12. 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
  • 13. 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.
  • 14. 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.
  • 15. 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).
  • 16. 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.
  • 17. 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.
  • 18. Exemplo de um sinal binário
  • 19. 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.
  • 21. 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.
  • 22. Exemplo de utilização do gate AND
  • 23. 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.
  • 24. 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.
  • 25. 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.
  • 26. 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.
  • 27. 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.
  • 28. Exemplo de emprego de circuitos XOR para teste de igualdade entre palavras
  • 29. 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
  • 30. 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
  • 31. Á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.
  • 32. 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
  • 33. 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.
  • 34. Identificação dos componentes de um computador Variáveis envolvidas: LADO1, LADO2, HIPOTENUSA, Q1, Q2
  • 35. Componentes de um sistema de computação
  • 36. 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.
  • 37. 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
  • 38. 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.
  • 39. 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.
  • 40. 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.
  • 41. 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.
  • 42. Diagrama de blocos de um computador
  • 43. 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.
  • 44. 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
  • 45. 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.
  • 46. 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).
  • 47. 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
  • 48. 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.
  • 49. 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. Processador Memória RAM Controle teclado Controle vídeo Controle HD Barramento de endereços Barramento de dados MAR MBR TECLADO Monitor HD
  • 50. 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.
  • 51. 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 * C e A + 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).
  • 52. 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.
  • 53. 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.
  • 54. 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).
  • 55. 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.
  • 56. 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)
  • 57. 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
  • 58. 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.
  • 60. 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).
  • 61. 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;
  • 62. 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.
  • 63. Tipos de Sistemas Operacionais Sistemas Monoprogramáveis / Monotarefa Sistemas Multiprogramáveis / Multitarefa Sistemas com Múltiplos Processadores TIPOS DE SISTEMAS OPERACIONAIS
  • 64. 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.
  • 65. 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.
  • 66. 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.
  • 67. 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.
  • 68. 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
  • 69. 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.
  • 70. 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.
  • 71. 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.
  • 72. 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.
  • 73. 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.
  • 74. 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
  • 77. Características de um SGBD • Integridade • Restrições • Segurança • Privacidade • Restauração • Reorganização • Eficiência
  • 78. 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.
  • 79. 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
  • 80. Redes
  • 81. 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.
  • 82. Rede cliente - servidor SERVIDOR MAIOR CAPACIDADE DE DISCO E CPU MAIS RÁPIDA CLIENTE MENOS POSSANTES CLIENTE MAIS BARATOS CLIENTE LIGADOS EM REDES
  • 83. 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
  • 84. 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) Tipos de redes quanto a abrangência
  • 85. 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
  • 86. Cabeamento Cabo UTP ou par-trançado Características: • Conector RJ45 • Alcance: 100 mts • Velocidade: até 1000Mbps (cat 6) ou 100Mbps (cat 5)
  • 87. 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
  • 88. Roteador 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 Os roteadores são componentes avançados de rede que podem dividir uma rede em duas redes lógicas independentes
  • 89. 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.
  • 93. 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
  • 94. 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