Baixe o app para aproveitar ainda mais
Prévia do material em texto
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. O ato de transformar dado em informação é denominado processamento. Fundamentos do funcionamento de um computador 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. 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 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. Os seres humanos entendem símbolos enquanto os computadores entendem sinais elétrico 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. 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. 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 Linguagem 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. 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). Exemplos: Linguagens de programação: - Java - C - C++ - Cobol - Delphi 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. 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 Visão simplificada de um sistema operacional: Unidades de armazenamento de Dados As Unidades de informação são denomidadas: Bit, Byte, Word e Múltiplos. Algumas como você pode perceber, vêm do idioma inglês. BIT Byte Word Múltiplos 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). Decimal (Algarismo na base 10) Binário (Algarismos na base 2) Hexadecimal (Algarismos na base 16) 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). Representação da Informação Conversão entre os sistemas de numeração Em nosso cotidiano, utilizamos a base decimalpara 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. Decimal -> Binário e Hexadecimal Binário e Hexadecimal -> Decimal Binária -> Hexadecimal Hexadecimal -> Binária 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 um 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: 12 = 01100 -12 = 11100 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 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: -12 = 10011 12 = 10100 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. decimal - 10 sinal e magnitude 11010 complemento a 1 10101 complemento a 2 10110 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. Conceitos de Lógica Digital 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: +3V - Representam o bit 1. +0,5V - Representam o bit o. OPERAÇÕES LÓGICAS As 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 o inverso da saída AND. NOR - Produz resultado verdade se e somente se todas as entradas forem falsas. XOR - Produz resultado verdade se os valores de sua entrada forem diferentes. 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. 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: AND OR NOT NAND NOR XOR AND OR NOT NAND NOR XOR 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. Considere a expressão F = X + Y * Z onde 1 representa um resultado verdadeiro e 0 um resultado falso Á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çã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: 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 Regra 9 = X = X Regra 10 X + Y = Y + X 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 daUniversidade 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: 1 - Dados e instruções fossem armazenados em uma única memória que seria utilizada tanto para leitura quanto para escrita. 2 - Os dados armazenados na memória poderiam ser acessados através de endereços. 3 - 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 - Armazena o conteúdo da palavra lida ou que será escrita na memória •REM - Armazena o endereço da palavra na 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. Limitações do modelo ❖ Grande quantidade de acessos a memória. ❖ Velocidade dos novos dispositivos. ❖ Execução em paralelo. Instruções 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. ➔ 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. 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. ➔ 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. Exemplo: ADD R1,R2,R3 : operação de soma onde a soma de R1 e R2 é armazenadas em R3. ADD R1,R2: o valor de R2 é adicionado ao valor de R1 e armazenado em R2. 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. As maneiras de endereçamento são: imediato, direto, indireto, por registrador, relativo a base e indexado. 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. Processador 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. 1 - Buscar uma instrução na memória. 2 - Interpretar que operação está sendo requerida. 3 - Buscar os operandos necessários. 4 - Executar a 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. 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 : ● Registrador de instruções : Responsável pela movimentação da instruções ● Decodificador de instruções : armazena a instituição que está sendo armazenada ● Contador de instruções : identifica qual instrução será exetucada ● Registrador de endereço de memória : registrador que armazena o endereço da próxima instituição que será armazenada ● Registrador de endereço de memória : REM ou MAR Funções de processamento 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 ● 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. 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 atual. ● E/S : 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 ● Falha no 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 endereço da memória. Características: • Busca antecipada de instruções • Memória de laço de repetição • Previsão de desvio Memória 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 : Processadores 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. Processadores de 32 bits : Os 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. 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. ➔ 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ções que está sendo transferida de/para a memória. ➔ Barramento de endereço : Interliga a REM à memória principal. É unidirecional. ➔ Registrador de endereço de memória : 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. ➔ Controlador de memória : 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. Memória principal Operações As operações são divididas em 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çãode 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 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 Transparê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 = 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 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. 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 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 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. 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. 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. 1 - 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. 2 - Cada dispositivo apresenta características bem particulares, tornando o estudo de cada tipo de dispositivo único. Características dos dispositivos - Taxa de transmissão - Complexidade de Controle - Representação de dados - Aplicação - Unidade de transferência - 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 : Conjunto de circuitos impressos que transportam os sinais. ➔ Porta E/S : 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çose podem ser implementados de duas formas: em espaço de memória e em espaço de E/S. 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 Transferência 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. 1 - Estratégias baseadas na ordem dos pedidos : ➔ FiFo mais simples Atendimento na ordem dos pedidos ➔ Prioridade Fora do controle do gerenciador ➔ LiFo Diminuiu o movimento da cabeça de leitura em arquivos seqüenciais 2 - 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 3 - Baseado 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
Compartilhar