Sistemas operacionais Gerenciamento de espao livre em disco

  • Slides: 22
Download presentation
Sistemas operacionais Gerenciamento de espaço livre em disco Prof. Diovani Milhorim

Sistemas operacionais Gerenciamento de espaço livre em disco Prof. Diovani Milhorim

Gerenciamento de espaço livre Lembrando: diretórios n Estrutura de dados para organizar os arquivos

Gerenciamento de espaço livre Lembrando: diretórios n Estrutura de dados para organizar os arquivos ¨ Criação, remoção, listagem, link. ¨ Árvore / DAG / Grafo (ciclos!) n Implementados como arquivos especiais que contém uma seqüência de entradas ¨ Tabela de entradas n Lista seqüencial, tabela de Hash, Árvore B. . . ¨ Cada entrada descreve um arquivo/diretório contido no diretório ¨ Exemplos: MS-DOS, NTFS, inode/Unix

Gerenciamento de espaço livre Qual espaço livre gerenciar? n n O disco é organizado

Gerenciamento de espaço livre Qual espaço livre gerenciar? n n O disco é organizado em setores; O arquivo é organizado em registros (NTFS). . . O registro contém (endereços de) blocos. ¨ Há uma tradução registros / blocos ¨ n Blocos são um múltiplo de setores ¨ n n Escolha nem sempre fácil! Um bloco pode ter um tamanho fixo ou variável. Gerenciamento de espaço livre envolve 2 problemas: Decidir do tamanho de um bloco; ¨ Administrar/recuperar os blocos livres/ocupados no disco. ¨

Gerenciamento de espaço livre Influência do tamanho do bloco n No mínimo, 1 bloco

Gerenciamento de espaço livre Influência do tamanho do bloco n No mínimo, 1 bloco = 1 setor ¨ Se for menor, perde-se (muito) tempo ao ler os dados no disco. n No máximo 1 cilindro ¨ Desperdiço de espaço! ¨ Cf. [Mullender & Tannenbaum, de arquivos no Unix é 1 KB. n 1984]: tamanho médio Entre os dois: ¨ deve-se escolher um tamanho que não perca muito tempo em seek/atraso rotacional, nem muito espaço.

Gerenciamento de espaço livre Quanto maior o bloco maior a taxa de transferência. n

Gerenciamento de espaço livre Quanto maior o bloco maior a taxa de transferência. n Seja um HD com 32 KBytes/trilha, 16, 67 msec de tempo de rotação n Seek médio de 30 msec. n Tempo de transferência de um bloco de k Bytes (msec) será: T(k) = 30 + 8, 33 + (k / 32768)*16, 67 n Taxa de transferência = k / T(k)

Gerenciamento de espaço livre Tamanho do bloco x taxa de transferência

Gerenciamento de espaço livre Tamanho do bloco x taxa de transferência

Gerenciamento de espaço livre Tamanho do bloco x taxa de uso de HD n

Gerenciamento de espaço livre Tamanho do bloco x taxa de uso de HD n n n E a taxa de uso do HD? Supondo que só se tenha arquivos de 1 KB: Com blocos k < 1 KB, usa-se 100% dos blocos; Com blocos k > 1 KB, usa-se 1 KB / k Bytes, (1000/k)*100 % dos blocos. k = 1 KB => 100% de uso ; k = 8 KB => 1/8 = 12 %

Gerenciamento de espaço livre Tamanho do bloco x taxa de uso de HD

Gerenciamento de espaço livre Tamanho do bloco x taxa de uso de HD

Gerenciamento de espaço livre Tamanho dos blocos: n Altamente dependendo: Das características do HD

Gerenciamento de espaço livre Tamanho dos blocos: n Altamente dependendo: Das características do HD ¨ Da distribuição do tamanho dos arquivos. . . ¨ n Por exemplo: ¨ o surgimento dos vídeos / arquivos de som alterou recentemente o tamanho médio dos arquivos em um HD! ¨ O tamanho do bloco deve acompanhar desenvolvimento dos HD e dos Sis. Operacional.

Gerenciamento de espaço livre Tamanho dos blocos:

Gerenciamento de espaço livre Tamanho dos blocos:

Gerenciamento de espaço livre Tamanho dos blocos:

Gerenciamento de espaço livre Tamanho dos blocos:

Gerenciamento de espaço livre Tamanho dos blocos:

Gerenciamento de espaço livre Tamanho dos blocos:

Gerenciamento de espaço livre Vetor de bits (bitmap) n Cada bloco é representado por

Gerenciamento de espaço livre Vetor de bits (bitmap) n Cada bloco é representado por um bit 1 se estiver livre, 0 se estiver usado. n Implementação eficiente ¨ n Instrução de HW específica para retornar o 1 o bit valendo 1. Problema: utiliza tantos bits como blocos Bitmap armazenado na RAM! ¨ HD de 80 GB, blocos de 1 KB => 80 Mbits = 10 MBytes. . . ¨ Obs: com partições/clusters, reduz-se o bitmap. ¨

Gerenciamento de espaço livre Alocação agrupada com bitmap (ext 2 fs) n Dois problemas

Gerenciamento de espaço livre Alocação agrupada com bitmap (ext 2 fs) n Dois problemas com a escolha do 1 o bit livre: ¨ Achar rapidamente um bit 1 ¨ Procura byte por byte! ¨ Há fragmentação com essa solução. n Solução: ¨ Procura-se um byte livre; ¨ Vai-se para trás até o último bit ocupado. ¨ Pre-alocação dos 8 blocos pela frente

Gerenciamento de espaço livre Alocação agrupada com bitmap (ext 2 fs)

Gerenciamento de espaço livre Alocação agrupada com bitmap (ext 2 fs)

Gerenciamento de espaço livre Alocação agrupada com bitmap (ext 2 fs) Interesse deste esquema

Gerenciamento de espaço livre Alocação agrupada com bitmap (ext 2 fs) Interesse deste esquema n A procura Byte por Byte é rápida. ¨ n n Mais do que se fosse bit por bit. A procura para trás minimiza a fragmentação A pre-alocação reduz a fragmentação quando se escreve em vários arquivos intercalados Agiliza a alocação dos blocos. Blocos pré-alocados que não forem usados são devolvidos quando se fecha o arquivo.

Gerenciamento de espaço livre Lista encadeada n n n Mantém-se um ponteiro (endereço) do

Gerenciamento de espaço livre Lista encadeada n n n Mantém-se um ponteiro (endereço) do bloco inicial na lista de endereços de blocos disponíveis; Os blocos são encadeados numa lista Cada elemento da lista é um bloco Obs: mantém numa cache parte da lista E. g. o 1 o bloco, frequentemente suficiente.

Gerenciamento de espaço livre Lista encadeada

Gerenciamento de espaço livre Lista encadeada

Gerenciamento de espaço livre Exemplo: ext 2 fs n Sistema de arquivos “clássico” do

Gerenciamento de espaço livre Exemplo: ext 2 fs n Sistema de arquivos “clássico” do Linux n Inspirado pelo UNIX BSD (FFS) n Decompõe uma partição ext 2 fs em grupos n Dessa forma, agrupa blocos.

Gerenciamento de espaço livre Descrição dos grupos no ext 2 fs Super-bloco: n Contém

Gerenciamento de espaço livre Descrição dos grupos no ext 2 fs Super-bloco: n Contém dados relevantes a toda a partição (duplicado n em cada grupo) n Número mágico da partição, n número de mounts, n tamanho do bloco, n tamanho do grupo (m), n ponteiro para o 1 o inode do sistema de arquivos (/), n Número de inodes, de inodes livres, de blocos livres. . .

Gerenciamento de espaço livre Descrição dos grupos no ext 2 fs Descritor do grupo:

Gerenciamento de espaço livre Descrição dos grupos no ext 2 fs Descritor do grupo: n 1 entrada por grupo n Cada entrada fornece: n o endereço do bloco onde está o bitmap dos blocos livres; n o endereço do bloco onde está o 1 o inode na tabela. n o endereço do bloco do bitmap dos inodes n o endereço do bloco do bitmap dos blocos

Gerenciamento de espaço livre Descrição dos grupos no ext 2 fs n O ext

Gerenciamento de espaço livre Descrição dos grupos no ext 2 fs n O ext 2 fs usa bitmaps para gerenciar os blocos e inodes livres; ¨ Cópias n A tabela de inodes contém os endereços das cópias na memória dos inodes disponíveis (livres ou ocupados) no grupo; ¨O n parciais através de caches! bitmap indica quais usar num dado momento. Por fim, a tabela dos blocos aponta para os blocos disponíveis.