Prévia do material em texto
<p>Sistemas Operacionais</p><p>HW - Armazenamento</p><p>(versao 1.5)</p><p>Prof. Marcelo Akira Yamamoto</p><p>y.marceloakira@gmail.com</p><p>Conceitos Disco Rigido</p><p>Discos rígidos são dispositivos de armazenamento ou memória</p><p>secundária não volátil que permitem a instalação de programas</p><p>e o armazenamento de grandes quantidades de dados por tempo</p><p>indeterminado.</p><p>Conceitos E/S</p><p>Os objetivos do recurso de E/S providos pelo Kernel, são fáceis</p><p>de serem estabelecidos.</p><p>O objetivo principal é organizar este recurso como uma série de</p><p>camadas, com as mais baixas escondendo peculiaridades do</p><p>hardware e as mais altas criando uma abstração para as</p><p>aplicações dos usuário.</p><p>Tipos de Hardware</p><p>O hardware pode ser classificado em :</p><p>• dispositivos de entrada e saída (I/O): utilizados para enviar ou</p><p>receber informações do computador;</p><p>• dispositivos de processamento: utilizado para efetuar cálculos</p><p>lógicos e matemáticos;</p><p>• dispositivos de armazenamento: utilizados para gravar e</p><p>manter dados;</p><p>• memórias, existentes em dois tipos: RAM e ROM.</p><p>Dispositivos E/S</p><p>O hardware pode ser classificado em :</p><p>Os dispositivos de E/S são divididos, em duas categorias:</p><p>– dispositivos de bloco (estruturados) e</p><p>– dispositivos de caracter(não- estruturados).</p><p>Dispositivos de Bloco</p><p>Dispositivos de bloco (estruturado)</p><p>– Informações armazenadas em blocos de tamanho</p><p>fixo(normalmente, entre 128 bytes e 1024 bytes), cada</p><p>qual com seu endereço próprio.</p><p>– Possibilitam a leitura ou escrita de cada bloco</p><p>independentemente.</p><p>– Ex: discos (HD, CD-ROM, disquete, etc).</p><p>Dispositivos de Caractere</p><p>Dispositivos de caracter (não-estruturado)</p><p>– Liberam ou aceitam seqüências de caracteres sem</p><p>nenhuma estrutura de bloco.</p><p>– Não são endereçáveis e não aceitam operação de seek.</p><p>– Ex: terminais, impressoras, interfaces de rede,</p><p>mouses.</p><p>Gerenciamento de E/S</p><p>O Sistema operacional é o responsável pela gerência</p><p>dos dispositivos de E/S.</p><p>Do ponto de vista do S.O. quanto a gerência, existem</p><p>três tipos de dispositivos:</p><p>- polling</p><p>- interrupção</p><p>- DMA</p><p>Uso de</p><p>CPU</p><p>Polling</p><p>O Sistema operacional é o responsável por acionar o</p><p>processador para ler repetidamente os registos de</p><p>estado dos periféricos, para determinar quando é que</p><p>estes se encontram prontos para iniciar uma</p><p>transferência de dados. O que é Fácil de implementar</p><p>em um S.O, tem o custo de:</p><p>• Dedicar tempo do Processador responsável por</p><p>verificar alterações no estado do controlador e por</p><p>fazer as transferências de dados.</p><p>• O processador não pode realizar outras tarefas</p><p>enquanto a operação de I/O não terminar, mesmo que</p><p>seja muito mais rápido que o controlador do periférico.</p><p>Interrupção</p><p>Neste caso o dispositivo de I/O, “ avisa” ,</p><p>interrompendo a CPU, sinalizando a necessidade.</p><p>Então a CPU para sua execução de programa e trabalha</p><p>com a leitura do caracter de I/O</p><p>Controle este assincrono, porque a CPU não tem de estar</p><p>monitorando esta interface.</p><p>DMA</p><p>DMA - Muitos controladores, especialmente os que</p><p>operam em blocos, suportam DMA. Vejamos primeiro</p><p>como discos operam sem DMA. Primeiro, o controlador lê</p><p>serialmente o bloco (um ou mais setores) do dispositivo,</p><p>bit a bit, até que este seja transferido para o buffer</p><p>interno do controlador.</p><p>Depois, o controlador executa a operação de checksum</p><p>para atestar que o bloco está livre de erros.</p><p>DMA</p><p>Quando o sistema operacional reassume a CPU, ele pode</p><p>ler o bloco do buffer do controlador (byte a byte ou</p><p>palavra a palavra) numa operação cíclica, onde em cada</p><p>ciclo um byte ou palavra é transferido do controlador</p><p>para a memória.</p><p>Obviamente, o ciclo de transferência de bytes dos</p><p>controladores para a memória consome um tempo</p><p>apreciável da CPU. DMA foi criado para livrar a CPU</p><p>desta tarefa.</p><p>DMA</p><p>Quando utilizado, a CPU fornece duas informações ao</p><p>controlador (além do endereço do bloco a ser lido): o</p><p>endereço de memória para onde o bloco deve ser</p><p>copiado e o número de bytes a serem transferidos.</p><p>A técnica de interrupção é imprescindível para realizar</p><p>operações de entrada e saída em grandes sistemas</p><p>microprocessados. Caso ela não seja aplicada, o</p><p>microprocessador tem que verificar constantemente a</p><p>existência de um novo dado. Contudo, em sistemas de</p><p>baixa velocidade, isto pode ser aceitável.</p><p>DMA</p><p>A transferência de dados via DMA é essencialmente</p><p>mais rápida que as outras abordagens. Devido</p><p>principalmente a pouca (ou nenhuma) interferência da</p><p>CPU.</p><p>Em suma: Direct Memory Access (DMA) – controlador</p><p>dedicado a transferir dados entre a memória e outros</p><p>controladores e vice-versa. O mecanismo de</p><p>interrupções é utilizado apenas para notificar o CPU de</p><p>que a transferência terminou ou da ocorrência de erros.</p><p>DMA</p><p>DMA</p><p>Conceitos Disco Rigido</p><p>Discos rígidos são dispositivos de armazenamento ou memória</p><p>secundária não volátil que permitem a instalação de programas</p><p>e o armazenamento de grandes quantidades de dados por tempo</p><p>indeterminado.</p><p>Estrutura do Disco</p><p>Storage System Environment - 19</p><p>•Componentes do Disco Rigido (Cont.)</p><p>Interface</p><p>Controller</p><p>Power</p><p>Connector</p><p>HDA</p><p>Storage System Environment - 20</p><p>•Estrutura Física de um Disco Rígido</p><p>Sector</p><p>Track</p><p>Platter</p><p>Storage System Environment - 21</p><p>•Calculo de tempo Seek Time</p><p>E importante ser</p><p>conhecimento dos tempos</p><p>relacionados ao</p><p>funcionamento do Disco</p><p>Rígido, ou seja, os tempos</p><p>relacionados ao tempo</p><p>necessário para posicionar</p><p>a leitura / escrita cabeça</p><p>que incluem:</p><p>- Tem completo para ler</p><p>toda uma trilha</p><p>- Tempo médio de leitura</p><p>(½ do disco)</p><p>- Tempo track a track do</p><p>disco</p><p>Storage System Environment - 22</p><p>•Tempo de acesso</p><p>●</p><p>●Tempo de acesso médio</p><p>● Apro. 5.5 ms for 5400-rpm drive</p><p>● Aprox. 4 ms for 7200-rpm drive</p><p>● Aprox. 2.0 ms for 15000-rpm drive</p><p>Formula = 0.5/(RPM/60)</p><p>Capacidade</p><p>A definição da capacidade de um disco rígido é calculada a</p><p>partir do CHS vezes o tamanho do cluster que</p><p>tradicionalmente é de 512 bytes (existe exceção a regra).</p><p>Cylinder = tamanho variável</p><p>Heardes = fixado em 16</p><p>Sectors = fixado em 63</p><p>Formula para calculo da capacidade do disco:</p><p>Capacidade = C*H*S*512</p><p>Formula para calculo de tempo médio de acesso:</p><p>0.5/(RPM/60)</p><p>Capacidade</p><p>Considere um disco rígido hipotético de 7200 RPM com</p><p>20480 cilindros. Sua capacidade e tempo médio de acesso</p><p>são?</p><p>Capacidade;</p><p>20480 * 16 * 63 * 512 = 10,569,646,080</p><p>Em GB aproximadamente: 10.5 GB</p><p>Tempo médio de acesso:</p><p>=0.5/(RPM/60)</p><p>=0.5/(7200/60)</p><p>=0,00416</p><p>Aproximamente = 4 m/s</p><p>Capacidade</p><p>Considere um disco rígido hipotético de 15000 RPM com</p><p>30720 cilindros. Sua capacidade e tempo médio de acesso</p><p>são?</p><p>Capacidade;</p><p>30720 * 16 * 63 * 512 = 15,854,469,120</p><p>Em GB aproximadamente: 16 GB</p><p>Tempo médio de acesso:</p><p>=0.5/(RPM/60)</p><p>=0.5/(15000/60)</p><p>=0,002</p><p>Aproximamente = 2 m/s</p><p>Algoritmo FCFS</p><p>Caso uma mídia eletromecanica, trabalhe aceitando uma</p><p>requisição por vez e a executa nesta ordem, isto é, First-Come,</p><p>First- Served (FCFS), pouco pode ser feito para otimizar o</p><p>tempo de seek (busca no disco).</p><p>Entretanto estratégia é possível: é provável que enquanto o</p><p>braço está executando um seek na metade de uma requisição,</p><p>uma outra requisição de disco pode ter sido gerada por outro</p><p>processo.</p><p>Algoritmo SSTF</p><p>Um segundo algoritmo desenvolvido foi SSTF que prioriza</p><p>leitura do cilindro mais perto, ou seja, de menor custo.</p><p>Todavia ele tem um problema tem um problema. Suponha mais</p><p>requisições chegando enquanto as requisições anteriores está</p><p>sendo processada. Por exemplo, se, após chegar ao cilindro 16,</p><p>uma nova requisição para o cilindro 8 está presente.</p><p>Algoritmo SSTF</p><p>Esta requisição terá prioridade sobre o cilindro 1. Se a</p><p>requisição for para o cilindro 13, o braço irá para o 13, ao invés</p><p>de ir para o cilindro 1.</p><p>Com disco muito carregados, o braço tende a permanecer no</p><p>meio do disco a maior parte do tempo, prejudicando assim as</p><p>requisições das extremidades. Requisições distantes do meio</p><p>são em média mais demoradas pois o cabecote poderá ficar ma</p><p>concentrado no centro do disco.</p><p>Algoritmo SCAN</p><p>Tambem chamado de Algoritmo do Elevador, concite em</p><p>considerar</p><p>o bit da direção corrente, UP ou DOWN, ou seja,</p><p>sempre sera priorizado o cilindro de menor custo na direção que</p><p>o cabeçote esta indo.</p><p>A cada nova requisição atentida, e testa o bit. Se é UP, o braço é</p><p>movido para a próxima requisição pendente de posições mais</p><p>altas, se houver. Se não há requisições pendentes para posições</p><p>mais altas, o bit de direção é revertido.</p><p>Algoritmo SCAN</p><p>Quando o bit é mudado para DOWN, o movimento será para a</p><p>próxima requisição de posição mais baixa, se houver.</p>