Buscar

Resumo Organização de Computadores

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 32 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 32 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 32 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Organização de Computadores
Aula 01 – Princípios de Funcionamento de um Computador
Em primeiro lugar, é importante nos familiarizarmos com alguns conceitos de processamento de dados. Você saberia dizer o que é um computador, um hardware ou um software? Não se preocupe. Vamos aos jargões da área computacional.
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.
Os componentes físicos de um computador são chamados de hardware e o  programa responsável pela utilização do hardware é denominado software.
Computador: Podemos dizer que a sua função é transformar dados em informações. 
Dado é a matéria prima obtida na etapa de coleta (entrada). 
Informação é o resultado obtido pelo tratamento destes dados (saída). 
Etapas básicas de processamento: DADOS (entrada), PROCESSAMENTO e INFORMAÇÃO (saída). 
Etapas básicas de processamento:
DADOS (entrada)           PROCESSAMENTO         	INFORMAÇÃO (saída)
Um computador é constituído por diversos componentes visíveis  tais como monitor, teclado, mouse e por outros menos visíveis tais como processador e memória que ficam embutidos em um gabinete. Para que este conjunto de componentes funcione para a execução de uma tarefa, é necessária a existência de uma sequência de instruções denominada programa.
Processador: O primeiro componente a ser estudado será o Processador. Ele é responsável pela execução de operações definidas por uma instrução de máquina. Também é chamado de UCP (Unidade Central de Processamento) ou CPU (Central Processing Unit). É constituído de milhões de componentes eletrônicos cujas funções básicas são ler, interpretar instruções e realizar operações matemáticas.
FUNÇÕES BÁSICAS:
- Ler
- Interpretar instruções
- Realizar operações matemáticas
Processador: funções básicas são ler, interpretar instruções e realizar operações matemáticas. 
Memória: Sistema de armazenamento e recuperação de dados. Cada dispositivo de memória possui características diferentes.
A memória principal é dividida em partes endereçáveis (endereços) onde as informações estão armazenadas e de onde podem ser recuperadas.
Memória: Sistema de armazenamento e recuperação de dados. Cada dispositivo de memória possui características diferentes. A memória principal é dividida em partes endereçáveis (endereços) onde as informações estão armazenadas e de onde podem ser recuperadas.
Dispositivos de entrada e Saída: Permite a comunicação entre o sistema de computação e o meio exterior convertendo a linguagem utilizada pelo sistema em linguagem do mundo exterior e vice -versa. 
Permite a comunicação entre o sistema de computação e o meio exterior convertendo a linguagem utilizada pelo sistema em linguagem do mundo exterior e vice-versa.
Os seres humanos entendem símbolos enquanto os computadores entendem sinais elétricos.
Barramento: Conjunto de fios que conduz sinais elétricos entre os componentes. Um barramento pode ser composto por um ou mais fios em função da quantidade de bits que irá transportar. Um barramento é constituído de uma parte para endereço, uma para dados e outra para controle. 
Conjunto de fios que conduz sinais elétricos entre os componentes.
Um barramento pode ser composto por um ou mais fios em função da quantidade de bits que irá transportar.
Um barramento é constituído de uma parte para endereço, uma para dados e outra para controle.
Fundamentos da Programação: Qualquer 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. O computador possui uma linguagem própria (linguagem binária) para receber ordens. No entanto, programar em linguagem binária é insano, pois utilizam apenas dois caracteres: 0 e 1. 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. 
Qualquer 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.  
 Para que um algoritmo seja executado por um computador, é necessário que o processador entenda o que está sendo solicitado. Cada passo do algoritmo será, então, 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. No entanto, programar em linguagem binária é insano, pois utilizam apenas dois caracteres: 0 e 1. 
 
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.
Linguagens de Programação: Para tornar a programação possível, foram desenvolvidas linguagens de um nível mais alto, ou seja, mais próximas do entendimento humano chamadas genericamente de linguagens de programação. Ex: Java, C, C++, Cobol e Delphi. 
Para tornar a programação possível, foram desenvolvidas linguagens de um nível mais alto, ou seja, mais próximas do entendimento humano chamadas genericamente de linguagens de programação.
O código escrito (editado) em uma linguagem de alto nível deve, então, ser 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.
 Conversão
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.
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. 
Sistema Operacional: Conjunto de programas que permite a interação entre o usuário e o computador. Ex: Linux, Windows XP, Windows Vista, Windows 7. 
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, garantindo uma utilização segura e eficiente do hardware.
Funções básicas:
1- Interface com o usuário
Acessar o sistema – segurança de acesso
Criar e gerir diretórios, arquivos e programas
Executar programas
Acessar dispositivos de entrada e saída (E/S)
Acessar conteúdo de arquivos
2- Gerência de recursos 
Tempo de Processador (CPU)
Espaço em Memória
Espaço para armazenamento de arquivos
Acesso a dispositivos de entrada e de saída (E/S)
Programas Utilitários e aplicativos
Bibliotecas de Funções – DLLs 
Rotinas de Serviço
Programas de Interface com Dispositivos – Drivers 
3- Proteção
Funções avançadas:
1- Segurança de acesso
2-  Auditoria
3- Gerência de usuários
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, garantindo uma utilização segura e eficiente do hardware.
Aula 02 – Unidades de Armazenamento de Dados
Nesta aula, iremos apresentar a forma de representação das informações em um computador e aprender a trabalhar com as unidades de armazenamento.
Estes conceitos são fundamentais para o cálculo de espaço de armazenamento e para o entendimento dos limites impostos por uma determinada arquitetura.
A fluência no tratamento de números expressos em potências da base pode poupar muito tempo, por exemplo, em provas e concursos públicos.
As Unidades de informaçãosão denominadas: Bit, Byte, Word e Múltiplos. Algumas como você pode perceber, vêm do idioma inglês.
O Bit: é a unidade para composição de uma informação. O bits 0 e 1 são os algarismos na numeração binária e, com estes dois algarismos, todos os demais números podem ser representados.
O Byte é a unidade mínima de informação composta por 8 bits.
O Word é a unidade de armazenamento e recuperação de uma informação; múltiplo de byte.
E, por fim, os Múltiplos. Estes são representados pela potência de 2.
	NOME
	SÍMBOLO
	MÚLTIPLO
	
	quilobyte
	KB
	210
	1024
	megabyte
	MB
	220
	1024 x kb
	gigabyte
	GB
	230
	1024 x mb
	terabyte
	TB
	240
	1024 x gb
	petabyte
	PB
	250
	1024 x tb
	exabyte
	EB
	260
	1024 x pb
	zetabyte
	ZB
	270
	1024 x pb
	yotabyte
	YB
	280
	1024 x zb
