Baixe o app para aproveitar ainda mais
Prévia do material em texto
Rio de Janeiro 09 de Agosto de 2010 Aula 1: Princípios de Funcionamento de um Computador Objetivo: 1. Definir as funcionalidades de um computador. 2. Compreender os conceitos de hardware e software. 3. Listar os componentes de um computador. 4. Conhecer os diferentes tipos de linguagens de programação. 5. Compreender os passos para execução de um algoritmo. 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. 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. Os componentes físicos de um computador são chamados de hardware e o programa responsável pela utilização do hardware é denominado software. Raphael da Silva Roma 1º Período – 1º Trimestre Sistemas de Informação Matrícula: 2010.01.50934-1 2010.2 4 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 • Realizar operações matemáticas 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. 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. Raphael da Silva Roma 1º Período – 1º Trimestre Sistemas de Informação Matrícula: 2010.01.50934-1 2010.2 5 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. 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. Raphael da Silva Roma 1º Período – 1º Trimestre Sistemas de Informação Matrícula: 2010.01.50934-1 2010.2 6 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. 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. 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 Raphael da Silva Roma 1º Período – 1º Trimestre Sistemas de Informação Matrícula: 2010.01.50934-1 2010.2 7 Funções avançadas: 1- Segurança de acesso 2- Auditoria 3- Gerência de usuários Visão simplificada de um sistema opearcional: Raphael da Silva Roma 1º Período – 1º Trimestre Sistemas de Informação Matrícula: 2010.01.50934-1 2010.2 8 Rio de Janeiro 11 de Agosto de 2010 Aula 2: Unidades de Armazenamento de Dados Objetivo: 1. Entender o que é um bit. 2. Entender a composição das unidades de informação (byte, word). 3. Conhecer as grandezas utilizadas na computação (K, M,G...). 4. Entender o que é um sistema de numeração. 5. Decompor um número na base decimal, binária e hexadecimal em potências da base. 6. Calcular a quantidades de elementos que podem ser representados em uma base a partir de da quantidade de dígitos. 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. As Unidades de informação são denomindadas: Bit, Byte, Word e Múltiplos. Algumas como você pode perceber, vêm do idioma inglês. BIT BYTE WORD MÚLTIPLOS Raphael da Silva Roma 1º Período – 1º Trimestre Sistemas de Informação Matrícula: 2010.01.50934-1 2010.2 9 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 algarismosirão de 0 até 9 (9 = 10-1). A representação dos números nas bases binária e hexadecimal obedece às mesmas regras da representação na base decimal. Para as demais bases, utiliza-se o mesmo princípio. Raphael da Silva Roma 1º Período – 1º Trimestre Sistemas de Informação Matrícula: 2010.01.50934-1 2010.2 10 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). Raphael da Silva Roma 1º Período – 1º Trimestre Sistemas de Informação Matrícula: 2010.01.50934-1 2010.2 11 Rio de Janeiro 23 de Agosto de 2010 Aula 3: Repesentação da Informação Objetivo: 1. Executar a conversão entre bases (decimal, binária e hexadecimal). 2. Entender como os números inteiros são representados. 3. Conhecer as tabelas de representação de caracteres e sua funcionalidade. 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 Exemplo: Representação do número 22 em binário. Exemplo: Representação do número 22 em hexadecimal. Raphael da Silva Roma 1º Período – 1º Trimestre Sistemas de Informação Matrícula: 2010.01.50934-1 2010.2 12 DA OUTRA BASE PARA BASE DECIMAL Multiplicar cada algarismo pela potência da base referente à posição do algarismo e somar todos os resultados. Exemplo: 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. Exemplo: DA BASE HEXADECIMAL PARA BASE BINÁRIA Analogamente ao item anterior, cada dígito em hexadecimal é convertido em 4 dígitos binários. Exemplo: Raphael da Silva Roma 1º Período – 1º Trimestre Sistemas de Informação Matrícula: 2010.01.50934-1 2010.2 13 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? 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 8 bits: Esta representação é particularmente trabalhosa quando são efetuadas operações de soma entre dois números, onde um deles é negativo. Complemento é a diferença entre cada algarismo do número e o maior algarismo possível na base. A utilização da representação em complemento simplifica a subtração entre dois números. O número que será subtraído (negativo) é substituído pelo respectivo complemento e, então, somado. Considerando a utilização de base binária, a operação é feita através de complemento a 1, que se resume na inversão de todos os dígitos. Exemplo considerando a representação binária com 5 bits: Raphael da Silva Roma 1º Período – 1º Trimestre Sistemas de Informação Matrícula: 2010.01.50934-1 2010.2 14 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. Raphael da Silva Roma 1º Período – 1º Trimestre Sistemas de Informação Matrícula: 2010.01.50934-1 2010.2 15 Rio de Janeiro 30 de Agosto de 2010 Aula 4: Conceitos de lógica digital Objetivo: 1. Entender o que são portas lógicas. 2. Conhecer os símbolos matemáticos e gráficos para as portas lógicas. 3. Saber interpretar e construir uma tabela verdade. 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. Raphael da Silva Roma 1º Período – 1º Trimestre Sistemas de Informação Matrícula: 2010.01.50934-1 2010.2 16 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: 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. Raphael da Silva Roma 1º Período – 1º Trimestre Sistemas de Informação Matrícula: 2010.01.50934-1 2010.2 17 Rio de Janeiro 04 de Setembro de 2010 Aula 5: Álgebra Booleana Objetivo: 1. Entender os princípios da Álgebra Booleana. 2. Conhecer e aplicar as regras básicas da Álgebra Booleana. Nesta aula você aprenderá as propriedades e as regras da Álgebra Booleana. 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çãofalsa. 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: Raphael da Silva Roma 1º Período – 1º Trimestre Sistemas de Informação Matrícula: 2010.01.50934-1 2010.2 18 Vamos ver agora um exemplo de simplificação de expressões utilizando as regras apresentadas. Simplificar a expressão: Raphael da Silva Roma 1º Período – 1º Trimestre Sistemas de Informação Matrícula: 2010.01.50934-1 2010.2 19 Rio de Janeiro 06 de Setembro de 2010 Aula 6: Modelo de Von Neumann Objetivo: 1. Conhecer o relacionamento entre os componentes de um computador segundo o modelo de Von Neumann. 2. Reconhecer as tarefas de cada componente 3. Entender a importância do uso do modelo e suas limitações 4. Identificar características deste modelo nos computadores atuais 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ó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: 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. Raphael da Silva Roma 1º Período – 1º Trimestre Sistemas de Informação Matrícula: 2010.01.50934-1 2010.2 20 MEMÓRIA Comunicação CPU/Memória A comunicação entre CPU e memória utiliza dois registradores específicos: • RDM - Armazena o endereço da palavra na memória Registrador de dados da memória •REM - Armazena o conteúdo da palavra lida ou que será escrita na memória Registrador de Endereços da Memória BARRAMENTO Conectam CPU/Memória/Controladores de dispositivos de E/S. São divididos em 3 partes: 1- Controle: define o tipo de operação 2- Dados: informa o que será lido/escrito 3- 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. Raphael da Silva Roma 1º Período – 1º Trimestre Sistemas de Informação Matrícula: 2010.01.50934-1 2010.2 21 Nesta aula, você aprendeu: • As características básicas de funcionamento de um computador • A importância do modelo de Von Neumann • Como o modelo de Von Neumann está presente nos computadores atuais. Raphael da Silva Roma 1º Período – 1º Trimestre Sistemas de Informação Matrícula: 2010.01.50934-1 2010.2 22 Rio de Janeiro 11 de Setembro de 2010 Aula 7: Instruções Objetivo: 1. Entender a composição de uma instrução 2. Entender os diferentes formatos de uma instrução 3. Entender as formas de endereçamento de uma instrução 4. Simular a execução de uma instrução 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. Cada processador apresenta, então, um conjunto de instruções onde 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, 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. Realizam operações aritméticas (ADD, SUB ...) e lógicas (AND, OR). Raphael da Silva Roma 1º Período – 1º Trimestre Sistemas de Informação Matrícula: 2010.01.50934-1 2010.2 23 Transferem dados entre registradores ou entre registrador e memória principal (MOV ). Executam o desvio do fluxo sequencial do código. 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. Raphael da Silva Roma 1º Período – 1º Trimestre Sistemas de Informação Matrícula: 2010.01.50934-1 2010.2 24 Modos de endereçamento As maneiras de endereçamento são: imediato, direto, indireto, por registrador, relativo a base e indexado. 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. 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 Indica um ponteiro para o operando. Exemplo: ADD (R1),R2 R1 contém o endereço do valor que será adicionado a R2 O endereço se refere a um registrador. 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 Raphael da Silva Roma 1º Período – 1º Trimestre Sistemas de Informação Matrícula: 2010.01.50934-1 2010.2 25 í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. Nesta aula você aprendeu: O conceito de instruções e como são executadas Que existem registradores específicos para auxiliar e controlar a execução de instruções de um programa Que instruções são características de famílias de processadores Raphael da Silva Roma 1º Período – 1º Trimestre Sistemas de Informação Matrícula: 2010.01.50934-1 2010.2 26 Rio de Janeiro 13 de Setembro de 2010 Aula 8: Processador Objetivo: 1. Entender a organização funcional de um processador. 2. Entenderum ciclo básico de instruções. 3. Conhecer as funções de um processador e as unidades responsáveis por cada função. 4. Entender o funcionamento de interrupções. 5. Entender o conceito de pipeline. 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. Raphael da Silva Roma 1º Período – 1º Trimestre Sistemas de Informação Matrícula: 2010.01.50934-1 2010.2 27 As funções realizadas pelo processador podem ser divididas em dois grupos: controle e processamento. Interrupções Sâo eventos provocados pelo hardware que provocam o desvio da sequência normal de execução de uma tarefa. Raphael da Silva Roma 1º Período – 1º Trimestre Sistemas de Informação Matrícula: 2010.01.50934-1 2010.2 28 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. Gerada por um controlador de E/S par 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 Raphael da Silva Roma 1º Período – 1º Trimestre Sistemas de Informação Matrícula: 2010.01.50934-1 2010.2 29 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. Nesta aula você aprendeu: A composição de um processador Como funciona uma interrupção O que é pipeline. Raphael da Silva Roma 1º Período – 1º Trimestre Sistemas de Informação Matrícula: 2010.01.50934-1 2010.2 30 Rio de Janeiro 20 de Setembro de 2010 Aula 9: Memória Objetivo: 1. Entender o posicionamento da memória principal em um sistema de computação 2. Entender o conceito de célula de memória 3. Conhecer a organização da memória principal 4.Conhecer a organização da memória principal Na aula de hoje, 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. 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: 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: Raphael da Silva Roma 1º Período – 1º Trimestre Sistemas de Informação Matrícula: 2010.01.50934-1 2010.2 31 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 as 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: Raphael da Silva Roma 1º Período – 1º Trimestre Sistemas de Informação Matrícula: 2010.01.50934-1 2010.2 32 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. Memória cache O estudo da memória cache pode ser subdividido em: motivação, acesso, organização, mapeamento e algoritmos de substituição. • Diferença de velocidade entre processador e memória principal. • Princípio da Localidade: temporal e espacial: Raphael da Silva Roma 1º Período – 1º Trimestre Sistemas de Informação Matrícula: 2010.01.50934-1 2010.2 33 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. • 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 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. • 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. 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 entando 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. Raphael da Silva Roma 1º Período – 1º Trimestre Sistemas de Informação Matrícula: 2010.01.50934-1 2010.2 34 • 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 Nesta aula você aprendeu: Como a memória está organizada; Como uma operação na memória é executada; O que é principio da localidade; Como atua a memória cache. Raphael da Silva Roma 1º Período – 1º Trimestre Sistemas de Informação Matrícula: 2010.01.50934-1 2010.2 35 Rio de Janeiro 27 de Setembro de 2010 Aula 10: Dispositivos Objetivo: 1. Entender o funcionamento do subsistema de E/S. 2. Entender o conceito de periféricos. 3. Entender o funcionamento da interação entre o periférico e a CPU. 4. Entender o funcionamento dos dispositivos de armazenamento em memória secundária. 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. Componentes Os componentes dos dispositivos são: periférico, interface, controlador, barramento, porta de E/S. Dispositivo conectado a um computador de forma a permitir a comunicação com o mundo externo. Raphael da Silva Roma 1º Período – 1º Trimestre Sistemas de Informação Matrícula: 2010.01.50934-1 2010.2 36 Componente que conecta o periférico aos barramentos do computador. Implementa as operações (lê, escreve...). Conjunto de circuitos impressos que transportam os sinais. Endereço no sistema de E/S. 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. Raphael da Silva Roma 1º Período – 1º Trimestre Sistemas de Informação Matrícula: 2010.01.50934-1 2010.2 37 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. • Interação com usuário (ex: teclado, mouse) • Interação com outros componentes (ex: discos) • Interação com dispositivos remotos (ex: modem) • Orientado a bloco (ex. disco) • Orientado a caractere (ex. terminal) • 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. Raphael da Silva Roma 1º Período – 1º Trimestre Sistemas de Informação Matrícula: 2010.01.50934-1 2010.2 38 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. Para calcular o desempenho de um disco, são computados: 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. Raphael da Silva Roma 1º Período – 1º Trimestre Sistemas de Informação Matrícula: 2010.01.50934-1 2010.2 39 Raphael da Silva Roma 1º Período – 1º Trimestre Sistemas de Informação Matrícula: 2010.01.50934-1 2010.2 40
Compartilhar