Buscar

Anotações de aulas de Organização de Computadores

Prévia do material em texto

OC notas de aula.txt
ORG COMP - A1 ________________________________________________________________
LV: MONTEIRO, Mario A. Introdução a Organização de Computadores. 5ª Edição, 
Editora LTC. 
WEBER, Raul Fernando. Fundamentos de Arquitetura de Computadores. 3ª Edição, 
Série Livros Didáticos nº8, Editora Artmed 
STALLINGS, Willian. Arquitetura e Organização de Computadores. 5ª Edição, 
Editora Prentice Hall.
POLLI, Marco. Organização de Computadores. Rio de Janeiro: SESES, 2014. 128 p.
MONTEIRO, Mario A. Introdução a Organização de Computadores. Rio de Janeiro: 
LTC, 2007. p. 708.
RIBEIRO, Carlos; DELGADO, José. Arquitetura de computadores. Rio de Janeiro: 
LTC, 2009.
NA: Fundamentos do funcionamento de um computador
Computador: É uma máquina capaz de sistematicamente tratar e fornecer os 
resultados derivados do processamento dos dados com um ou mais objetivos. 
Podemos dizer que a sua função é transformar dados em informações.
Processamentos de dados > hardware > processador / memória / dispositivos de 
entrada e saída (E/S) / barramento
 > software > fundamentos da programação / linguagem de 
programação / sistema operacional
Processador (UCP ou CPU) > funções básicas: ler, interpretar instruções, 
realizar operações matemáticas
Memória > sistema de armazenamento e recuperação de dados > dividida em partes 
endereçáveis, onde as informações estão armazenadas e podem ser recuperadas
E/S > permite a comunicação entre o sistema de computação (computador) e o meio 
exterior (usuário)
Barramento > conjunto de fios que conduz o sinal elétrico entre os componentes 
(linhas impressas na placa) > é constituído de uma parte para endereço, uma para
dados e outra para controle
Fundamentos da programação > processamento de dados requer a execução de uma 
série de etapas, que podem ser realizadas por um computador. Estas etapas 
ordenadas são denominadas algoritmos. Cada passo do algoritmo será 
correspondente a uma instrução e o conjunto de instruções utilizadas irá 
constituir um programa > O computador possui uma linguagem própria (linguagem 
binária) para receber ordens. Todas as informações e todos os dados coletados 
são representados por sequências de 0 e 1, que são conhecidos como bits. O termo
bit é formado pelas duas primeiras letras da palavra BInary e da última letra da
palavra digiT.
Linguagem de programação > O código escrito (editado) em uma linguagem de 
programação (ou alto nível) é convertido em linguagem binária para que possa ser
executado. Essa conversão se dá através de compiladores e ligadores (link editor
ou linker) [Função dos compiladores] > Converter um programa escrito em uma 
linguagem de alto nível em código binário. O arquivo resultante é chamado código
objeto // Função dos ligadores > Agregar módulos em um único programa, inserindo
informações de relocação de endereços e referência entre os módulos. O arquivo 
resultante é chamado código executável
Página 1
OC notas de aula.txt
Sistema operacional > Conjunto de programas que permite a interação entre o 
usuário e o computador > Fornece um ambiente onde o usuário possa executar 
programas > ver figura oc1 > funções básicas: interface com usuário¹, gerencia 
de recursos², proteção // funções avançadas: segurança de acesso, auditoria, 
gerência de usuários
¹ acessar o sistema - segurança de acesso / criar e gerir diretórios, arquivos e
programas / executar programas / acessar dispositivos E/S / acessar conteúdos de
arquivos
² tempo de processador (CPU) / espaço em memória / espaço para armazenamento de 
arquivos / acessar dispositivos E/S / programas utilitários e aplicativos / 
bibliotecas de funções (DLLs) / rotinas de serviço / programas de interface com 
dispositivos (drivers)
PERGUNTAS: Organização de computadores > aula 01 > sistema operacional > funções
avançadas: qual a diferença entre "espaço em memória" e "espaço para 
armazenamento de arquivos"? Mesma coisa
A atividade estruturada disponível logo no início da disciplina Organização de 
computadores volta a ser abordada em aulas posteriores? 
VA: Sistemas embarcados > Um sistema embarcado (ou sistema embutido) é um 
sistema micro processado no qual o computador é completamente encapsulado ou 
dedicado especificamente ao dispositivo ou sistema que ele controla
* VA 35'10" > o termo usuário é usado para se referir aos programadores, 
sistemas e aplicativos (usuários do sistema operacional)
Compilador > converte o programa fonte (escrito em linguagem de alto nível) em 
código binário, resultando no chamado código objeto
Sistema operacional > gerencia recursos de hardware e software, permitindo ao 
usuário se comunicar com o computador 
TC: 88%
ORG COMP - A2 ________________________________________________________________
NA: Forma de representação das informações em computador > as unidades de 
armazenamento
> Conceitos fundamentais para o cálculo de espaço de armazenamento e para o 
entendimento dos limites impostos por uma determinada arquitetura
Unidades de informação são denominadas: Bit, Byte, Word e Múltiplos
Bit: é a unidade para composição de uma informação > bits 0 e 1 são os 
algarismos na numeração binária > com estes dois algarismos, todos os demais 
números podem ser representados
Byte é a unidade mínima de informação composta por 8 bits > ex. 00110101 [8 
bits]
Word é a unidade de armazenamento e recuperação de uma informação > ex. 00110101
00110101 [16 bits - 2 bytes]
Múltiplos são representados pela potência de 2 > ex. 1KB = 2¹° bytes 1MB = 2²°
bytes 1GB = 2³° bytes
A partir do byte a contagem é feita em relação a 1024, ou seja, 1024 bytes, 
correspondem a 1Kb (kilobyte). E agora segue assim por diante:
Página 2
OC notas de aula.txt
1 Byte = 8 bits
1 kilobyte (kB ou Kbytes) = 1024 bytes
1 megabyte (MB ou Mbytes) = 1024 kilobytes
1 gigabyte (GB ou Gbytes) = 1024 megabytes
1 terabyte (TB ou Tbytes) = 1024 gigabytes
1 petabyte (PB ou Pbytes) = 1024 terabytes
1 exabyte (EB ou Ebytes) = 1024 petabytes
1 zettabyte (ou Zbytes) = 1024 exabytes
1 yottabyte (ou Ybytes) = 1024 zettabytes.
**Existe muita diferença entre o uso de caixa alta e caixa baixa nas unidades de
medidas > de acordo com Sistema Internacional de Unidades há uma tabela Prefixo 
do SI, que traz os múltiplos e seus devidos fatores > p.e. o k (minúsculo) é o 
símbolo de quilo, M (maiúsculo) é o símbolo de mega, G (maiúsculo) é o símbolo 
de giga, e m (minúsculo) é o símbolo de mili > Esses múltiplos nada mais são do 
que números -> Quando eles vão na frente de alguma coisa, essa coisa é 
multiplicada por esse número >> temos o símbolo de byte que é B (maiúsculo) e o 
símbolo de bit que é b (minúsculo)
Sistema de numeração decimal > de base 10 > é o mais conhecido -> notação 
posicional [depende da posição do algarismo]
Sistema binário > base 2 [esta representação pode ser muito longa]
Sistema hexadecimal ou base 16 [costuma-se representar os números]
Combinações permitidas com n dígitos em uma base B > B elevada a n potencial > 
ex. 3 dígitos na base 10 = 10³ = 1000 números distintos (000 a 999) / 3 dígitos 
na base 2 = 2³ = 8 números distintos (000 a 111)
Exemplos de conversões >> (101)b = 1*2² + 0*2¹ + 1*2°
 4 + 0 + 1 = (5)d
(A5)h = A*16¹ + 5*16°
 10*16¹ + 5*1
 160 + 5 = (165)d
(39)d = (27)h >> (27)h = 2*16¹ + 7*16° = 32 + 7 = (39)d
(45)d = ?'2' >> 45 |2_
 1 22 |2_
 0 11 |2_
 1 5 |2_
 1 2 |2_
 0 1 |2_
 1** 0 **começo da representação 
45'10' = (101101)b
101101 = 1*2^5 + 0*2^4 + 1*2^3 + 1*2^2 + 0*2^1 + 1*2^0 = 32 + 0 + 8 + 4 + 0 + 1
Nota importante* qualquer número (base) elevada a 0 é sempre 1
VA: BIT > 0 e 1 > cadaposição pode ter 2 valores
> 1 bit: pode ser 0 ou 1 > duas possibilidades -> 2 = 2¹
> 2 bits: 00 01 10 11 > quatro possibilidades -> 4 = 2²
Página 3
OC notas de aula.txt
> n bits: 00n 01n ... > 2^n possibilidades 
*nota: decorar as potências de 2 facilita os cálculos
De quantos bits eu preciso para representar um número na base dois? 
Devemos encontrar a potência de dois mais próxima que comporte o número.
> 120 -> são necessários 7 bits: 2^7 = 128 combinações (representações 0 até 
127)
> 250 -> são necessários 8 bits: 2^8 = 256 combinações (representações 0 até 
255)
múltiplos do Byte - 
KB (kilobyte) : 2^10 : 1024 : 1024 bytes
MB (megabyte) : 2^20 : 1.048.576 : 1024 kilobytes
GB (gigabyte) : 2^30 : 1.073.741.824 : 1024 megabytes
TB (terabyte) : 2^40 : 1.099.511.627.776 : 1024 gigabytes
PB (petabyte) : 2^50 : 1.125.899.906.843.624 : 1024 terabytes
 
Quantos arquivos de 3MB cabem em 90GB?
1KB = 2^10 bytes 90GB = 90 x 2^30 bytes
1KB = 2^20 bytes 3MB = 3 x 2^20 bytes
1KB = 2^30 bytes 
 nº arquivos = __90__x__2^30__bytes__ = 30 x 2^10 (*potências simplificam 
subtraindo)
 3 x 2^20 bytes
 nº arquivos = 30 K arquivos (kilo)
