Escolar Documentos
Profissional Documentos
Cultura Documentos
16 cabeas de gravao, 1016 cilindros, 51 setores por cilindro e 512 bytes por setor tem uma
capacidade total de 16 x 1016 x 51 x 512 = 424476672 bytes (aproximadamente 420 MBytes).
Para enderear um determinado setor de um HD, podem ser usados dois esquemas distintos.
O esquema mais tradicional o chamado CHS (Cylinder, Head, Sector). Neste esquema, o
processador especifica explicitamente um cilindro, um cabeote e um setor. H ainda o modo
LBA (Linear Block Addressing), no qual o HD visto como uma grande sequncia linear de
setores, numerados de 0 at o nmero mximo de setores menos 1. Obviamente, para realizar
a converso entre os dois modos de endereamento, necessrio conhecer o nmero de
setores por trilha e o nmero mximo de cabeotes por cilindro.
2. Tempo de Acesso de um Disco Rgido
Para acessar um byte ou um conjunto de bytes em um disco rgido, uma srie de operaes
so necessrias. Basicamente, preciso posicionar o cabeote sobre o setor da trilha desejada
e, em seguida, realizar a leitura. Esta operao dividida em duas etapas:
Seek time: tempo necessrio para posicionar o cabeote at o cilindro correspondente
trilha que se deseja acessar.
Latency time: tempo necessrio para a rotao do prato at que o setor desejado se
encontre sob o cabeote.
Transfer time: tempo necessrio para a rotao do prato at que todos os bytes do setor
tenham passado sob o cabeote.
O tempo total de acesso a um dado no HD igual a soma de todos estes tempos. O tempo de
seek depende da velocidade de movimentao do cabeote e do raio dos pratos do HD. Os
tempos de latncia e de transferncia dependem da velocidade de rotao do disco (em geral,
entre 3600 e 15000 RPM). Os trs tempos dependem tambm da posio atual do disco e do
cabeote de leitura. Em geral, a componente que domina o tempo de acesso o tempo de
seek, sendo, na mdia, da ordem de alguns milissegundos.
Uma tcnica interessante para melhorar o tempo de acesso aos HDs o chamado
Entrelaamento (ou interleaving). A ideia que processos geralmente requisitam a leitura ou
escrita de vrios setores consecutivos. Suponha por exemplo que um processo deseje ler
os setores 14 e 15 de uma dada trilha. Inicialmente, o HD vai realizar o acesso ao setor 14,
tendo que esperar os tempos de seek, latncia e transferncia. Quando a leitura tiver sido
concluda, o bloco ser enviado para o processador (ou para o DMA), que demorar um tempo
para realizar a prxima parte do pedido (leitura do setor 15). Se os setores so organizados
fisicamente no disco de maneira sequencial, imediatamente aps o final do setor 14, comear
o setor 15. Por causa do atraso entre os dois pedidos, provvel que no seja possvel
comear a leitura do setor 15 na mesma revoluo do prato. Neste caso, ser necessrio que o
HD aguarde uma nova rotao completa at que o setor 15 volte a estar sob o cabeote.
Para evitar isso, o mtodo de entrelaamento prope que entre dois setores com endereos
consecutivos (por exemplo, o 14 e o 15) sejam colocados n outros setores. O valor de n
chamado de fator de entrelaamento. Quando maior o fator de entrelaamento, maior o
atraso permitido entre duas requisies de setores consecutivos. Por outro lado, se o fator de
entrelaamento for muito alto, o benefcio acaba sendo perdido, pois a nova requisio chegar
ao HD antes que o setor fique sob o cabeote. A escolha do fator de entrelaamento, portanto,
precisa ser definido de acordo com a velocidade do processador, do barramento de dados, da
controladora de disco e da rotao dos pratos do disco.
3. Algoritmos de Escalonamento
Assim como um processador, um HD um recurso compartilhado entre vrios processos.
Mltiplos processos podem realizar requisies simultneas de leituras ou escritas em disco.
Logo, preciso que o SO determine em que ordem estas requisies sero atendidas.
Como discutido na seo anterior, os tempos de acesso a dados em um HD so relativamente
altos. A ordem do tempo de acesso de um HD comum chega a dezenas de milissegundos.
Apenas como comparao, um processador de 2GHz executa 20 milhes de ciclos em 10 ms.
Alm disso, como tambm discutido, o tempo de acesso depende da posio dos pratos e dos
cabeotes de leitura do HD. Logo, polticas diferentes de escalonamento podem resultar em
grandes diferenas no desempenho deste dispositivo.
O objetivo do escalonamento de requisies de acesso a disco sempre o de garantir a maior
vazo de dados possvel. Uma vez que o cabeote tenha sido posicionado no local correto,
a velocidade de escrita ou leitura de um HD constante. Logo, deseja-se reduzir ao mximo
o tempo de acesso. Como citado anteriormente, a componente dominante neste tempo o
tempo de seek, que corresponde ao tempo de movimentao do cabeote. Logo, deseja-se um
algoritmo de escalonamento que minimize a quantidade de movimentos do cabeote.
O algoritmo mais simples o FIFO (tambm chamado de FCFS, First Come First Served).
Neste caso, o escalonador apenas atende os pedidos na ordem em que eles chegam, sem
considerar qualquer outro critrio de desempenho.
Um algoritmo melhor o SSTF (Shortest Seek Time First), que avalia, dentre todas as
requisies disponveis, qual aquela que requer a menor movimentao do cabeote.
Dependendo da ordem de chegada das requisies, este algoritmo pode resultar em um
desempenho muito bom. Por outro lado, existem casos em que as ordens de chegada no
favorecem o desempenho do SSTF, fazendo com que seu desempenho seja ruim. Alm
disso, como este algoritmo estabelece prioridades de atendimento, ele pode levar algumas
requisies a starvation.
O SCAN um algoritmo de escalonamento que opera de forma bastante simples. Ele
estabelece um sentido de varredura do cabeote. Por exemplo, em um dado momento o
SCAN pode determinar que o cabeote se movimentar da parte interna dos pratos para a
parte externa. Neste caso, as requisies sero atendidas de acordo com qual cilindro desejase acessar: os mais internos sero atendidos primeiro. Quando o cabeote chega parte
mais externa dos pratos, o sentido de varredura invertido. Desta forma, a prioridade dos
atendimentos tambm. O SCAN continua neste ciclo at que todas as requisies sejam
atendidas.
Uma maneira de visualizar o funcionamento do SCAN pensando no elevador de um prdio
comercial. Inicialmente, o elevador encontra-se no andar trreo. Quando h uma passageiros,
o elevador comea a subir, parando sequencialmente em cada um dos andares desejados,
deixando passageiros. Quando o elevador chega ao ltimo andar, ele comea a descer,
parando naqueles andares nos quais h novos passageiros a serem atendidos. O elevador,
portanto, atende aos passageiros sempre em um dos dois modos: sempre subindo ou sempre
descendo. Por esta semelhana com o funcionamento do elevador de um prdio, o SCAN
conhecido popularmente como Algoritmo do Elevador.
Uma pequena variao do algoritmo SCAN o C-SCAN. A diferena entre eles simples:
ao invs de inverter a ordem de atendimento uma vez que o cabeote chegue a um dos
extremos dos pratos, o C-SCAN faz o cabeote se reposicionar no extremo inicial e recomear
o processo de atendimento. Em outras palavras, o sentido de movimentao do cabeote para
atendimento dos clientes sempre o mesmo. Na abstrao do elevador, isso equivalente
a um elevador que s para nos andares para pegar novos passageiros quando est subindo.
Ao chegar ao topo do prdio, o elevador comea uma descida direta (sem parada em outros
andares) at o trreo. A motivao para esta variao prover uma maior justia. No algoritmo
SCAN tradicional requisies feitas para cilindros nos extremos dos pratos so prejudicadas,
porque o intervalo entre duas passagens do cabeote por tais cilindros muito alto (o cabeote
tem que percorrer todo o prato duas vezes, ida e volta, at chegar novamente nestes cilindros).
Por outro lado, os cilindros do meio do prato esperam apenas por um percorrimento do prato
(meia ida mais meia volta) para serem novamente atendidos. H ainda outras pequenas
variaes do algoritmo do elevador, como os algoritmos FSCAN e LOOK.
A vantagem do algoritmo FIFO, como sempre, a sua simplicidade. Por outro lado, em quase
todos os aspectos, o algoritmo do elevador (e suas variaes) tem desempenho superior aos
demais.
4. RAID (Redundant Array of Independent Disks)
Os HDs so dispositivos com partes mecnicas. Como discutido anteriormente, isso faz com
que, em geral, eles sejam mais lentos e menos confiveis que os demais componentes de
um computador. Para computadores pessoais, estes problemas geralmente no so to
relevantes. Os nveis atuais de desempenho e confiabilidade e desempenho dos HDs so
satisfatrios para a maior parte dos usurios.
No entanto, em grandes servidores estes problemas acabam se potencializando. Servidores,
em geral, tem um grande nmero de acessos simultneos a disco, evidenciando o
desempenho dos HDs como gargalos do sistema. Alm disso, os dados armazenados em
servidores so geralmente sensveis, o que significa que defeitos que levem a perda de dados
tem consequncias srias. Alm disso, quando maior o servidor, maior a quantidade de HDs
utilizados, o que, por sua vez, aumenta a probabilidade de falha de ao menos um deles.
Para solucionar ou pelo menos mitigar estes problemas nestes ambientes de grande porte foi
criada a tecnologia RAID. A ideia do RAID combinar vrios HDs fisicamente separados em
uma nica unidade lgica de armazenamento, de forma a obter ganhos de desempenho e/
ou de confiabilidade. Como o prprio nome sugere, na maior parte das configuraes RAID
h algum tipo de informao redundante sendo armazenada, o que reduz a probabilidade de
perda de dados.
H diversos modos (ou nveis) de funcionamento do RAID. So 8 nveis bsicos:
RAID 0: todos os discos armazenam apenas dados. Os dados so divididos entre
os HDs, mas no h qualquer mecanismo de correo de erros ou de redundncia.
A vantagem deste modo est no simples fato de escritas ou leituras poderem ser
realizadas em paralelo, j que duas requisies podem ser mapeadas em discos
fsicos separadas. Este esquema conhecido tambm como stripping. Como no
h redundncia, o espao total de armazenamento disponvel igual a soma das
capacidades dos HDs.
RAID 1: neste nvel so usados n HDs de igual capacidade, um principal e outros
secundrios. Este conjunto funciona em um esquema de espelhamento: tudo o que
escrito no HD principal replicado nos secundrios. A grande vantagem deste nvel
o alto grau de redundncia. Se o HD principal sofre uma falha, todo o contedo estar
salvo nos secundrios. Por outro lado, perde-se muito da capacidade nominal de
armazenamento (e.g., com dois discos de 500GB, a capacidade total ser de 500GB).
RAID 2/3/4: nestes 3 nveis so usados n + 1 HDs. Nos n primeiros HDs usado
um esquema de stripping, como no RAID 0. O ltimo HD, usado para armazenar
informaes de redundncia (paridade) dos dados armazenados nos demais. Todos os
trs nveis (2, 3 e 4) funcionam desta forma: a diferena est em como a redundncia
armazenada: o RAID 2 usa paridade de bit, o RAID 3 usa paridade de byte e o RAID 4
usa paridade de bloco. De toda forma, em caso de falha em um dos n primeiros HDs
possvel recuperar os dados perdidos atravs das informaes dos outros n - 1, alm do
HD de prioridade.
RAID 5: funciona como o RAID 4, porm as informaes de paridade so distribudas
entre todos os HDs. Isto , no existe um HD especfico para paridade.
RAID 6: similar ao RAID 5, porm com um esquema de paridade dupla que permite
falha de at dois HDs dentro do conjunto.
RAID 10: combina os nveis 0 e 1, utilizando vrios pares de HDs de igual capacidade.
O esquema de stripping feito nos HDs principais de cada par. Alm disso, cada um
destes HDs principais tem seu contedo espelhado no seu respectivo HD secundrio.
Os nveis de RAID podem ser implementados tanto em hardware (pela controladora de
disco), quanto em software (pelo SO). Quando implementado em hardware, todo o processo
transparente para o SO. De fato, neste caso, o SO simplesmente v o conjunto de HDs em
RAID como um nico disco.