O sistema de numeração decimal, também chamado de base 10, é o mais conhecido, porém os computadores utilizam o sistema binário, ou seja, utilizam a base 2. Como esta representação pode ser muito longa, costuma-se representar os números no sistema hexadecimal ou base 16.
Os números representados em uma determinada base são compostos pelos algarismos da base, que variam de 0 até o algarismo representado pela base menos uma unidade (base-1). Por exemplo, se a base é 10 os algarismos irão de 0 até 9 (9 = 10-1).
Combinações permitidas com n dígitos em uma base B.
Para uma determinada base B, empregando-se n dígitos pode-se representar B   combinações distintas.
Considere, por exemplo, a representação em base decimal com 3 dígitos. Esta representação fornece 1000 números distintos (de 0 a 999). Se, no entanto, utilizarmos a base binária, para os mesmo 3 dígitos, tem-se 8 números distintos (de 0 a 7).
Nota: números binários utilizam uma grande quantidade de dígitos.
Aula 03 - Representação da Informação
Nesta aula, iremos aprender a converter números inteiros de uma base para outra e entender como são representados os números negativos. A  utilização de operações algébricas com diferentes bases será alvo da aula online.
Veremos, ainda, como são representados os caracteres e os padrões vigentes.
Conversão entre os sistemas de numeração
 
Em nosso cotidiano, utilizamos a base decimal para expressar medidas e seus múltiplos. Já os computadores armazenam informações expressas da forma binária conforme visto na aula anterior. Esta forma de representação é intuitiva se lembrarmos do conceito de bit.
A  representação em hexadecimal aparece, então, como uma alternativa entre a forma decimal, que não pode ser expressa em potência de 2 e a forma binária, que utiliza muitos dígitos em sua representação.
 Um número em hexadecimal é identificado por ser seguido por uma letra h.
A conversão entre bases, consiste em representar um número em uma outra base e, para isso, serão apresentados algoritmos de conversão.
DA BASE DECIMAL PARA OUTRA BASE
 Repita: Dividir o número decimal pela base 