AT: Uma máquina foi criada para atender as necessidades do dr Byte, ela dispõe 
de um registrador para processamento com 5 bits. Qual o maior número possível de
ser representado neste registrador?
2^n = 2^5 = 2x2x2x2x2 = 4x2x2x2 = 8x2x2 = 16x2 = 32 -> 0 a 31 -> resposta 31
>conferindo: 5 posições -> 1 1 1 1 1 -> 2^4 2^3 2^2 2^1 2^0 -> 16 +
8 + 4 + 2 + 1 = 31
Você possui um link de internet em sua casa de 8Mbps. Considerando o link em sua
performance máxima, informe em quanto tempo em minutos você conseguirá efetuar o
download de um arquivo de 600MB.
-> 600MB / 8Mb 
-> em cima da equação byte e embaixo bit 
-> 600 x 2^20 [mega: tabela] x 2^3 [bit: 8] / 8 x 2^20 [mega] [já é bit, não tem
2^3] por segundo
-> 600 segundos
-> resultado 10 minutos
TC: 62%
ORG COMP - A3 ________________________________________________________________
NA: converter números inteiros de uma base para outra > entender como são 
representados os números negativos > operações algébricas com diferentes bases
> A representação em hexadecimal é uma alternativa entre a forma decimal [que 
Página 4
OC notas de aula.txt
não pode ser expressa em potência de 2] e a forma binária [que utiliza muitos 
dígitos em sua representação]
> DA BASE DECIMAL PARA BASE BINÁRIA 
(22)d = (?)b >> 22 |2_
 0 11 |2_
 1 5 |2_
 1 2 |2_
 0 1 |2_
 1** 0*** 
**começo da representação (22)d = (10110)b 
***divisões sucessivas enquanto o consciente for DIFERENTE de zero
> DA BASE BINÁRIA PARA BASE DECIMAL
(10110)b = 1*2^4 + 0*2^3 + 1*2^2 + 1*2^1 + 0*2^0 = 16 + 0 + 4 + 1 + 1
(22)d = (10110)b
> DA BASE DECIMAL PARA BASE HEXADECIMAL 
(22)d = (?)h >> 22 |16_
 6 1 |16_
 1** 0 
**começo da representação (22)d = (16)h
(451)d = (?)h >> 451 |16_
 3 28 |16_
 12 1 |16_ 
 1 0 
**(451)d >> 1 12 3 >> (1C3)h
> DA BASE HEXADECIMAL PARA BASE DECIMAL 
(16)h = 1*16^1 + 6*16^0 = 16 + 6
(16)h = (22)d
(1C3)h = 1*16^2 + 12*16^1 + 3*16^0 = 256 + 192 + 3
(1C3)h = (451)d
DA BASE BINÁRIA PARA BASE HEXADECIMAL
> Para se converter de qualquer base para qualquer base, primeiro converte-se 
para a base 10 e depois da base 10 para a nova base
> Porém há um "macete" de conversão entre a base 2 e 16, e vice-versa
> Basta notar que qualquer dígito hexadecimal pode ser expresso por 4 bits 
binários
> Cada conjunto de 4 bits representa um dígito em hexadecimal 
> Ou seja, com 4 bits podemos escrever 16 números diferentes
> O número é convertido da direita para a esquerda em grupos de quatro de acordo
com a tabela binária:
 1 0 1 1 0 equivale a 0 0 0 1 0 1 1 0 -> (16)h
 | 1 | | 6 |
DA BASE HEXADECIMAL PARA BASE BINÁRIA
 (16)h -> 0 0 0 1 0 1 1 0 
Página 5
OC notas de aula.txt
 | 1 | | 6 |
> Representação de números negativos em base binária
> Sinal e magnitude
o dígito mais significativo indica o sinal: 0 representa uma número positivo e 1
representa um número negativo:
representação em 5 dígitos >> 12 = 0 1 1 0 0 -> '0' 1 1 0 0
 -12 = 1 1 1 0 0 -> '1' 1 1 0 0
** Descrição >> primeiro, temos que ter o 12 em binário, que seria 1100
A representação sinal e magnitude utiliza um bit para representar o sinal, o bit
mais à esquerda: 0 para indicar um valor positivo, 1 para indicar um valor 
negativo
Portanto temos: 1100 e colocamos o bit de representação negativo na frente: 
11100 
Entretanto você não pode colocar esse valor diretamente na calculadora sem 
definir que representa um número negativo, pois ela não irá considerar o bit 
mais da esquerda como o sinal negativo e sim como o bit que vale 16, somado aos 
outros bits ligados (8 e 4), totalizando 28
> complemento a base -1
Complemento é a diferença entre cada algarismo do número e o maior algarismo 
possível na base >> a operação é feita através de complemento a 1, que se resume
na inversão de todos os dígitos:
representação em 5 dígitos >> -12 = 1 0 0 1 1 -> '1' 1 1 0 0
 12 = 1 0 1 0 0 -> '1' 1 0 1 1
**Para se realizar o complemento a 1 de um número basta complementar cada um de 
seus bits
O complemento é, simplesmente, onde é 1 vira 0, e onde é 0 vira 1
Assim, o complemento a 1 de 1001 é 0110
> complemento a base
A representação mais utilizada para número negativos corresponde ao complemento 
à base, que, no caso de base binária, é chamado de complemento a 2 >> Para 
obtenção de um número negativo expresso em complemento a 2, o número deverá ser 
invertido e, em seguida, ser adicionado do valor 1:
 decimal sinal e magnitude complemento a 1 
complemento a 2
 -10 11010 10101 10110
**Para determinar o complemento a 2 de um número, pega-se o complemento a 1 
deste número e soma-se 1
Assim, o complemento a 2 de 01001 é determinado da seguinte maneira: 
--> complemento a 1: 10110 
--> soma-se 1: 10110 + 1 = 10111
--> resposta: 10111
** exemplos:
Considere 8 bits, +55 e -55 em binário usando a representação em complemento a 1
e a 2 respectivamente. 
Primeiro temos que converter de decimal para binário o 55, correto? 
Convertendo encontraríamos 110111; 
Para a resolução da questão, você terá que considerar 8 bits, logo ficaria 0011 
Página 6
OC notas de aula.txt
0111; 
Em complemento a 1, precisamos inverter. 
Lembre-se que a inversão não é da direita para esquerda e sim, onde é 0 (zero) 
passará a ser 1 (um) e onde é 1 (um) passará a ser 0 (zero), ok? 
Teríamos então 1100 1000; 
Em complemento a 2, precisamos somar 1 ao valor de complemento a 1. 
Neste caso: 1100 1000 + 1 --------------- 1100 1001 
Neste caso já temos a resposta: +55 = 0011 0111 e -55 = 1100 1001
Utilizando k dígitos binários, determinar quantos números não-negativos podem 
ser representados em sinal de magnitude, complemento a 1 e complemento a 2
Um número com k bits (digito binário), sem levar em consideração o sinal, pode 
expressar (2^k)-1 valores
Por exemplo, com 4 bits o maior inteiro sem sinal possível é 15 = (2^4) - 1
Se tivermos sinal/magnitude temos que reservar 1 bit para o sinal, assim nos 
sobra k-1 bits para representar o valor
Portanto, o maior valor será (2^(k-1))-1
Por exemplo, se tivermos4 bits, tiramos 1 para o sinal, sobram 3 bits
Assim, o maior valor será (2^(4-1))-1 = (2^3) -1 = 7
No caso de complemento a 1 ou 2 também utilizamos um bit para sinal, portanto o 
mesmo valor será atribuído que é o caso acima: (2^(k-1))-1.
VA: tabela binário | hexadecimal
 0000 | 0
 0001 | 1
 0010 | 2
 0011 | 3
 0100 | 4
 ... | ...
 1100 | C
 1101 | D
 1110 | E
 1111 | F
> SINAL E MAGNITUDE
> -10 = 1 1010 >> 1 (sinal) 1010 (magnitude)
> um bit reservado para o sinal -> o mais significativo
> o maior número negativo representado nesse sistema: 11111 = - 
1*2^3+1*2^2+1*2^1+1*2^0 = - 8+4+2+1 = -15
> COMPLEMENTO A 1
> sinal >> mantém o bit reservado -> o mais significativo
> magnitude >> corresponde a diferença entre cada algarismo do número e o maior 
algarismo possível na base
> no caso da base 2 o maior algarismo é 1 >> 1 - 1 = 0 e 1 - 0 = 1 >> 
equivale a inverter a magnitude
> -10 = 1 1010 >> 1(sinal) 1010(magnitude) >> 1(sinal) 0101(magnitude invertida)
= 1 0101 = 10101
* para n bits metade das combinações representa números positivos e a outra 
metade negativos
Página 7
OC notas de aula.txt
> COMPLEMENTO A 2
> sinal >> mantém o bit reservado -> o mais significativo
> magnitude >> utiliza a representação de complemento a 1 e SOMA mais 1
> para n bits metade das combinações representa números positivos e a outra 
metade negativos
> -10 = 10101 + 1 >> 1(sinal) 0101(magnitude invertida) + 1(somar ao último) >> 
= 10110
* é a representação mais utilizada
SOMANDO E SUBTRAINDO
> dois números positivos representados por seis bits (n=6):
 10 = (001010)b e 7 = (000111)b
 soma >> 10 + 7 -> 001010
 000111
 ------
 010001 -> 0+16+0+0+0+1 = 17
** na soma se vai 1, vale 2 na frente = no decimal se mudamos de casa vale 10, 
no binário vale 2 (18 minutos da vídeo aula 3)
 subtração 10 - 7 e 7 - 10 >> a operação depende da forma de representação do
