Buscar

Capitulo 11 Silberschatz Gerencia de Armazenamento



Continue navegando


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