Extrair o resto como algarismo e colocá-lo à esquerda do anterior enquanto o quociente da divisão for diferente de 0
DA OUTRA BASE PARA BASE DECIMAL
 Multiplicar cada algarismo pela potência da base referente à posição do algarismo e somar todos os resultados.
DA BASE BINÁRIA PARA BASE HEXADECIMAL
 Cada conjunto de 4 bits representa um dígito em hexadecimal, pois com 4 bits podemos escrever 16 números diferentes ( 24 = 16). 
 O número é convertido da direita para a esquerda.
DA BASE HEXADECIMAL PARA BASE BINÁRIA 
Analogamente ao item anterior, cada dígito em hexadecimal é convertido em 4 dígitos binários.
Representação de números inteiros
 Conforme visto na aula anterior, um número inteiro positivo é representado com n bits  em uma base binária B no intervalo entre 0 e B  -1. Como representar, então, números negativos na base binária?
SINAL E MAGNITUDE:
A forma mais simples é a utilização da representação denominada sinal e magnitude, onde o dígito mais significativo indica o sinal: 0 representa uma número positivo e 1 representa um número negativo. O número zero possui, então, duas representações possíveis.
Exemplo considerando a representação binária com 5 bits:  
Esta representação é particularmente trabalhosa quando são efetuadas operações de soma entre dois números, onde um deles é negativo.
COMPLEMENTO A BASE-1
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. 
Esta forma garante uma única representação para o número zero.
Representação de caracteres
 
Para representação de caracteres são utilizadas tabelas que transformam caracteres não numéricos em números para que possam ser armazenados em formato binário.
OS PADRÕES SÃO:
ASCII – American Standard Code for Information Interchange
Padrão vigente na forma estendido com suporte para 256 caracteres (8 bits)
EBCDIC - Extended Binary Coded Decimal Interchange Code
Padrão em desuso utilizado pela IBM
UNICODE 
Padrão em implantação que utilize 16 bits, permitindo o uso de caracteres específicos de determinados idiomas. Este padrão preserva os códigos da tabela ASCII.
Aula 04 – Conceitos de Lógica Digital
Nesta aula iremos apresentar  os conceitos básicos de lógica digital.
Você conhecerá os símbolos utilizados para representação de portas lógicas e como eles são utilizados na construção de uma tabela-verdade.
PORTAS
Os circuitos digitais são formados por elementos capazes de manipular apenas grandezas binárias. 
 Estes elementos são chamados de portas.
As portas são, então, elementos de hardware que recebem um ou mais sinais de entrada e produzem um sinal de saída, cujo valor é o resultado de uma operação lógica.
A informação binária é representada por um sinal digital onde:
OPERAÇÕES LÓGICAS
As operações lógicas são apresentadas pelas seguintes palavras: AND, OR, NOT, NAND, NOR e XOR.
As operações lógicas podem ser representadas de duas maneiras:
Representação matemática.
Símbolo gráfico.
Representação Matemática das operações lógicas, considerando A e B entradas:
Cada operação possui um símbolo gráfico conforme descrito a seguir.
TABELA VERDADE E EXPRESSÕES LÓGICAS
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.
Exemplo: Considere a expressão F = X + Y * Z onde 1 representa um resultado verdadeiro e 0 um resultado falso. 
Aula 05 – Álgebra Booleana
A Álgebra Booleana é uma área da Matemática que trata de regras e elementos de lógica. Assim como na Álgebra comum, a Álgebra Booleana 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. 
 
NOÇÕES DE ÁLGEBRA BOOLEANA
A Álgebra Booleana é uma área da Matemática que trata de regras e elementos de lógica.
Assim como na Álgebra comum, a Álgebra Booleana 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.
Essa simplificação deve seguir as seguintes regras, 22 no total:
Vamos ver agora um exemplo de simplificação de expressões utilizando as regras apresentadas.
Simplificar a expressão:
Aula 06 – Modelo de Von Neumann
Na aula 1, foram apresentados os componentes de um computador com uma breve descrição de sua funcionalidade.Nesta aula, iremos aprender como estes componentes se relacionam segundo o Modelo de Von Neumann.
Um pouco de históriaJohn Von Neumann foi um matemático húngaro (1903-1957) com diversas contribuições significativas na matemática e na física. Foi professor da Universidade de Princeton e um dos construtores do ENIAC. A sua grande contribuição para a computação foi propor que os dados lidos em cartões perfurados fossem gravadas na memória do computador.
A contribuição de Von Neumann para a computação propõe uma arquitetura onde:
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.
Composição do Modelo
 O Modelo proposto por Von Neumann (1945) é formado por uma CPU, memória, unidade de entrada e unidade de saída, conectados entre si através de um barramento.