negativo
 (inverter) (soma 1)
 SM¹ C1 C2
 >> - 7 -> 100111 111000 111001
 >> - 10 -> 101010 110101 110110
 
 
 SM >> + 10 -> 0 01010 
 
 >> - 7 -> 1 00111 
 
 ------- 
 
 0 00011 >> mantém-se o sinal da maior magnitude (01010)
= 0 
 12
 02
 02 (zero menos um empresta um e fica dois*)
 0 01010 
 1 00111 
 ------- 
 0 00011
¹ Sinal Magnitude
* para subtrair 1 de 0 é preciso pedir emprestado
 C1 >> + 10 -> 0 01010 > efetua-se a soma bit a bit >> INCLUSIVE do 
sinal
Página 8
OC notas de aula.txt
 >> - 7 -> 1 11000 
 
 ------- 
 
 ? ????? >> o sinal também é incluído na soma 
 
 111 (um que sobra é somado ao resultado*)
 | 001010 
 | 111000 
 | ------ 
 | 000010
 |__*> +1 = 000011 resultado final
*** importante: se houver o um que sobra (vai um) o resultado é positivo e soma 
o 1 
 
 
 C1 >> - 10 -> 1 10101 > efetua-se a soma bit a bit >> INCLUSIVE do
sinal 
 >> + 7 -> 0 00111 
 
 ------- 
 
 ? ????? >> o sinal também é incluído na soma 
 
 111 (vai um)
 110101 
 000111 
 ------ 
 111100
 *** importante: se NÃO houver o um que sobra (vai um) o resultado é negativo e 
deve ser complementado = 1 00011 resultado final (-3)
 
 
 C2 >> + 10 -> 0 01010 > efetua-se a soma bit a bit >> INCLUSIVE do
sinal
 >> - 7 -> 1 11001 
 
 ------- 
 
 ? ????? >> o sinal também é incluído na soma 
 
 111 (um que sobra é somado ao resultado*)
 | 001010 
 | 111001 
 | ------ 
 | 000011
 |_> = 000011 (3) resultado final positivo
*** importante: se houver o um que sobra (vai um) o resultado é positivo 
 
Página 9
OC notas de aula.txt
 
 11 (vai um)
 C2 >> - 10 -> 1 10110 > efetua-se a soma bit a bit >> INCLUSIVE do
sinal 110110 
 >> + 7 -> 0 00111 
 000111 
 ------- 
 ------ 
 ? ????? >> o sinal também é incluído na soma 
 111101 -> complementar a dois** => 100010
 11 (vai um)
 110110 
 000111 
 ------ 
 111101 -> complementar a dois** => 100010 
 100010 + 1 = 100011 (-3)
*** importante: se NÂO houver o um que sobra (vai um) o resultado é negativo e 
deve ser complementado
AT:> Utilizando k dígitos binários determine quantos números não negativos podem
ser representados em sinal e magnitude, complemento a 1 e complemento a 2.
R: Quando escrevemos números binários negativos de k dígitos, independente da 
representação (sinal e magnitude, complementos), o bit mais significativo (mais 
à esquerda) é utilizado para o sinal. Portanto, os outros k-1 dígitos são 
utilizados para o número (valor). Logo, podemos representar 2 elevado a k-1 
números distintos.
> Mariozinho contava mais figurinhas que Joãozinho. Quando mantinha o primeiro 
dedo mais a esquerda levantado e os quatro abaixados, ele contabilizava 
dezesseis. 
Qual o sistema de numeração utilizado por Mario? 
R: Binário, pois se pegar o bit mais significativo de cinco bits (1000), desse 
sistema, equivale 2^4, ele vai contar 16
Quantas figurinhas a mais ele conseguiria contar e memorizar?
R: base elevada ao n de bits => 2^5 = 32 -> 31 figurinhas, pois inclui o zero
Caso utilizasse as duas mãos e os dois pés, qual seria a sua capacidade de 
contagem?
R: 2^20-1
> Quanto é -20 em binário em complemento de 1 e de 2?
R: 32/16/8/4/2/1 >> 16+4 >> 10100 - em C1 101011 (inverte magnitude) e em C2 
101100 (soma 1)
TC: 100%
ORG COMP - A4 ________________________________________________________________
NA:> conceitos básicos de lógica digital
>> símbolos utilizados para representação de portas lógicas >> como eles são 
utilizados na construção de uma tabela-verdade 
> Portas >> circuitos digitais são formados por elementos capazes de manipular 
Página 10
OC notas de aula.txt
apenas grandezas binárias -> são chamados de portas lógicas >> são elementos de
hardware que recebem um ou mais sinais de entrada e produzem um sinalde saída, 
cujo valor é o resultado de uma operação lógica
Informação binária é representada por um sinal digital [pulsos elétricos]: +3V 
-> representa o bit 1
 +0,5V
-> representa o bit 0
**considerar sempre uma margem de tolerância
** a tendência é reduzir essas tensões para economizar energia e prolongar a 
duração da carga (bateria)
** O resultado de uma expressão lógica será sempre VERDADEIRO ou FALSO >> O 
resultado verdadeiro equivale ao valor 1 / O resultado falso equivale ao valor 0
> Operações lógicas >> são apresentadas pelas seguintes palavras: AND, OR, NOT, 
NAND, NOR e XOR
>> AND -> Produz resultado verdade se e somente se todas as entradas forem 
verdade
>> OR -> Produz resultado verdade se pelo menos uma das entradas for verdade
>> NOT -> Inverte o valor da entrada
>> NAND -> Produz resultado verdade se e somente se todas as entradas forem 
falsas
>> NOR -> Produz resultado falso se pelo menos uma das entradas for verdade
>> XOR -> Produz resultado verdade se os valores de sua entrada forem 
diferentes
> As operações lógicas podem ser representadas de duas maneiras: Representação 
matemática ou Símbolo gráfico
>> rep mat > considerando entradas A e B: ver fig oc4_representacao 
matematica_op log
>> Cada operação possui um símbolo gráfico conforme fig oc4_simbolo grafico_op 
log [precisa decorar] - ** símbolo do OR é o triangular e do AND é redondo
> Expressão lógica >> é uma expressão algébrica formada por variáveis lógicas e 
por símbolos representativos de operações lógicas
> O valor do resultado de uma expressão lógica pode ser obtido por uma 
tabela-verdade construída com todas as possibilidades de entrada e as 
correspondentes saídas
**p.e. na expressão F= X + Y¬ * Z [onde 1 representa um resultado verdadeiro e 0
um falso]
*>> [o símbolo 'Y¬' seria o 'Y' em sua representação correta e significa um NOT 
// o + significa um OR // o * significa um AND ]
 Tabela verdade
 X Y Z F
 0 0 0 0
 0 0 1 1
 0 1 0 0
 0 1 1 0
 1 0 0 1
 1 0 1 1
Página 11
OC notas de aula.txt
 1 1 0 1
 1 1 1 1
VA: > hardware >> conceitos de portas lógicas 
> valores lógicos são utilizados como entrada -> as portas lógicas fazem o 
processamento do sinais -> resultado lógico como saída
>> valores lógicos booleanos > bit 1 valor verdadeiro / bit 0 valor falso
> AND -> p.e vou começar a aula se a porta estiver fechada e todos sentados -> a
aula só começa se houver essa conjunção de condições -> uma e outra >> o efeito 
é o mesmo = o resultado será verdade somente quando todas as entradas forem 
verdade [verdade e verdade]
> Tabela verdade >> um diagrama em forma de tabela com todas as combinações 
possíveis de entrada e as saídas correspondentes, obedecendo a operação lógica 
da(s) porta(s) envolvida(s)
>> p.e representação matemática > A * B [ou A . B] >> Q = A * B
 tabela verdade
 A B Q
 0 0 0
 0 1 0
 1 0 0
 1 1 1 -> somente nesse caso a saída é verdadeira
> OR [inclusivo] >> p.e vou começar a aula se a porta estiver fechada ou todos 
sentados -> a aula começa quando ao menos uma das condições é atendida -> uma ou
mais >> o efeito é o mesmo = o resultado será verdade quando pelo menos uma das 
entradas forem verdade
>> p.e representação matemática > A + B >> Q = A + B
 tabela verdade
 A B Q
 0 0 0 -> somente nesse caso a saída é falso
 0 1 1
 1 0 1
 1 1 1 
> NOT >> inverte o valor de entrada -> o que é verdade vira falso e vice-versa
 _ _
>> p.e representação matemática > ¬A >> Q = A 
 tabela verdade
 A Q
 0 1
 1 0
> NAND >> resulta no inverso da porta AND -> o que é verdade no AND vira falso e
vice-versa
 _____ _____
Página 12
OC notas de aula.txt
>> p.e representação matemática > ¬A * B >> Q = A * B
 tabela verdade
 A B Q
 0 0 1
 0 1 1
 1 0 1
 1 1 0 -> somente nesse caso a saída é falso
> NOR >> resulta no inverso da porta OR -> o que é verdade no OR vira falso e 
vice-versa
 _____ _____ 
>> p.e representação matemática > A + B >> Q = A + B
 tabela verdade
 A B Q
 0 0 1 -> somente nesse caso a saída é verdadeiro
 0 1 0
 1 0 0
 1 1 0 
> XOR >> exclusive or >> resultados mutualmente exclusivas entre si -> produz 
resultado verdade se as entradas forem diferentes 
>> p.e representação matemática > A (+) B >> Q = A (+) B **[na representação 
correta o "mais" é dentro de um "círculo"]
 tabela verdade
 A B Q
 0 0 0 
 0 1 1 
 1 0 1
 1 1 0 -> diferença da OR
> precedência entre as portas: 
>> a negação (NOT) vem em frente de tudo
>> a multiplicação (AND) tem precedência sobre adição (OR) (como na álgebra de 
reais)
>> expressões entre parênteses tem precedência
 _
>>p.e. -> X = A + B * C
1°) NOT B
2°) resultado acima AND C
3°) OR com resultado de (2°)
 Tabela verdade
 _ _ 
 A B C B B*C X
 0 0 0 1 0 0
 0 0 1 1 1 1
 0 1 0 0 0 0
 0 1 1 0 0 0
