disco rígido -visão geral

Upload: alice

Post on 14-Jan-2016

215 views

Category:

Documents


0 download

DESCRIPTION

Fundamentos de sistemas operacionais

TRANSCRIPT

  • Notas da Aula 16 - Fundamentos de Sistemas Operacionais

    1. Disco Rgido: Viso Geral H inmeros dispositivos de E/S em um sistema computacional moderno. Por esta razo, invivel do ponto de vista de uma disciplina sobre Sistemas Operacionais cobrir o funcionamento de todos eles. Assim, para ilustrar alguns dos mecanismos de entrada e sada estudados neste captulo foi escolhido um nico representante: o disco rgido. O disco rgido (ou HD, da sigla em ingls) um dos dispositivos de E/S mais interessantes de um sistema computacional moderno. Em primeiro lugar, ele utilizado para vrias tarefas diferentes dentro de um sistema. A tarefa mais comum o armazenamento no-voltil de arquivos do sistema, que ser estudada em mais detalhes no Captulo 8. Outra utilidade do HD a utilizao de espao de armazenamento para uma operao chamada de Swap. Nesta operao, informaes que deveriam ser armazenadas em memria principal so copiadas para memria secundria (em geral, um HD) para liberar espao (para novos processos, por exemplo). A operao de Swap ser estudada em mais detalhes no Captulo 7. Outra caracterstica que torna o estudo dos HDs interessante o fato destes serem um dos poucos dispositivos nos computadores mais recentes que fazem uso de operaes mecnicas. Este fato tem duas consequncias. Primeiro, por envolver operaes mecnicas, o tempo de acesso de um HD muito mais alto que o da maior parte dos demais componentes de um computador. Em segundo lugar, componentes mecnicos em geral so menos confiveis que dispositivos puramente eletrnicos, tanto em termos de falhas permanentes, quanto em termos de falhas transientes. Logo, a gerncia de um HD tende a ser mais complexa que a de outros tipos de dispositivos de E/S. Hoje existem outros dispositivos de armazenamento de massa que tm se popularizado. Alm das mdias removveis, como pendrives, cartes de memria CDs, DVDs e discos Blu-Ray, so comuns hoje os chamados SSDs (Solid-State Drive), que so utilizados como HDs, porm tem funcionamento completamente eletrnico (no h operaes mecnicas envolvidas). A grande maioria dos SSDs so baseados em memria flash (como pendrives ou cartes de memria). H, no entanto, os chamados HyperDrives, que so SSDs baseados em memria RAM. Como a memria RAM voltil (necessita de atualizaes do contedo peridicas), este tipo de SSD conta com baterias auxiliares para garantir a persistncia dos dados mesmo em caso de desligamento da mquina. Os HyperDrives, no entanto, ainda so muito caros e utilizados apenas em aplicaes muito especficas, como em grandes servidores de bases de dados. Embora estas novas tecnologias comecem a ganhar destaque (principalmente em laptops), os HDs convencionais ainda dominam o mercado. Um dos motivos a sua grande capacidade de armazenamento e baixo custo de produo. Hoje, possvel encontrar HDs com capacidade de armazenamento de Terabytes em computadores pessoais. Fisicamente, um HD composto por um ou mais discos metlicos, chamados de pratos, que

  • giram em torno de um eixo comum. No caso de mltiplos pratos, estes so dispostos em alturas diferentes no eixo de rotao. Cada prato tem sua superfcie recoberta por uma pelcula magntica. Acoplado ao conjunto de pratos, encontra-se um brao mecnico com um ou mais cabeotes de leitura e escrita (um para cada superfcie de cada prato). Este brao mecnico capaz de girar em um outro eixo, fazendo com que os cabeotes de leitura possam alcanar qualquer ponto, da borda at o centro de cada prato. Como os pratos giram, os cabeotes conseguem cobrir toda a sua superfcie. Logicamente, cada prato de um HD dividido em trilhas. Uma trilha uma circunferncia concntrica ao eixo de rotao do prato. Por sua vez, uma trilha dividida em vrios setores. Um setor um segmento da circunferncia da trilha que armazena uma quantidade fixa de bytes (em geral, algo entre 512 e 4096 bytes). Cada bit de um setor representado atravs da polarizao magntica da pelcula naquele determinado ponto. Podem ser utilizadas modulaes mais complexas para a representao dos dados, mas a maneira mais simples definir uma determinada polarizao como 0 e a polarizao oposta como 1. Durante a gravao, os cabeotes geram um campo eletromagntico que tem sua polaridade controlada eletronicamente. Este campo faz com que a parte da pelcula que representa um determinado bit tenha sua polaridade alinhada com a do cabeote. Durante a leitura, o cabeote passa a ser um elemento passivo, tendo uma tenso induzida de acordo com as linhas de fora do campo resultante da polarizao da pelcula. Olhando para os pratos de um HD de cima para baixo, define-se um cilindro como o conjunto de trilhas de todos os pratos que esto a um mesmo raio do eixo de rotao. Estas trs divises lgicas, cilindro, trilha e setor, permitem o endereamento dos dados em um HD. interessante notar que os setores so divises radiais das trilhas. Em outras palavras, toda trilha de um HD tem o mesmo nmero de setores. Como trilhas mais prximas do centro do prato tem uma circunferncia menor, o comprimento fsico dos seus setores tambm menor que os das trilhas mais externas. Por outro lado, todo setor armazena a mesma quantidade de bytes. Logo, nos setores das trilhas mais internas, a densidade de bytes por rea fsica maior. Historicamente, este fato trouxe duas consequncias. Em primeiro lugar, em HDs mais antigos, era comum que determinados setores do disco apresentassem defeitos fsicos com o passar do tempo (eles ficavam simplesmente inutilizados). Em geral, os setores mais defeituosos eram aqueles localizados nas trilhas mais internas (por causa da alta densidade de gravao). Hoje, os HDs so mais confiveis e este tipo de problema bem mais raro. Por outro lado, alguns fabricantes decidiram aumentar a capacidade de armazenamento dos seus HDs criando setores de capacidade de armazenamento varivel. A ideia manter constante a densidade de gravao. Logo, as trilhas mais externas passam a ter mais setores. Nos equipamentos em que isso ocorre, no entanto, esta alterao realizada sempre por hardware. Do ponto de vista do software, considera-se sempre a geometria de disco tradicional. A capacidade de um HD pode ser calculada com base na quantidade de cilindros, setores, bytes por setor e superfcies de gravao. Os fabricantes geralmente informam o nmero de superfcies de gravao atravs do nmero de cabeotes do HD. Por exemplo, um disco com

  • 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 deseja-se 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.

  • As primeiras implementaes em software do RAID eram consideravelmente mais lentas que as implementaes em hardware. Hoje, esta diferena no mais to grande, porm, ela ainda existe.