Unidade Lógico-Aritmética: responsável pelas execução de operações lógicas e aritméticas efetuando transformações sobre os dados
Unidade de Controle: responsável pela 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.
MEMÓRIA
Comunicação CPU/Memória
A comunicação entre CPU e memória utiliza dois registradores específicos:
 • RDM - Armazena o conteúdo da palavra lida ou que será escrita na memória
REGISTRADOR DE DADOS D MEMORIA
•REM - Armazena o endereço da palavra na memória 
REGISTRADOR DE ENDEREÇOS DA MEMORIA
Barramento
Conectam CPU/Memória/Controladores  de dispositivos de E/S.
São divididos 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
Programação sequencial
O valor de uma variável é alterado durante a execução de um programa
Instruções e dados são armazenados indistintamente.
LIMITAÇAO DO MODELO:
Grande quantidade de acessos a memória.
Velocidade dos novos dispositivos.
Execução em paralelo.
MODELO DE VON NEUMANN 
Um Pouco de História: John Von Neumann foi um matemático húngaro (1903 -1957) com diversas contribuições significativas na matemática e na física. Foi professor da Universidade de Princeton e um dos construtores do ENIAC. A sua grande contribuição para a computação foi propor que os dados lidos em cartões perfurados fossem gravadas na memória do computador. 
A contribuição de Von Neumann para a computação propõe uma arquitetura onde: 
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. 
COMPOSIÇÃO DO MODELO: 
O Modelo proposto por Von Neumann (1945) é formado por uma CPU, memória, unidade de entrada e unidade de saída, conectados entre si através de um barramento. 
A CPU, POR SUA VEZ, É COMPOSTA POR: 
Unidade Lógico-Aritmética: responsável pelas execução de operações lógicas e aritméticas efetuando transformações sobre os dados 
Unidade de Controle: responsável pela 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. 
MEMÓRIA: 
Comunicação CPU/Memória: A comunicação entre CPU e memória utiliza dois registradores específicos: 
RDM (Registrador de Dados da Memória) - Armazena o endereço da palavra na memória 
REM – (Registrador de Endereços da Memória) - Armazena o conteúdo da palavra lida ou que será escrita na memória 
BARRAMENTO: 
Conectam CPU/Memória/Controladores de dispositivos de E/S. 
São divididos 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: 
Programação sequencial 
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 a memória. 
Velocidade dos novos dispositivos. 
Execução em paralelo
Aula 07 - Instruções
Nesta e nas próximas aulas, iremos estudar cada um dos componentes apresentados.
O primeiro componente será o processador que, por sua vez, será dividido em três partes:
Instruções
Unidade de controle
Unidade Lógico aritmética
Nesta aula, iremos aprender, também ,como são executadas as instruções segundo o modelo de Von Neumann.
Conjunto de Instruções
Todo o processador é fabricado contendo um conjunto de instruções que define quais operações ele pode realizar.
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.
ATENÇÃO:
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, por exemplo, ADD, MOV, INC etc.
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, por exemplo, ADD, MOV, INC etc.
INSTRUÇÕES ARITMÉTICAS E LÓGICAS: Realizam operações aritméticas (ADD, SUB ...) e lógicas (AND, OR).
INSTRUÇÕES DE MOVIMENTAÇÃO DE DADOS: Transferem dados entre registradores ou entre registrador e memória principal (MOV ).
INSTRUÇÕES DE TRANSFERENCIAS DE CONTROLE: Executam o desvio do fluxo sequencial do código.
ATENÇÃO: Alguns processadores possuem ainda instruções para tratamento de ponto flutuante, manipulação de bits e  manipulação de cadeias de caracteres (strings).
Execução de uma instrução
A execução de uma instrução é dividida em etapas.
São elas:
Formato básico de uma instrução
Uma instrução possui dois formatos básicos, que são:
• Código da operação 
• Operando 
As instruções podem ter mais de um operando ou nenhum operando.
Modos de endereçamento
As maneiras de endereçamento são: imediato, direto,  indireto, por registrador, relativo a base e indexado.
CONJUNTO DE INSTRUÇÕES: Todo o processador é fabricado contendo um conjunto de instruções que define quais operações ele pode realizar. 
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. 
ATENÇÃO: 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, por exemplo, ADD, MOV, INC etc. 
TIPOS DE INSTRUÇÃO: Existem três tipos de instrução: as Instruções aritméticas e lógicas, as Instruções de movimentação de dados e as Instruções de transferências de controle. 
INSTRUÇÕES ARITMÉTICAS E LÓGICAS: Realizam operações aritméticas (ADD, SUB ...) e lógicas (AND, OR). 
INSTRUÇÕES DE MOVIMENTAÇÃO DE DADOS: Transferem dados entre registradores ou entre registrador e memória principal (MOV ). 
INSTRUÇÕES DE TRANSFERÊNCIAS DE CONTROLE: Executam o desvio do fluxo sequencial do código. 
ATENÇÃO: Alguns processadores possuem ainda instruções para tratamento de ponto flutuante, manipulação de bits e manipulação de cadeias de caracteres (strings). 
EXECUÇÃO DE UMA INSTRUÇÃO: A execução de uma instrução é dividida em etapas. São elas: 
 FORMATO BÁSICO DE UMA INSTRUÇÃO: Uma instrução possuidois formatos básicos, que são: 