Página 13
OC notas de aula.txt
 1 0 0 1 0 1
 1 0 1 1 1 1
 1 1 0 0 0 1
 1 1 1 0 0 1
** ver figura oc4_simbolos graficos_exemplo
AT: 1) Foi criado um circuito lógico que combina 2 entradas, cada uma formada 
por 3 bits. Chamamos estas entradas de A e B. Se em determinado momento o valor 
da entrada A é 011 e de B é 110 e a expressão que representa em circuito é A 
NAND B, qual será a saída para estas entradas?
1°> com duas entradas são quatro possibilidades de combinações de sinais
2°> montar a tabela de entradas
3°> colocar um NAND na tabela [nomeamos de X]
4º> fazer bit a bit dos três >> A 011 e B 110 >> 0 em A e 1 em B, de acordo com 
a tabela, resulta 1
>> 1 em A e 1 em B, resulta 0 >> 1 em A e 0 em B, resulta 1 >> resultado final 
101
 A B X
 0 0 1 
 1 1 0
 0 1 1
 1 0 1
2) Com base na tabela-verdade referente à expressão boleana a seguir, quantas 
serão as possibilidades do resultado ser verdade (1)? S = A.B+A.C
1º> montar a tabela de três entradas
2º> resolver pela precedência
3º> verificar resposta = são 3 possibilidades
 A B C A.B A.C S
 0 0 0 0 0 0
 0 0 1 0 0 0
 1 1 0 1 0 1
 1 1 1 1 1 1
 0 1 0 0 0 0
 0 1 1 0 0 0
 1 0 0 0 0 0
 1 0 1 0 1 1
AND > resultado verdade somente se todas entradas forem verdade
OR > resultado verdade se pelo menos uma entrada for verdade
NOT > inverte o valor da entrada
NAND > resultado inverso da AND > resultado falso somente se todas entradas 
forem verdade
NOR > resultado inverso do OR > resultado falso se pelo menos uma entrada for 
verdade
XOR > exclusivo > resultado verdade somente se as entradas forem diferentesTC: 100%
Página 14
OC notas de aula.txt
ORG COMP - A5________________________________________________________________
LV: Apêndice B de Introdução a Organização de Computadores – Mario Monteiro
NA: Álgebra Booleana > área da Matemática que trata de regras e elementos de 
lógica >> trata de variáveis e de operações com estas variáveis, porém utiliza 
variáveis binárias em que o valor 1 equivale à condição verdadeira e o valor 0, 
à condição falsa
> Uma expressão lógica pode ser simplificada garantindo, assim, circuitos mais 
simples e mais baratos de serem produzidos >> são 22 regras de simplificação:
Regra 1 -> X + 0 = X
Regra 2 -> X + 1 = 1
Regra 3 -> X + X = X
Regra 4 -> X + X¬ = 1
Regra 5 -> X * 0 = 0
Regra 6 -> X * 1 = X
Regra 7 -> X * X = X 
 _
Regra 8 -> X * X¬ = 0 
[*símbolo X¬ é uma representação aqui nas anotações de negação / original ->> X]
Regra 9 -> X¬¬ = X 
[*símbolo X¬¬ é uma representação aqui do original é X com duplo traço em cima =
dupla negação]
Regra 10 -> X + Y = Y + X 
[lei da comutatividade]
Regra 11 -> X (+) X = 0 
[* símbolo (+) é uma representação aqui do original + inserido no círculo = 
exclusive or XOR]
Regra 12 -> X * Y = Y * X 
[lei da comutatividade]
Regra 13 -> X + (Y + Z) = (X + Y) + Z 
[lei da associatividade]
Regra 14 -> X * (Y * Z) = (X * Y) * Z 
[lei da associatividade]
Regra 15 -> X * (Y + Z) = X * Y + X * Z 
[lei da distributividade]
Regra 16 -> X + X * Z = X
Regra 17 -> X * (X + Y) = X
Regra 18 -> (X + Y) * (X + Z) = X + Y * Z
Regra 19 -> X + X¬ * Y = X + Y
Regra 20 -> X * Y + Y¬ * Z + Y * Z = X * Y + Z
 _ _ _ _ _
Regra 21 -> (X + Y) = X * Y 
[Teorema de Morgan]
 _ _ _ _ _
Regra 22 -> (X * Y) = X + Y 
[Teorema de Morgan]
>> exemplo de simplificação de expressões utilizando as regras apresentadas
 _
 R = (X + Y) * (X + Y)
Página 15
OC notas de aula.txt
 _
Etapa 1 R = X + Y * Y Regra 18
 
Etapa 2 R = X + 0 Regra 8
 
Etapa 3 R = X Regra 1
VA: circuitos digitais são representados por expressões, cuja entradas são 
combinadas e saídas analisadas por meio da tabela-verdade >> as regras de 
simplificação da álgebra de Boole são utilizadas para reduzir o tamanho dessas 
expressões e consequentemente os circuitos
*p.e. Regra 1 -> se eu tenho uma entrada X [pode ser 0 ou 1] e faço um OU 
[representado por +] com 0 [combinado com 0] vai dar o próprio X como saída [o 0
vai dar 0 e o 1 vai dar 1] >> X + 0 = X
mais exemplo -> Comprovar a regra 16: 
X + X * Z = X [x OU x E z é IGUAL a x]
>> pela tabela-verdade é possível observar se o resultado é igual a X
 
X Z X*Z X+x*z
0 0 0 0
0 1 0 0
1 0 0 1
1 1 1 1
>> comprovar se o lado esquerdo é igual ao lado direito pela álgebra de Boole
 
 X + (X * Z) [aplicando a regra 6 - X*1=X - substitui X] 
->> [X * 1] + X * Z
 [aplicando a regra 4 - X+X¬=1 - substitui 1] 
->> X * [Z + Z¬] + X * Z 
 [aplicando a regra 15 - X*(Y+Z)=X*Y+X*Z - substitui X*[Z+Z¬]] 
->> [X * Z + X * Z¬] + X * Z 
 [aplicando a regra 10 - X+Y=Y+X - alterna ordem X*Z + X*Z¬ + X*Z]
->> X * Z + X * Z + X * Z¬ 
 [aplicando a regra 3 - X+X=X - substitui X*Z + X*Z] 
->> X * Z + X * Z¬ 
 [aplicando a regra 15 - X*(Y+Z)=X*Y+X*Z - substitui X*Z+ X*Z¬] 
->> X * (Z + X * Z¬)
 [aplicando a regra 4 - X+X¬=1 - substitui Z+Z¬] 
->> X * 1
 [aplicando a regra 6 - X*1=X - substitui X] 
Página 16
OC notas de aula.txt
->> X
mais exemplo -> simplificar a expressão: 
 _ _ 
X = (A + B) * B [*além de A e B tem uma barra que cobre a expressão toda]
>> no vídeo há uma representação gráfica do circuito [16'26" >> fig 
oc5_explicacao de representação de circuito]
 _ _ 
X = (A + B) + B >> regra 22 - barrado com AND transforma em OR [*considerar a 
barra que cobre a expressão]
 _ _ _ 
X = (A * B) + B >> regra 21 - barrado com OR transforma em AND [*considerar a 
barra que cobre a expressão]
 _ 
X = (A * B) + B >> regra 9 - duplo barrado é a negação da negação - se anulam 
em A e B
 
X = A + B >> regra 19 - a representação anterior pode ser simplificada
RESULTADO: X = A + B
AT: >> para transformar representação gráfica em expressão booleana > começa da 
esquerda para direita combinando as variáveis com AND / OR / NAND / NOR / NOT 
até a mais extrema a direita
*** AND é * e OR é +
Dada a expressão lógica S = AB + C, determine o valor da saída S, quando A = 
 010, B 110 e C=001:
resolvi pela tabela A B AB +C S
 0 1 0 0 0
 1 1 1 0 1
 0 0 0 1 1
TC: 100% -> fazer mais!!!
ORG COMP - A6 ________________________________________________________________
NA: > modelo de von neumann > contribuições >> Dados e instruções fossem 
armazenados em uma única memória que seria utilizada tanto para leitura quanto 
para escrita >> Os dados armazenados na memória poderiam ser acessados através 
de endereços >> A execução de um programa ocorre sequencialmente, por ordem de 
endereços, exceto se for feita algum desvio explícito no programa
> o modelo de neumann é formado por uma CPU, memória, unidade de entrada e 
unidade de saída, conectados entre si através de um barramento
>> CPU > Unidade lógico-aritmética -> execução de provações lógicas e 
aritméticas efetuando transformações sobre os dados
 > Unidade de controle -> interpretação e execução de comandos
 > Registradores internos -> conjunto de células que funcionam como 
