Prévia do material em texto
07/11/2011 1 Operating System Concepts with Java – 7th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Capítulo 12: Sistemas de armazenamento em massa 12.2 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006 Capítulo 12: Sistemas de armazenamento em massa � Visão geral da estrutura de armazenamento em massa � Estrutura do disco � Anexo do disco � Escalonamento de disco � Gerenciamento de disco � Gerenciamento do espaço � Estrutura RAID � Anexo de disco � Implementação de armazenamento estável � Dispositivos de armazenamento terciário � Problemas do sistema operacional � Questões de desempenho 12.3 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006 Objetivos � Descrever a estrutura física dos dispositivos de armazenamento e os efeitos resultantes sobre os usos dos dispositivos � Explicar as características de desempenho dos dispositivos de armazenamento em massa � Discutir os serviços do sistema operacional fornecidos para o armazenamento em massa, incluindo RAID e HSM 12.4 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006 Visão geral da estrutura de armazenamento em massa � Os discos magnéticos fornecem a maior parte do armazenamento secundário dos computadores modernos � As unidades giram a 60 a 200 vezes por segundo � A taxa de transferência é velocidade em que os dados fluem entre a unidade e o computador � Tempo de posicionamento (tempo de acesso aleatório) é o tempo para mover o braço do disco para o cilindro desejado (tempo de busca) e o tempo para o setor desejado aparecer sob a cabeça do disco (latência de rotação) � Colisão da cabeça resulta da cabeça do disco fazendo contato com a superfície do disco � Isso é ruim � Os discos podem ser removíveis � Unidade conectada ao computador via barramento de E/S � Os barramentos variam, incluindo EIDE, ATA, SATA, USB, Fibre Channel, SCSI � Controlador de host no computador usa barramento para falar com controlador de disco embutido na unidade ou array de armazenamento 07/11/2011 2 12.5 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006 Mecanismo de disco com cabeça móvel 12.6 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006 Visão geral da estrutura de armazenamento em massa (cont.) � Fita magnética � Foi antigo meio de armazenamento secundário � Relativamente permanente e mantém grandes quantidades de dados � Tempo de acesso lento � Acesso aleatório ~1000 vezes mais lento que o disco � Usada principalmente para backup, armazenamento de dados usados com pouca freqüência, meio de transferência entre sistemas � mantida em um spool e avança e retrocede sob uma cabeça de leitura/escrita � Quando dados estão sob a cabeça, possui taxas de transferência comparáveis ao disco � 20-200GB de armazenamento típico � Tecnologias comuns: 4mm, 8mm, 19mm, LTO-2 e SDLT 12.7 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006 Estrutura de disco � Unidades de disco são endereçadas como grandes arrays unidimensionais de blocos lógicos, onde o bloco lógico é a menor unidade de transferência. � O array unidimensional de blocos lógicos é mapeado nos setores do disco seqüencialmente. � Setor 0 é o primeiro setor da primeira trilha no cilindro mais externo. � Mapeamento prossegue na ordem por essa trilha, depois o restante das trilhas nesse cilindro, e depois pelo restante dos cilindros de fora para dentro. 12.8 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006 Conexão de disco � Armazenamento conectado ao host, acessado por portas de E/S falando com barramentos de E/S � O próprio SCSI é um barramento, de até 16 dispositivos em um cabo, SCSI initiator solicita operação e SCSI targets realizam tarefas � Cada target pode ter até 8 unidades lógicas (discos conectados ao controlador de disco) � FC é uma arquitetura serial de alta velocidade � Malha comutada com espaço de endereços de 24 bits – a base das Storage Area Networks (SANs), em que os principais hosts se conectam a muitas unidades de armazenamento � Pode ser loop arbitrado (FC-AL) de 126 dispositivos 07/11/2011 3 12.9 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006 Armazenamento conectado à rede � O armazenamento conectado à rede (NAS) é o armazenamento disponível por uma rede, ao invés de uma conexão local (como um barramento) � NFS e CIFS são protocolos comuns � Implementado via chamadas de procedimento remoto (RPCs) entre o host e o armazenamento � Novo protocolo iSCSI usa rede IP para carregar o protocolo SCSI 12.10 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006 Storage Area Network � Comum em ambientes de grande armazenamento (e tornando-se mais comum) � Múltiplos hosts conectados a múltiplos arrays de armazenamento - flexível 12.11 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006 Escalonamento de disco � O sistema operacional é responsável por usar o hardware de forma eficiente – para as unidades de disco, isso significa ter um tempo de acesso rápido e largura de banda de disco. � Tempo de acesso tem dois componentes principais � Tempo de busca é o tempo para o disco mover as cabeças até o cilindro contendo o setor desejado. � Latência de rotação é o tempo adicional aguardando o disco girar o setor desejado até a cabeça do disco. � Minimiza tempo de busca � Tempo de busca ≈ distância de busca � Largura de banda de disco é o número total de bytes transferidos, dividido pelo tempo total entre a primeira solicitação de serviço e o término da última transferência. 12.12 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006 Escalonamento de disco (cont.) � Existem vários algoritmos para escalonar o atendimento das solicitações de E/S de disco. � Ilustramos com uma fila de solicitação (0-199). 98, 183, 37, 122, 14, 124, 65, 67 Ponteiro da cabeça 53 07/11/2011 4 12.13 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006 FCFS Ilustração mostra movimento total da cabeça de 640 cilindros. 12.14 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006 SSTF � Seleciona a solicitação com o tempo de busca mínimo a partir da posição atual da cabeça. � Escalonamento SSTF é uma forma de escalonamento SJF; pode causar starvation de algumas solicitações. � Ilustração mostra movimento total da cabeça de 236 cilindros. 12.15 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006 SSTF (cont.) 12.16 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006 SCAN � O braço do disco começa em uma extremidade do disco, e se move para a outra extremidade, atendendo solicitações até que chegue à outra extremidade, onde o movimento da cabeça é revertido e o atendimento continua. � Às vezes chamado de algoritmo do elevador. � Ilustração mostra movimento total da cabeça de 208 cilindros. 07/11/2011 5 12.17 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006 SCAN (cont.) 12.18 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006 C-SCAN � Fornece um tempo de espera mais uniforme que SCAN.� A cabeça se move de uma extremidade do disco para a outra, atendendo solicitações enquanto prossegue. Quando atinge o outro extremo, imediatamente retorna ao início do disco, sem atender quaisquer solicitações no retorno. � Trata os cilindros como uma lista circular que contorna o último cilindro e volta ao primeiro. 12.19 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006 C-SCAN (cont.) 12.20 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006 C-LOOK � Versão de C-SCAN � O braço só vai até a distância da última solicitação em cada direção, depois reverte a direção imediatamente, sem primeiro ir até o final do disco. 07/11/2011 6 12.21 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006 C-LOOK (cont.) 12.22 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006 Selecionando um algoritmo de escalonamento de disco � SSTF é comum e tem um apelo natural � SCAN e C-SCAN funcionam melhor para sistemas que têm cargas pesadas sobre o disco � O desempenho depende do número e tipo de solicitações. � Requisições para serviço de disco podem ser influenciadas pelo método de alocação de arquivo. � O algoritmo de escalonamento de disco deve ser escrito como um módulo separado do sistema operacional, permitindo que seja substituído por um algoritmo diferente, se necessário. � SSTF ou LOOK é uma escolha razoável para o algoritmo padrão. 12.23 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006 Gerenciamento de disco � Formatação de baixo nível, ou formatação física – Dividindo um disco em setores que o controlador pode ler e gravar. � Para usar um disco para manter arquivos, o sistema operacional ainda precisa registrar suas próprias estruturas de dados no disco. � Partição do disco em um ou mais grupos de cilindros. � Formatação lógica ou “criação do sistema de arquivos”. � Bloco de boot inicializa sistema. � O bootstrap é armazenado na ROM. � Programa carregador de bootstrap. � Métodos como sector sparing usados para tratar de blocos defeituosos. 12.24 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006 Boot por um disco no Windows 2000 07/11/2011 7 12.25 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006 Gerenciamento do swap space � Swap space — Memória virtual usa espaço do disco como extensão da memória principal. � Swap space pode estar junto do sistema de arquivos normal ou, como geralmente acontece, pode estar em uma partição de disco separada. � Gerenciamento do swap-space � 4.3BSD aloca swap space quando processo inicia; mantém segmento de texto (o programa) e segmento de dados. � Kernel usa mapas de swap para acompanhar uso do swap space. � Solaris 2 aloca swap space apenas quando uma página é forçada para fora da memória física, não quando a página da memória virtual é criada inicialmente. 12.26 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006 Estruturas de dados para o swapping nos sistemas Linux 12.27 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006 Estrutura RAID � RAID – unidades de disco múltiplas gera confiabilidade via redundância. � RAID é organizado em seis diferentes níveis. 12.28 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006 RAID (cont.) � Várias melhorias nas técnicas de uso de disco envolvem o uso de múltiplos discos funcionando cooperativamente. � Espalhamento de disco usa um grupo de discos como uma unidade de armazenamento. � Esquemas RAID melhoram o desempenho e melhoram a confiabilidade do sistema de armazenamento armazenando dados redundantes. � Espelhamento ou shadowing mantém duplicatas de cada disco. � Paridade intercalada por blocos usa muito menos redundância. 07/11/2011 8 12.29 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006 Níveis de RAID 12.30 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006 RAID (0 + 1) e (1 + 0) 12.31 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006 Implementação de armazenamento estável � Esquema de log por escrita antecipada requer armazenamento estável. � Para implementar armazenamento estável: � Replicar informações em mais de um meio de armazenamento não volátil com modos de falha independentes. � Atualizar informações de maneira controlada para garantir que possamos recuperar os dados estáveis após qualquer falha durante a transferência ou recuperação de dados. 12.32 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006 Dispositivos de armazenamento terciário � Baixo custo é a característica de definição do armazenamento terciário. � Geralmente, o armazenamento terciário é montado usando mídia removível � Exemplos comuns de mídia removível são disquetes e CD-ROMs; outros tipos estão disponíveis. 07/11/2011 9 12.33 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006 Discos removíveis � Disquete — disco flexível fino coberto com material magnético, em uma capa plástica protetora. � A maioria dos disquetes mantém cerca de 1 MB; tecnologia semelhante é usada para discos removíveis que mantêm mais de 1 GB. � Discos magnéticos removíveis podem ser quase tão rápidos quanto discos rígidos, mas têm maior risco de danos por exposição. 12.34 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006 Discos removíveis (cont.) � Um disco óptico-magnético registra dados em uma placa rígida coberta com material magnético. � Calor de laser é usado para amplificar um grande campo magnético fraco para registrar um bit. � A luz do laser também é usada para ler dados (efeito de Kerr). � A cabeça óptico-magnético voa muito mais distante da superfície do disco do que uma cabeça de disco magnético, e o material magnético é coberto com uma camada protetora de plástico ou vidro; resistente a colisões de cabeça. � Discos ópticos não usam magnetismo; eles empregam materiais especiais que são alterados pela luz do laser. 12.35 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006 Discos WORM � Os dados nos discos de leitura-escrita podem ser modificados indefinidamente. � Discos WORM (“Write Once, Read Many Times”) só podem ser gravados uma vez. � Fina camada de alumínio entre duas placas de vidro ou plástico. � Para gravar um bit, a unidade usa uma luz de laser para queimar um pequeno furo pelo alumínio; as informações podem ser destruídas, mas não alteradas. � Muito duráveis e confiáveis. � Discos somente de leitura, como CD-ROM e DVD, vêm de fábrica com os dados pré-gravados. 12.36 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006 Fitas � Comparado a um disco, uma fita é menos dispendiosa e mantém mais dados, mas o acesso aleatório é muito mais lento. � A fita é um meio econômico para finalidades que não exijam acesso aleatório rápido, por exemplo, cópias de backup de dados de disco, mantendo imensos volumes de dados. � Grandes instalações de fita normalmente usam trocadores de fita robóticos, que movem as fitas entre as unidades e locais de armazenamento em uma biblioteca defitas. � stacker – biblioteca que mantém algumas fitas � silo – biblioteca que mantém milhares de fitas � Um arquivo residente no disco pode ser arquivado em fita pelo baixo custo de armazenamento; o computador pode colocá-lo de volta no armazenamento de disco para uso ativo. 07/11/2011 10 12.37 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006 Aspectos do sistema operacional � As principais tarefas do SO são gerenciar dispositivos físicos e apresentar uma abstração de máquina virtual às aplicações � Para discos rígidos, o SO oferece duas abstrações: � Dispositivo bruto – um array de blocos de dados. � Sistema de arquivos – o SO enfileira e escalona as requisições intercaladas de várias aplicações. 12.38 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006 Interface de aplicação � A maioria dos SOs trata de discos removíveis quase exatamente como os discos fixos – um cartucho novo é formatado e um sistema de arquivos vazio é gerado no disco. � As fitas são apresentadas como um meio de armazenamento bruto, ou seja, uma aplicação não abre um arquivo na fita, ela abre a unidade de fita inteira como um dispositivo bruto. � Normalmente, a unidade de fita é reservada para uso exclusivo dessa aplicação. � Como o SO não oferece serviços do sistema de arquivos, a aplicação precisa decidir como usar o array de blocos. � Como cada aplicação cria suas próprias regras de como organizar uma fita, uma fita cheia de dados geralmente só pode ser usada pelo programa que a criou. 12.39 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006 Unidades de fita � As operações básicas para uma unidade de fita diferem daquelas de uma unidade de disco. � locate posiciona a fita em um bloco lógico específico, e não uma trilha inteira (corresponde a seek). � A operação read position retorna o número do bloco lógico onde está a cabeça da fita. � A operação space habilita o movimento relativo. � Unidades de fita são dispositivos “apenas de acréscimo”; a atualização de um bloco no meio da fita também efetivamente apaga tudo além desse bloco. � Uma marca de EOT é colocada após um bloco ser gravado. 12.40 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006 Nomes de arquivos � A questão de nomes de arquivos em mídia removível é especialmente difícil quando queremos gravar dados em um cartucho removível em um computador, e depois usar o cartucho em outro computador. � Os SOs contemporâneos geralmente deixam o problema de espaço de nomes sem solução para mídia removível, e dependem de aplicações e usuários para descobrir como acessar e interpretar os dados. � Alguns tipos de mídia removível (por exemplo, CDs) são tão bem padronizados que todos os computadores os utilizam da mesma maneira. 07/11/2011 11 12.41 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006 Hierarchical Storage Management (HSM) � Um sistema de armazenamento hierárquico estende a hierarquia de armazenamento além da memória principal e armazenamento secundário, para incorporar o armazenamento terciário – normalmente implementado como um jukebox de fitas ou discos removíveis. � Normalmente, incorpora armazenamento terciário estendendo o sistema de arquivos. � Arquivos pequenos e usados freqüentemente permanecem no disco. � Arquivos inativos, grandes e antigos, são arquivados no jukebox. � HSM normalmente é encontrado em centros de supercomputação e outras grandes instalações, que possuem enormes volumes de dados. 12.42 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006 Velocidade � Dois aspectos da velocidade no armazenamento terciário são largura de banda e latência. � Largura de banda é medida em bytes por segundo. � Largura de banda sustentada - taxa de dados média durante uma transferência grande; # de bytes/tempo de transferência. É a taxa de dados quando o fluxo de dados está fluindo � Largura de banda efetiva – média sobre o tempo de E/S inteiro, incluindo seek e locate, e troca de cartucho. É a taxa de dados geral da unidade. 12.43 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006 Velocidade (cont.) � Latência de acesso – quantidade de tempo necessária para localizar dados. � Tempo de acesso para um disco mover o braço para o cilindro selecionado e esperar pela latência de rotação; < 35 milissegundos. � O acesso na fita exige desenrolar o carretel até o bloco selecionado alcançar a cabeça da fita; pode levar dezenas ou centenas de segundos. � Geralmente, dizemos que o acesso aleatório dentro de um cartucho de fita é mais de mil vezes mais lento do que o acesso aleatório no disco. � O baixo custo do armazenamento terciário deve-se ao compartilhamento de muitos cartuchos baratos de algumas unidades caras. � Uma biblioteca removível é melhor dedicada ao armazenamento de dados usados com pouca freqüência, pois a biblioteca só pode satisfazer um número relativamente pequeno de requisições de E/S por hora. 12.44 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006 Confiabilidade � Uma unidade de disco fixa provavelmente é mais confiável do que uma unidade de disco removível ou de fita. � Um cartucho óptico provavelmente é mais confiável do que um disco magnético ou fita. � Uma colisão de cabeça em um disco rígido fixo geralmente destrói os dados, enquanto a falha de uma unidade de fita ou unidade de disco óptico normalmente não prejudica o cartucho de dados. 07/11/2011 12 12.45 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006 Custo � Memória principal é muito mais cara do que o armazenamento de disco. � O custo por megabyte de armazenamento em disco rígido é competitivo com a fita magnética se apenas uma fita for usada por unidade. � As unidades de fita mais baratas e as unidades de disco mais baratas tiveram a mesma capacidade de armazenamento no decorrer dos anos. � O armazenamento terciário oferece economias de custo somente quando o número de cartuchos é consideravelmente maior que o número de unidades. 12.46 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006 Preço por megabyte de DRAM, de 1981 a 2004 12.47 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006 Preço por megabyte do disco rígido magnético, de 1981 a 2004 12.48 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006 Preço por megabyte de uma unidade de fita, de 1984 a 2000 07/11/2011 13 Operating System Concepts with Java – 7th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Final do Capítulo 12