• Código da operação e 
 • Operando 
As instruções podem ter mais de um operando ou nenhum operando. 
Código de 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. 
MODOS DE ENDEREÇAMENTO: As maneiras de endereçamento são: imediato, direto, indireto, por registrador, relativo a base e indexado. 
IMEDIATO: Utiliza um valor como operando e não um endereço na memória. 
Exemplo: ADD #4, R1 O valor 4 é adicionado ao registrador R1. 
DIRETO: Indica o endereço de memória onde está o operando. 
Exemplo: ADD (20), R1 O conteúdo do endereço 20 é adicionado a R1 
INDIRETO: Indica um ponteiro para o operando. 
Exemplo: 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. 
Exemplo: ADD 20(R1),R2 O endereço é dado pelo deslocamento R1 a partir da base 20 
INDEXADO: índice para uma estrutura (vetor). 
Exemplo: ADD (R1+R2),R3 O endereço é fornecido pela soma do endereço base R1 com o deslocamento R2.
Aula 08 – Processador
Já sabemos como as instruções são executadas. 
Na aula de hoje, iremos detalhar as unidades funcionais de um processador avançando do modelo de Von Neumann para implementações mais sofisticadas.
Lembre-se que estamos tratando de conceitos e que existem diferenças de projetos entre diferentes fabricantes.
Processador e seus componentes
 Já sabemos como um computador é inicializado (procedimento de bootstrap) e, com isso, entendemos que o processador é composto por circuitos capazes de executar instruções.
 A função do processador é, então, executar instruções e, para isso, obedece ao ciclo de busca, decodificação e execução da instrução.