pequenas memórias para leitura e gravação temporária de dados
Página 17
OC notas de aula.txt
>> Memória > A comunicação entre CPU e memória utiliza dois registradores 
específicos: RDM [registrador de dados de memória] - armazena conteúdo da 
palavra lida / REM [registrador de endereços da memória] - armazena o endereço 
da palavra na memória
>> Barramento > Conectam CPU/Memória/Controladores de dispositivos de E/S - 
dividido em 3 partes: controle [define o tipo de operação] / dados [informa o 
que será lido/escrito] / endereço [informa o endereço para leitura/escrita]
>> Programação > O valor de uma variável é alterado durante a execução de um 
programa / 
Instruções e dados são armazenados indistintamente
> limitações do modelo >> grande quantidade de acessos à memória / velocidade 
dos novos dispositivos / execução em paralelo
VA: modelo neumann > características: dados e instruções são armazenados em uma 
única memória / são armazenados e acessados por meio de endereços / a execução 
de um programa ocorre sequencialmente, por ordem de endereço, a menos que haja 
um desvio
MEMÓRIA <=> PROCESSADOR <=> ENTRADA/SAÍDA
> Registradores >> células de memória >> registradores de propósito geral e de 
propósito específico (p.e. RDM e REM)
> tamanho da célula -> determina o RDM
>> célula de 32 bits -> RDM com 32 bits [RDM tem a capacidade da célula => 4 X 8
bits = 4 Byte => 1 Byte = 8 bits]
> tamanho da memória em células -> determina REM
>> memória com 256 célula -> REM com 8 bits [número de combinações, de endereços
-> 2^n => 2^8]
> tamanho da memória máxima no exemplo => 256 X 4 Byte = 2^8 X 2^2 Byte = 2^10 
Byte [repete a base e soma os expoentes] = 1kB
> CPU [unidade central de processamento] >> unidade de controle / unidadearitmética e lógica / registradores
>> unidade de controle => gerenciamento do fluxo interno dos dados
>> unidade aritmética e lógica (UAL) => execução de operações lógicas e 
aritméticas - transformações sobre os dados
>> registradores => células de memória (temporárias) dentro do processador
registradores especiais: > registrador de instruções (IR) - armazena a instrução
que está sendo apresentada
 > registrador de estado (PSW) - armazena condições de 
estado geradas pela UAL gerando informações para unidade de controle
 > contador do programa (PC) - armazena o endereço da 
próxima instrução que será executada
Página 18
OC notas de aula.txt
> barramentos >> podem ser de três tipos: endereçamento / controle / dados
Limitações do modelo original -> atualmente há acessos múltiplos à memória e 
maior velocidade
TC:75%
ORG COMP - A7 ________________________________________________________________
NA: > Instruções > Memória / Processador [unidade de controle; unidade 
aritmética e lógica - acumulador] / E/S 
> o processador é dividido em três partes:
>> Instruções / Unidade de controle / Unidade Lógico aritmética
> Todo o processador é fabricado contendo um conjunto de instruções que define 
quais operações ele pode realizar > cada processador apresenta um conjunto de 
instruções, sendo cada uma responsável pela execução de uma tarefa
> A instrução utiliza registradores de uso geral para armazenamento temporários 
dos dados que serão processados e de uso específico para funções pré definidas 
de controle ou destinadas a uma forma de armazenamento implícito
* Ninguém programa diretamente utilizando as instruções do processador! Os 
programas são desenvolvidos em linguagens de alto nível. Os compiladores são 
responsáveis por transformar este programa para uma linguagem de montagem 
(Assembly), que é a representação textual das instruções como p.e. ADD, MOV, INC
etc
> três tipos de instrução: Instruções aritméticas e lógicas / Instruções de 
movimentação de dados / Instruções de transferências de controle
>> IAL -> Realizam operações aritméticas (ADD, SUB, etc) e lógicas (AND, OR, 
etc)
>> IMD -> Transferem dados entre registradores ou entre registrador e memória 
principal (MOV)
>> ITC -> Executam o desvio do fluxo sequencial do código (JMP)
* Alguns processadores possuem ainda instruções para tratamento de ponto 
flutuante, manipulação de bits e manipulação de cadeias de caracteres (strings)
> A execução de uma instrução é dividida em etapas:
 -> Busca -> Decodificação -> Busca de operandos -> Fim -
 |___________<________________<______________________<___| 
 
> Uma instrução possui dois formatos básicos:
 Código da operação / Operando
> As instruções podem ter mais de um operando ou nenhum operando
>> Código da operação -> Indica que operação será executada / a quantidade de 
bits destinada a este código determina o número máximo de instruções possíveis
>> Operando -> indica o(s) dado(s) que serão manipulado(s) / operações 
aritméticas possuem em geral 2 ou 3 operandos
>> p.e. -> instrução de 12 bits: 0001 0101 1000
 [código] [operando 1] [operando 2]
-> ADD R1,R2,R3 : operação de soma onde a soma de R1 e R2 é armazenada em R3
Página 19
OC notas de aula.txt
-> ADD R1,R2: o valor de R2 é adicionado ao valor de R1 e armazenado em R2.
> os modos de endereçamento são: imediato, direto, indireto, por registrador, 
relativo à base e indexado
>> imediato -> Utiliza um valor como operando e não um endereço na memória / p.e
 ADD #4, R1 O valor 4 é adicionado ao registrador R1
>> direto -> Indica o endereço de memória onde está o operando / p.e ADD (20), 
R1 O conteúdo do endereço 20 é adicionado a R1
>> indireto -> Indica um ponteiro para o operando / p.e ADD (R1),R2 R1 
contém o endereço do valor que será adicionado a R2
>> por registrador -> O endereço se refere a um registrador 
>> relativo à base -> Endereço obtido pela soma do operando com o conteúdo de um
registrador base / p.e ADD 20(R1),R2 O endereço é dado pelo deslocamento R1 a 
partir da base 20 
>> indexado -> índice para uma estrutura (vetor) / p.e ADD (R1+R2),R3 O 
endereço é fornecido pela soma do endereço base R1 com o deslocamento R2 
VA: > instruções >> são as ordens que o computador entende
>> cada família de processadores tem seu próprio conjunto de instruções 
[instruction set]
>> quem usa essas instruções >> o programador assembly [linguagem baixo nível] e
os compiladores
>> instruções podem ter formatos diferentes, dependendo do número de operandos
> tipos de instruções: instruções aritméticas e lógicas / instruções de 
movimentação de dados / instruções de transferências de dados 
> formato de instrução: código da operação COp / operando(s) [dados -> números, 
caracteres ou endereços]
> p.e >> ADD -> soma o primeiro operando com o segundo, o resultado fica 
armazenado no primeiro operando -> ADD op1, op2
>> MOV -> copia o segundo operando [fonte] para o primeiro operando [destino] ->
MOV op1, op2
>> JNZ -> desvia a execução do programa para o endereço indicado -> JNZ op1
> registradores:
>> registradores de uso geral para armazenamento temporário dos dados que serão 
processados -> p.e. AX, BX
>> registradores de uso específico para funções pré-definidas de controle -> 
p.e. IR, PSW, PC
> modos de endereçamento:
>> imediato - utiliza o próprio valor como operando
>> direto - indica o endereço de memória onde está o valor do operando
>> indireto - indica um ponteiro [endereço] para o endereço do operando
>> registrador - o endereço se refere a um registrador
>> deslocamento - obtido pelo soma do operando com o conteúdo de um registrador 
base
AT: Um determinado processador possui um conjunto de 64 instruções. Quantos bits
de opcode a instrução deverá possuir?
Página 20
OC notas de aula.txt
 opdecode -> 64 
 2^n bits -> 2^6 = 64 -> 2^n -> n=6
 R. com seis bits eu consigo representação 64 instruções diferentes
Um processador possui um conjunto de instruções que emprega vários modos de 
endereçamento. Considere que a memória principal possui endereços de 16 bits e o
mapa de memória a seguir. Para cada item diga qual o valor obtido:
a) a instrução possui o modo direto e o operando possui o valor 15B9
b) a instrução usa o modo imediato e o operando possui o valor 15BA
c) a instrução usa o modo indireto e o operando possui o valor 15BB
Tabela -> Endereço _|_ Conteúdo
 15B9 | 7C
 15BA | 82
 15BB | 15
 15BC | BE
 15BD | 9A
 15BE | 75
R. a) 15B9 -> direto -> 7C -> resposta 7C / b) 15BA -> imediato -> resposta 15BA
/ c) 15BB -> indireto -> endereço 15BB = 15, faltam dois bytes, usa os valores 
do seguinte -> endereço 15BE -> resposta 75
Considerando uma instrução com código de operação de 4 bits e operando de 8 
bits, cujo processador trabalhe com endereçamento direto, quantas instruções no 
máximo podem existir nessa configuração e qual o maior endereço (em hexadecimal)
pode servir de operando?
R. COp _|_ Endereço 
 __ __ __ __ | __ __ __ __ __ __ __ __
 
COp 4 bits = 2^n = 2^4 = 16 combinações
End 1 Byte -> 1111 1111 -> 1111 = F -> FF
TC: 88%
ORG COMP - A8 ________________________________________________________________
NA: > processador
> modelo de Von Neumann >> 
 Memória <-> Unidade de Controle <-> Unidade Aritmética e Lógica 
[Acumulador] <-> E/S
 | |
 |<-------------------------------------------->|
> um computador é inicializado pelo procedimento de bootstrap / o processador é 
composto por circuitos capazes de executar instruções >> função do processador é
executar instruções e, para isso, obedece ao ciclode busca, decodificação e 
execução da instrução
->início ->buscar instrução na memo ->decodificar instr ->buscar comandos 
->executar ->escrever resultados ->término
| 
Página 21
OC notas de aula.txt
 |
|<------------------------------------------------------------------------------
----------------------------------<|
> funções do processador >>
1) Buscar instrução na memória
2) Interpretar que operação está sendo requerida
3) Buscar operandos necessários
4) Executar operação
5) Guardar o resultado (se for o caso)
6) Reiniciar o ciclo
> As funções realizadas pelo processador podem ser divididas em dois grupos: 
controle e processamento
>> CTRL > Responsável pela busca, interpretação e controle de execução das 
instruções
-> componentes: unidade de controle (UC) / registrador de instruções 
[responsável pela movimentação de instrução] / decodificador de instruções 
[armazena a instrução executada] / contador de instruções [identifica a 
instrução executada] / registrador de endereço de memória [armazena o endereço 
da próxima instrução] / registrador de dados de memória [REM ou MAR]
>> PROC > Execução de operações aritméticas, operações lógicas, movimento de 
dados, desvios e operações de entrada ou saída
-> componentes: UAL (ALU) / ACC [acumulador - cada bit possui um significado - 
sinal, overflow, zero, vai 1, paridade, etc] / Registradores de dados 
[registrador acumulador] / Registrador de estado (PSW)
> Interrupções >> São eventos provocados pelo hardware que provocam o desvio da 
sequência normal de execução de uma tarefa
>> São sinais de hardware fundamentais para a existência de sistemas 
multitarefa, pois provocam a interrupção da tarefa em execução
>> As interrupções são inicialmente tratadas pelo processador que, em seguida, 
desvia a execução do programa para a rotina de tratamento da interrupção também 
chamada de interrupt handler
*VER a8_oc_figura1.png
> As interrupções podem ser divididas em três classes: relógio, E/S e falha de 
Hardware
>> Relógio -> Relógio é o dispositivo gerador de pulsos cuja duração é chamada 
de ciclo / A frequência do processador é dada pela quantidade de ciclos por 
segundo / 
A interrupção gerada pelo relógio interno do processador provoca a suspensão 
periódica da tarefa em execução para permitir a execução de uma nova tarefa / 
Esta interrupção é fundamental para o modelo de sistemas multitarefa atuais
>> E/S -> Gerada por um controlador de E/S para sinalizar o término de uma 
operação / Após o término da execução da rotina de tratamento o processamento 
retorna ao ponto imediatamente após de onde foi interrompido
>> Falha HW -> Gerada por uma falha de hardware para impedir a continuidade da 
execução da tarefa
> Pipeline >> O esquema tradicional de execução de uma instrução (sequencial) 
Página 22
OC notas de aula.txt
não utiliza o potencial dos circuitos eletrônicos cada vez mais rápidos, pois 
existem tarefas mais lentas que outras, como, por exemplo, o acesso à memória / 
No modelo sequencial, os componentes do processador não envolvidos com o acesso 
à memória estariam ociosos durante a execução da tarefa 
>> O pipeline funciona, então, como uma linha de montagem, permitindo que várias
instruções sejam executadas SIMULTANEAMENTE, reduzindo o tempo de término de 
cada ciclo >> O objetivo é utilizar as diversas unidades do processador por 
instruções diferentes
> p.e. > Enquanto uma instrução utiliza a ULA, outra instrução pode trazer um 
endereço da memória
> Características: 
• Busca antecipada de instruções / • Memória de laço de repetição / • Previsão 
de desvio
VA: > incialização > procedimento de bootstrap >> 1.energia / 2.registradores 
inicializados / 3.executa instrução BIOS - basic input output system / 4.BIOS 
[POST - power on self test] / SETUP - configurações do hardware / carga SO - 
sistema operacional]
> função do processador >> executar instruções > para isso obedece o ciclo de 
busca, decodificação e execução da instrução
> sequência de interrupção:
>> dispositivo de controle ou outro sistema de hardware que permita ativar uma 
interrupção >> processador termina a execução da instrução corrente >> 
processador reconhece o sinal de interrupção >> processador coloca o PSW e PC na
pilha de controle >> processador carrega novo valor do PC, baseado na 
interrupção >> salva informações remanescentes sobre o estado do processo >> 
processa a interrupção >> restaura a informação do estado do processo >> 
restaura o velho PSW e PC
> Pipeline -> é uma linha de montagem > os processos são executados linearmente 
> é uma técnica usada em processadores para melhorar seu desempenho, que 
consiste em "dividir" o processador em vários estágios distintos
>> é a técnica de projeto que permite a unidade central de processamento começar
a processar uma instrução antes da anterior ter sido concluída
AT: > as funções realizadas pelo processador são divididas em dois grupos: 
controle e processamento
 as funções de controle são responsáveis pela busca, interpretação e 
controle de execução das instruções
 exemplos de componentes do grupo de procedimentos: ACC [acumuladores], PSW
[registrador de status] e registradores de dados
 > as interrupções são incialmente tratadas pelo processador
 as rotinas de interrupção também são chamadas de interrupt handler
 a rotina de interrupção é executada da mesma maneira que um programa de 
usuário
 as interrupções são sinais de hardware fundamentais para a existência de 
sistema multitarefa, pois provocam a parada da tarefa em execução
Página 23
OC notas de aula.txt
TC: 100%
ORG COMP - A9 ________________________________________________________________
NA: > Memória [MM] > como funciona a memória principal e como ela se relaciona 
com os demais elementos do sistema de computação / importância da memória cache 
para o desempenho de um computador e o relacionamento desta memória com a 
memória principal
> A memória principal é a responsável pelo armazenamento temporário de 
informações que serão manipuladas pelo sistema e que irão permitir sua 
recuperação quando necessário
>> O elemento básico de armazenamento é o bit, porém a forma de como estes bits 
são agrupados para representar uma informação depende de cada sistema -> Este 
agrupamento é denominado célula e passa a ser a unidade de armazenamento
>> processadores de 16 bits -> possuem endereços de 20 bits, permitindo usar até
1MB endereços de memória / Cada célula possui 1 byte de largura
>> processadores de 32 bits -> possuem endereços de 32 bits permitindo o acesso 
a 4GB células também de 1 byte
> hierarquia: Existem vários tipos diferentes de dispositivos de armazenamento, 
cada um com características próprias de tempo de acesso, capacidade, 
aplicabilidade, etc / Estas memórias são organizadas na forma de pirâmide onde, 
no topo, encontra-se aquela com maior custo, maior velocidade e menor capacidade
de armazenamento e, na base, o inverso:
 [__registradores__]--------------> Armazenamento de dados na CPU
 [____memória cache____]------------> Localizada entre o 
processador e a mm principal
 [____memória principal____]----------> É a memória básica de um 
sistema de computação* 
 [______memória secundária______]-------> MM não volátil para armaz. de 
dados e programas**
*RAM - onde ficam armazenados os programas em execução e os dados em uso
**E/S - p.e. HD, pen drive
> Componentes da memória principal
>> A CPU comunica-se com a memória através de um barramento e utiliza os 
registradores RDM e REM para o envio e recebimento das informações
>> Utiliza, ainda, registradores para armazenamento durante a transferências
>> As operações de leitura e escrita são gerenciadas pelo controladorde memória
> barramentos de dados -> Interliga a RDM à memória principal para transferência
de Informações / É bidirecional
> registrador de dados -> Registrador que armazena temporariamente a informação 
que está sendo transferida de/para a memória
> barramento de endereços -> Interliga a REM à memória principal / É 
unidirecional
> registrador de endereços da MM -> Registrador que armazena temporariamente o 
endereço de acesso
> barramento de controle -> Interliga a unidade de controle do processador à 
memória principal para envio de sinais durante as operações de leitura e escrita
Página 24
OC notas de aula.txt
> controlador da MM -> Responsável por gerar os sinais necessários para controle
do processo de leitura e escrita, além de interligar a memória aos demais 
componentes do sistema
> operações da MM principal -> dois grupos >> Operação de Leitura e Operação de 
Escrita
>> Operação de Leitura >>
1- REM <- endereço em outro registrador
2- O endereço é colocado no barramento de endereço
3- Sinal de leitura no barramento de controle
4- Decodificação de endereço e localização da célula
5- RDM <- MP pelo barramento de dados
6- Outro registrador <- RDM
>> Operação de Escrita >>
1- REM <- endereço em outro registrador
2- O endereço é colocado no barramento de endereço
3- RDM <- outro registrador
4- Sinal de escrita no barramento de controle
5- MP (REM) <- RDM
> Organização da memória principal
>> A memória é organizada em células
>> Um conjunto de células que possuem um significado é chamado de palavra (word)
>> A palavra é a unidade de informação do sistema que deve representar o valor 
de um dado ou de uma instrução de máquina
> Unidade de transferência -> Consiste na quantidade de bits que é transferida 
para a memória em uma operação de escrita e da memória em uma operação de 
leitura / Em função do aumento da taxa de transferência dos barramentos, os 
sistemas utilizam unidades superiores a uma célula de memória
> Capacidade da memória principal -> Quantidade de informações que podem ser 
armazenadas representadas por N [número de células * tamanho da célula]
> Memória cache >> O estudo da memória cache pode ser subdividido em: motivação 
/ acesso / organização / mapeamento / algoritmos de substituição
>> motivação -> Diferença de velocidade entre processador e memória principal 
 Princípio da Localidade: temporal e espacial
 [Temporal: Se um item é referenciado, tenderá a ser referenciado novamente 
p.e. loops (instruções e dados)]
 [Espacial: Se um item é referenciado, itens cujos endereços são próximos 
tenderão a ser referenciados em seguida. p.e. acesso a dados de um array]
>> acesso -> O acesso a cache é transparente para a aplicação e ao sistema 
operacional
 Para a leitura de 1 byte na memória principal têm-se os seguintes 
passos:
 1. O processador inicia a operação de leitura e coloca o endereço desejado na
Memória Principal
 2. O sistema de controla da cache intercepta o endereço e conclui se o dado 
solicitado está ou não armazenado na cache / Um acerto é denominado cache hit e 
a falta é denominada cache miss
 3. Se ocorrer um cache miss o controlador da memória principal é acionado 
Página 25
OC notas de aula.txt
para localizar o dado na memória, transferindo-o para a cache 
 4. Um novo acesso é feito à memória cache 
 5. Considerando o princípio da localidade, os próximos dados consultados já 
deverão estar na cache, compensando (e muito!) a demora causada por uma falha
>> organização -> A memória cache é organizada em um conjunto de L linhas, sendo
cada linha constituída de X bytes
 As linhas têm endereço de 0 a L-1
 Cada linha possui um campo indicador do endereço do bloco que 