Funções do processador:
Buscar uma instrução na memória.
Interpretar que operação está sendo requerida.
Buscar os operandos necessários.
Executar a operação.
Guardar o resultado (se for o caso).
Reiniciar o ciclo.
As funções realizadas pelo processador podem ser divididas em dois grupos: controle e processamento.
FUNÇÕES DE CONTROLE: Responsável pela busca, interpretação e controle de execução das instruções.
Componentes do grupo de controle:
Unidade de controle – responsável pela movimentação de instruções;
Registrador de instruções – armazena a instrução que está sendo executada;
Decodificador de instruções – identifica qual instrução está sendo executada;
Contador de instruções – registrador que armazena o endereço da próxima instrução que será executada;
Registrador de endereço de memória – REM OU MAR;
Registrador de dados de memória – RDM OU MBR.
FUNÇÕES DO PROCESSADOR: Execução de operações aritméticas, operações lógicas, movimento de dados, desvios e operações de entrada ou saída.
Componentes do grupo de processamento:
UAL (ALU) – cada bit possui um significado (sinal, overflow, zero, vai 1, paridade, etc.)
ACC – registrador acumulador;
Registradores de dados
Registrador de estado (PSW) – cada bit possui um significado (sinal, overflow, zero, vai 1, paridade, etc.)
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.
As interrupções podem ser divididas em três classes:  relógio, E/S e falha de Hardware.
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: 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.
Falha de Hardware: 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) 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.
Lembre-se: a execução de uma instrução é composta por diversos estágios
Exemplo: Enquanto uma instrução utiliza a ULA, outra instrução pode trazer um
Características:
Busca antecipada de intruções
Memória de laço de repetição
Previsão de desvio
Aula 09 – Memória
iremos aprender como funciona a memória principal e como ela se relaciona com os demais elementos de um sistema de computação.
Aprenderemos, também, sobre a importância da memória cache para o desempenho de um computador e o relacionamento desta memória com a memória principal.
iremos aprender como funciona a memória principal e como ela se relaciona com os demais elementos de um sistema de computação.
Características da 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.
Cada célula de memória possui um endereço que a identifica de forma única.
Exemplos:
PROCESSADOR DE 16 bits: Os 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.
PROCESSADOR DE 32 bits: PROCESSADOR DE 16 bits:
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.
Os tipos de memória são mostrados a seguir começando pelo topo:
Memória principal
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 controlador de memória.
Memória principal
Operações
As operações são divididas em dois  grupos: Operação de Leitura e Operação de Escrita:
Memória principal
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 é, então, 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 TRANSFERENCIA: Consiste naquantidade 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 MEMORIA PRINCIPAL: Quantidade de informações que podem ser armazenadas representadas por N. (N = número de células x tamanho da célula)
Memória cache
O estudo da memória cache pode ser subdividido em: motivação, acesso, organização, mapeamento e 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.
Exemplo : 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.
Exemplo: acesso a dados de um array.
Todo o gerenciamento da memória cache é feito por hardware. Nem o Sistema Operacional nem as aplicações tem 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
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:
O processador inicia a operação de leitura e coloca o endereço desejado na Memória Principal
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.
Se ocorrer um cache miss o controlador da memória principal é acionado para localizar o dado na memória, transferindo-o para a cache. 
Um novo acesso é feito à memória cache.
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.
Todo o gerenciamento da memória cache é feito por hardware. Nem o Sistema Operacional nem as aplicações tem 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
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.
Todo o gerenciamento da memória cache é feito por hardware. Nem o Sistema Operacional nem as aplicações tem 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
MAPEAMENTO:
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.
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.
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.
Todo o gerenciamento da memória cache é feito por hardware. Nem o Sistema Operacional nem as aplicações tem 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
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 tem 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
Aula 10 – Dispositivos
O último componente que será estudado é o subsistema de entrada e saída. 
Este assunto é bastante abrangente, pois envolve todos os periféricos de um computador, cada um com características bem específicas. 
Iremos, então, conhecer os principais conceitos de funcionamento para que possam ser adequados aos periféricos atuais e futuros.
Conceitos
Denominamos 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 forma 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
Atenção: 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
Os 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: Implementa as operações (lê, escreve...).
PORTA DE E/S: Endereço no sistema de E/S.
DICA: Diagrama de Blocos de uma placa controlada
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.  
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 MEMÓRIA:
Na fase de projeto do computador é definida uma zona do endereçamento de memória que será utilizada paradispositivos 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.
Classificação
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.
QUANTO A INTERAÇÃO: 
Interação com usuário (ex: teclado, mouse)
Interação com outros componentes (ex: discos)
Interação com dispositivos remotos (ex: modem)
QUANTO A TRANSFERENCIA DE DADOS:
Orientado a bloco (ex. disco)
Orientado a caractere (ex. terminal)
QUANTO A 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
A transmissão de dados pode acontecer por dois tipos diferentes: serial e paralelo.
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.
Exemplo: mouse, teclado.
Um grupo de bits é transferido simultaneamente através de um conjunto de linhas de comunicação.
Exemplo: discos, impressoras.
Memória secundária
São memórias secundárias os meios de armazenamento não-volátil como, por exemplo, os discos magnéticos. A organização destes discos é particularmente importante pela função que exercem.
Os discos magnéticos são divididos em setores, trilhas e cilindros.
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.
Existem, ainda, estratégias para atendimento às requisições, fornecidas pelo sistema operacional, denominadas estratégias de escalonamento de disco.
As estratégias podem ser baseadas na ordem dos pedidos, na localização e na localização segmentada.
ESTRATÉGIAS BASEADAS NA 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
ESTRATÉGIAS BASEADAS NA 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 sentido único
BASEADAS NA 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

Outros materiais