está naquele instante armazenado nela. Este campo é denominado tag ou rótulo
 A localização é composta, no mínimo, pelo endereço do bloco e 
pelo deslocamento dentre do bloco
>> mapeamento -> 1. Direto - cada bloco da MP tem uma linha de cache previamente
definida. Como o tamanho da memória é muito maior que o tamanho da cache, é 
necessário se obter o tag do bloco e verificar se é o mesmo tag que está na 
linha indicada, indicando um hit. É um método simples, porém de pouca 
flexibilidade
 2. Associativo - não há local fixo na cache para um bloco da 
MP, no entanto será necessário comparar o tag com o tag de cada linha
 3. Associativo por conjunto - utiliza conceitos das técnicas 
anteriores, utilizando mapeamento direto para identificar um bloco e mapeamento 
associativo para localizar o dado dentro do bloco
>> algoritmos de substituição -> O tamanho da memória cache é muito menor que o
da MP, então a mesma linha de cache poderá ser escolhida por mais de um dado
 Para escolher a linha que deverá ser 
substituída no caso de uso do mapeamento associativo, os métodos mais utilizados
são: LRU (menos recentemente usado) ou FIFO (fila) / É possível, ainda, fazer 
uma escolha aleatória que, mesmo sendo aparentemente menos eficiente, pode 
reduzir a sobrecarga para identificação do bloco
**Todo o gerenciamento da memória cache é feito por hardware. Nem o Sistema 
Operacional, nem as aplicações têm conhecimento da existência da memória cache
**Política de escrita na memória: 
Sempre que ocorre uma escrita na cache, a memória principal deve ser atualizada,
porém esta atualização pode ocorrer em diferentes momentos: 
• simultaneamente em ambas as memórias (write through), 
• escrita somente quando o bloco for substituído (write back) ou
• escrita na MP somente na primeira atualização (write once), útil para sistemas
multiprocessados
VA: > memória principal [RAM] e memória cache [auxilia o desempenho] -> tipos de
memória volátil -> armazenam um conteúdo e quando tira a energia, essa memória 
se perde
> memória secundária -> memória não volátil -> mesmo sem energia os dados 
continuam armazenados
> quanto mais alta a memória na pirâmide -> maior a velocidade / maior o custo /
menor a capacidade de armazenamento
> Barramento de dados - interliga o RDM [registrador de dados] à MP
> RDM - armazena temporariamente as informações que estão sendo transferidas 
Página 26
OC notas de aula.txt
de/para a MM
> barramento de endereços - interliga o REM [registrador de endereço de memória]
à MP - indica em que endereço será lido ou gravado o dado
> REM - contém o endereço que será lido ou gravado na MP
> barramento de controle - interliga a UC [unidade de controle do processador] à
MP - onde trafegam os sinais de controle [identificando se é leitura ou 
gravação]
> controlador de MM - é o responsável pelos sinais de controle
> operação de leitura na MP - há um sinal do que será lido; o endereço do que 
será lido [REM]; o endereço é colocado no barramento de endereço; há um sinal de
leitura no barramento de controle; acontece a decodificação do endereço e 
localização da célula; vem pelo barramento e chega ao RDM; e no RDM será 
colocado o conteúdo lido para que seja trazida a MM para o processador
*o RDM é a porta de E/S da dados entre o processador e a memória / o REM 
[endereço] indica o que estou lendo/gravando
> operação de escrita na MP - endereço em outro registrador; levado ao REM; o 
endereço é colocado no barramento de endereço; o conteúdo de escrita é levado a 
porta de saída do registrador de dados da memória [RDM]; envia o de escrita no 
barramento de controle; acontece a decodificação do endereço e localização da 
célula; chega ao RDM, que envia a MP (REM) [por meio do barramento de dados]
> conceitos: organização da memória principal -> células [unidade de leitura e 
gravação que agrupa Bytes de um dado]
 palavra -> conjunto de células com significado
 unidade de transferência -> quantidade de bits transferidos de/para
a MM
 capacidadede memória -> quantidade de informações armazenadas
 N -> número de células * tamanho de célula [multiplica para 
encontrar essa quantidade total]
> memória cache >> o acesso a cache não é visível para a aplicação e para o SO >
todo seu gerenciamento é feito por hardware
>> o processador inicia a operação de leitura para o endereçamento desejado da 
MP
>> o sistema de controle da cache intercepta o endereço e conclui se o dado 
solicitado está ou não armazenado na cache [um acerto é denominado cache hit e 
uma falha cache miss]
>> se ocorrer cache miss, o controlador da MP é acionado para localizar o dado 
na memória, transferindo-o para a cache -> um novo acesso é feito à memória 
cache
*a memória cache [agilizar] compensa a diferença de velocidade de processamento 
entre o processador [rápida] e a memória principal [mais lenta]
> princípio da localidade >> temporal [itens referenciados mais de um vez - 
looping] / espacial [itens quando endereços são próximos]
> a MM cache é organizada em conjunto de linhas - cada linha possui um indicador
do endereço de um bloco que está armazenado nela naquele instante -> este campo 
indicador é denominado tag ou rótulo
Página 27
OC notas de aula.txt
> mapeamento da cache >> direto [cada bloco da MP tem uma linha da cache 
previamente definida - bloco e linha são identificados por tag] / associativo 
[não há local fixo na cache para um bloco da MP] / associativo por conjunto [uma
mistura do direto com associativo]
AT: > Considere um sistema cuja célula de memória é composta por 16 bits e o 
registrador de endereços possui 32 bits. Qual o tamanho máximo da memória 
principal neste sistema?
REM 32 bits -> 2^32 = 4G células
célula 16 bits -> 2^16 = 2 bytes
Total: multiplica REM pelo tamanho da célula -> MP = 4G X 2B = 8GB
> Quantos bits o registrador de endereços deve ter para endereçar uma memória de
4GB onde cada célula possui 64 bits?
célula = 64 bits -> 8 bytes
quantidade de células -> 4GB/8B = 2^32 / 2^3 [32 - 3] = 2^29 células
REM -> 29 bits
> capacidade máxima de endereçamento -> determinada pelo REM
 tamanho da célula de memória -> capacidade total de memória dividido pela 
capacidade de células que posso endereçar [REM]
 tamanho da palavra de memória -> é vinculada ao RDM
 p.e. Um processador possui um RDM com capacidade de armazenar 64 bits em um 
REM com capacidade de armazenar 35 bits. A memória desse sistema tem 126 GB.
 Qual a capacidade máxima de endereçamento?
 Qual o tamanho da célula de memória?
 Qual o tamanho da palavra de memória?
RESPOSTA:
Se REM tem 35 bits -> 2^35 = 2^5 * 2^30 células -> 2^5 = 32 | 2^30 = Giga -> 32G
endereços [endereçamento]
Memória 128GB e 32G endereço -> 128GB / 32G endereço = 4B [Giga se anulam] -> 4B
por endereço
Cada célula possui 4B -> converter para bits -> 4X8 -> 32 bits tamanho da célula
RDM tem 64 bits -> a palavra, nesse caso, corresponde ao RDM -> 64 bits possui a
palavra
> A CPU comunica-se com a memória através de um barramento [de dados] e utiliza 
os registradores RDM e REM para o envio e recebimento das informações
 Memória secundária não é a memória básica de um sistema [são diferentes]
 Memória cache é a memória volátil para armazenamento de dados e programas
> Para validar o uso da memória cache nas arquiteturas modernas de computadores,
foram realizadas algumas pesquisas para compreender o comportamento dos 
 programas. Essas características observadas podem ser resumidas no:
 princípio de processamento sequencial e pipelining
 princípio da integração entre UCP / Memória / Dispositivos E/S
 Certo princípio da localidade temporal e localidade espacial
 princípio do subsistema de memórias e barramentos múltiplos
Página 28
OC notas de aula.txt
 princípio da velocidade de acesso e capacidade de armazenamento
 > A eficiência da memória cache é medida utilizando:
 Certo O total de acertos (cache hit) dividido pelo total de acessos, 
multiplicado por 100
 O total de acessos dividido pelo total de acertos (cache hit)
 O total de acessos dividido pelo total de erros (cache miss)
 O total de acessos dividido pelo total de acertos (cache hit), 
multiplicado por 100
 Erro O total de erros (cache miss) dividido pelo total de acessos
TC: 88%
ORG COMP - A10 _______________________________________________________________
LV: capítulo 15 de Fundamentos de Arquitetura de Computadores – Raul Fernando 
Weber
NA: > dispositivos > subsistema de entrada e saída >> assunto bastante 
abrangente, envolve todos os periféricos de um computador, cada um com 
características bem específicas
>> principais conceitos de funcionamento para que possam ser adequados aos 
periféricos atuais e futuros 
> atividade de E/S (entrada e saída) -> é a troca de informações entre o 
computador e o meio externo:
-> Um sistema de E/S deve ser capaz de receber e enviar informações ao meio 
externo e converter as informações de maneira que se tornem legíveis para o 
computador ou para o usuário
-> Cada dispositivo apresenta características bem particulares, tornando o 
estudo de cada tipo de dispositivo único
> características dos dispositivos: taxa de transmissão / aplicação / 
complexidade de controle / unidade de transferência /representação de dados / 
condições de erro
* A arquitetura de E/S deve especificar um método para identificação do 
dispositivo, o endereço do dado a ser transportado, a quantidade de dados a 
serem transportados e um método que identifique o término da operação de E/S
> componentes dos dispositivos são: periférico, interface, controlador, 
barramento, porta de E/S
>> periférico -> Dispositivo conectado a um computador de forma a permitir a 
comunicação com o mundo externo
>> interface -> Componente que conecta o periférico aos barramentos do 
computador
>> controlador -> Implementa as operações (lê, escreve...)
>> barramento -> Conjunto de circuitos impressos que transportam os sinais
>> porta E/S -> Endereço no sistema de E/S
*ver imagem -> a10_oc_figura1.png
> Endereçamento de E/S >> Utiliza um conjunto de registradores internos ao 
controlador que recebem ordens do processador e fornecem o status de uma 
operação 
Página 29
OC notas de aula.txt
>> Os registradores são associados a endereços e podem ser implementados de duas
formas: em espaço de memória e em espaço de E/S
-> espaço de MM >> Na fase de projeto do computador é definida uma zona do 
endereçamento de memória que será utilizada para dispositivos de E/S / 
Programação com instruções de acesso a memória (mov)
-> espaço de E/S >> Instruções especiais para manipulação de dispositivos / No 
projeto do processador são definidos dois espaços distintos de endereçamento
> Os dispositivos podem ser classificados em três formas, que são: quanto a 
interação, quanto a transferência de dados e quanto a forma de comunicação
>> interação -> com usuário (teclado, mouse p.e.) / com outros componentes 
(discos p.e.) / dispositivos remotos (modem p.e.)
>> transferência de dados -> orientado à bloco (disco p.e.) / orientado à 
caractere (terminal p.e.)
>> forma de comunicação -> Programmed I/O - Responsabilidade do programador
 Interrupt-driven I/O - Processador é interrompido 
quando a operação se completa
 Direct memory Access (DMA) - Transferência dos dados 
diretamente para a memória sem interferência do processador
> Tipos de transmissão de dados: serial, paralelo
>> serial -> O periférico é conectado ao controlador por apenas uma linha de 
comunicação de dados; logo, a transferência é feita por um bit de cada vez (USB,
PCI Express, SATA, p.e.)
>> paralelo -> Um grupo de bits é transferido simultaneamente através de um 
conjunto de linhas de comunicação (MCA, ISA/EISA, AGP [monitores -substituídos 
pelo PCI] p.e.)
> Memória secundária
>> São os meios de armazenamento não-volátilcomo, p.e., os discos magnéticos
>> A organização destes discos é particularmente importante pela função que 
exercem -> discos magnéticos são divididos em setores, trilhas e cilindros * ver
figura -> a10_oc_figura2.png
> O desempenho de um disco é medido pela velocidade de localizar uma informação 
> Considera-se que o disco roda em velocidade constante para posicionar a cabeça
na trilha
> Para calcular o desempenho de um disco, são computados: o tempo seek (tempo 
gasto para posicionar o cabeçote em uma trilha), o atraso rotacional (tempo 
gasto para posicionar um setor - latência) e a transferência (tempo gasto para 
transferência de dados - bytes) -> O tempo T de transferência de um conjunto de 
dados é dado por >> 
 T = T'seek + T'atraso + T'transf
T'seek = n .m + S [n- número de trilhas / m- constante, depende do disco / S- 
startup time] 
T'atraso = 1/2r [r- velocidade de rotação] 
T'transf = b/rN [N- qtd de bytes na trilha]
*Quando o arquivo a ser transferido está organizado de forma sequencial, o tempo
Página 30
OC notas de aula.txt
de seek somente será computado para a primeira trilha
> Existem, ainda, estratégias para atendimento às requisições, fornecidas pelo 
SO, denominadas estratégias de escalonamento de disco >> podem ser baseadas na 
ordem dos pedidos, na localização e na localização segmentada
>> ordem dos pedidos -> FiFo [mais simples / atendimento na ordem dos pedidos]; 
Prioridade [fora do controle do gerenciador]; LiFo [diminui o movimento da 
cabeça de leitura em arquivos sequenciais]
>> localização -> SSTF (shortest service time first) [Fila é reordenada para 
atender às requisições de forma a minimizar o movimento da cabeça / 
Possibilidade de starvation]; Scan (elevador) [Variação do SSTF, porém estipula 
uma direção preferencial / O sentido se inverte ao final da varredura]; C-Scan 
[semelhante ao Scan, porém com um único sentido]
>> localização segmentada -> N-step-Scan [Divide as requisições em filas de 
tamanho N / As requisições de cada fila são processadas em conjunto / Novas 
requisições são colocadas em novas filas / Para valores grandes de N, é 
semelhante ao SCAN / Para N = 1, equivale a FIFO]; FSCAN [Utiliza duas filas /
Enquanto uma fila está sendo atendida, novas requisições são colocadas na outra 
fila]
VA: > componentes do sistema E/S: periférico [dispositivo conectado ao 
computador, p.e. mouse] interface [componente que conecta o periférico ao 
barramento, p.e. usb] controlador [hardware por trás da interface - um chip] 
barramento [conjunto de fios que transportam os sinais] portas de E/S [endereço 
no sistema E/S] 
> tipos de endereçamento > utiliza um conjunto de registradores internos ao 
controlador que recebem ordens do processador e fornecem o status de uma 
operação > os registradores são associados a endereços e podem ser implementados
de duas maneiras: em espaço de memória e em espaço de E/S
> Seek -> tempo gasto para posicionar o cabeçote em uma trilha
> atraso rotacional -> tempo gasto para posicionar um setor (latência)
> tranferência -> tempo gasto para a transferência de dados efetivamente
>> estratégia baseada na fila de requisição -> FiFo [First in First out]; 
Prioridade [fora do controle do gerenciador]; LiFo [Last in First out]
>> baseada na localização -> SSTF (shortest service time first); Scan 
(elevador); C-Scan [semelhante ao Scan, porém com um único sentido]
TC: 100%
OC - REV A1-5 _________________________________________________________________
 A1
 > princípios de funcionamento do computador
 > máquina destinada ao processamento de dados, capaz de receber instruções com 
o objetivo de transformar esses dados e alcançar um fim
 > entrada -> transformação -> saída
 dados -> processamento -> informação
 > hardware é parte física do computador [tudo aquilo que tocamos] - é formado 
pelas placas, pelos componentes eletrônicos 
Página 31
OC notas de aula.txt
 > software é a parte lógica [o que instalamos e programamos]
 > processamento de dados -> HW e SW
 > Formatos de computador: desktop / laptop [notebook] / netbook / tablet / 
smartphone
 > barramentos [a comunicação dos componentes de HW - caminhos para 
transferências de bites] -> endereçamentos / transferência de dados / controle 
[leitura ou gravação na memória]
 > SW - sistema operacional e aplicativos instalados no SO
 > SW - desenvolvimento - programa [fonte] >> compilador >> objeto [código 
intermediário] >> ligador [link edição] >> executável [transforma os dados em 
ações no SW]
 > o computador:
 
 | usuários [programadores / sistemas e aplicativos] <-> sistema operacional 
[DOS, WIN, LINUX, MAC-OS] 
SW |
 | device drivers [IOS, Android, WPhone]
____|__________________________________________________________________
 |
 | UCP [Intel - Atom, i3, i5, i7] / RAM [Turion, Sempron] [Poder de 
processamento]
HW |
 | Dispositivos E/S [Troca e 
armazenamento]
 > Processamento de dados é a tarefa de transformar dados em informações
 > Essa tarefa pode ser executada por um computador
 > para que o computador faça uma tarefe é necessário que exista um programa que
determine com esta tarefa será executada
 > para o desenvolvimento de um programa utilizamos uma linguagem de programação
[alto nível]
 > o programa escrita nessa linguagem é transformado em código de máquina por 
meio dos processos de compilação e ligação
 
 A2
 > unidades de armazenamento de dados
 > utilizamos o sistema decimal, no qual temos algarismo de 0 a 9, representando
valores de unidades, dezenas, centenas, etc.
 > dependendo da posição [notação posicional] o algarismo assume um valor 
diferente
 > cada posição corresponde a uma potência de base começando em ZERO [mais à 
direita]
 > p.e. -> 258 na base 10 ou 258¬10 -> 2*10^2 + 5*10^1 + 8*10^0
 > base binária 0 1 2 3 4 5 6 7 8 9 [b10]
 > base binária 0 1 [b2]
 > base hexadecimal 0 1 2 3 4 5 6 7 8 9 A B C D E F [b16]
 > todas essas bases são posicionais - a posição está relacionada a potência da 
base
 > base binária -> BIT [BInary digiT] >> 0 ou 1 >> cada posição pode ter 2 
valores
 1 bit: 0 1 -> 2
= 2¹ possibilidades
Página 32
OC notas de aula.txt
 2 bits: 00 01 10 11 -> 4
= 2² possibilidades
 n bits: 00n 01n -> 
2^n possibilidades
 > conjunto de oito bits representa um Byte
 > múltiplos do Byte: KiloByte 2^10 
 MegaByte 2^20 
 GigaByte 2^30
 TeraByte 2^40
 PetaByte 2^50
 ExaByte 2^60
 ZetaByte 2^70
 YottaByte 2^80 
 > 1 MB = 2^10 = 1024
 > 1 MB é 1 KB multiplicado por 2^10 -> 1MB = 2^10 * 2^10 = 2^20
 > para uma determinada base B, empregando-se n dígitos pode-se representar B^n 
combinações distintas
 > considere, p.e, a representação em base decimal com 3 dígitos. Esta 
representação fornece 10^3 (portanto, 1000) números distintos (000 a 999)
 > se, no entanto, utilizarmos a base binária, para os mesmo 3 dígitos, tem-se 
2^3 (portanto, 8) números distintos (000 a 111)
 A3
 > representação da informação
 > conversão entre bases
 decimal -> binário
 decimal -> hexadecimal
 binário -> hexadecimal
 hexadecimal -> binário
 > conversão D->B REGRA >> os restos da divisão pela base [de trás para frente -
o primeiro resto será quando o quociente for igual a zero] irão formar o número 
convertido
 p.e. número 14 14 |2_
 0 7 |2_
 1 3 |2_
 1 1 |2_
 1 0
 então,

Continue navegando