Introdução Inst tituto de Info ormátic ca - UF FRGS Sistemas Operacionais i Implementação de arquivos Gerenciamento de espaço em disco Aula 19 Arquivo é a unidade de armazenamento de informações Para implementar um arquivo é preciso Alocar espaço físico no meio de armazenamento e associá-lo ao arquivo O meio de armazenamento básico é o disco rígido Fornecer um nome, determinar permissões e permitir sua localização Informações armazenadas em entradas de diretório Principais pontos: Alocação do espaço de armazenamento Na criação de arquivos e sua expansão Gerenciamento do espaço de armazenamento livre Na remoção de arquivos ou na sua redução Desempenho Sistemas Operacionais 2 Implementação de arquivos Alocação do espaço físico Princípio básico Dividir o arquivo em blocos lógicos e atribuí-los a blocos no espaço de armazenamento secundário 1 2 3 Blocos lógicos (arquivo) 1 2 3 4 5 6... 53 54 55... 72 73 74... 96 97 98... Blocos lógicos (disco) Noção de File Map Table (FMT) Descrição de quais blocos do disco formam um arquivo Espécie de cartografia de disco Objetivo: Alocar blocos do espaço do meio físico para armazenar arquivos de forma a acessá-los eficientemente Estratégias Contígua: alocação contígua Não contígua: alocação encadeada e alocação indexada Requisitos e problemas similares aos da gerência de memória Arquivo é dividido em blocos lógicos contíguos Blocos lógicos são mapeados para blocos do disco (mesmo tamanho) Em discos rígidos, o bloco lógico do disco é composto por n setores lógicos do disco Sistemas Operacionais 3 Sistemas Operacionais 4
Alocação contígua Problemas com alocação contígua Arquivo é uma sequência de blocos fisicos contíguos alocados na criação Endereços de blocos são lineares bloco lógico i e i+1 são armazenados fisicamente em sequência, ou seja, nos blocos do disco j e j+i. i Reduz a movimentação mecânica do cabeçote de leitura e escrita do disco Melhora o desempenho de acesso Entrada no diretório Nome (e outros atributos) Bloco físico inicial Tamanho do arquivo em blocos Problema 1: encontrar espaço no disco para um novo arquivo Técnicas de gerência de memória e.g.; first-fit, fit best-fit, worst-fit Gera fragmentação externa Necessidade de compactar o disco (eliminar os espaços entre arquivos) Problema 2: determinar o espaço necessário a um arquivo Arquivos tendem a crescer, e se não há espaço contíguo disponível? Aborta execução do programa com erro Recopia o programa para uma zona maior Pré-alocar no disco um espaço máximo para o arquivo Isso gera uma fragmentação interna no espaço préalocado se o arquivo não usar todo o espaço máximo Sistemas Operacionais 5 Sistemas Operacionais 6 Alocação encadeada Prós e contras da alocação encadeada uto de Info arissimi -2-mai Institu A. 7 Ca Soluciona os problemas da alocação contígua: Dimensionamento do tamanho Crescimento de arquivos Arquivo é uma lista encadeada de blocos Cada bloco contém um ponteiro para o próximo bloco Arquivo é descrito por uma entrada no diretório na forma: Nome (e outros atributos) Bloco inicial do arquivo Bloco final do arquivo ou tamanho do arquivo em blocos Sistemas Operacionais 7 Elimina a fragmentação externa no disco Arquivos podem crescer indefinidamente O limite é a disponibilidade de blocos livres O acesso a um bloco lógico i implica percorrer a lista encadeada até achar o bloco lógico do disco j correspondente Afeta o desempenho Acesso randômico: exige ler os blocos desde o inicio até chegar ao desejado Acesso sequencial: custo de reposicionamento do cabeçote Confiabilidade Erro provoca a leitura/escrita em bloco pertencente a outro arquivo Sistemas Operacionais 8
File Allocation Table (FAT) Exemplo: sistema de arquivos FAT (MS-DOS) Variação de alocação encadeada Uma entrada na FAT para cada bloco do disco (sistema de arquivos) Composta por um ponteiro (endereço do bloco) Arquivo é descrito por uma sequência de entradas na FAT, cada entrada apontando para a próxima entrada Diretório jeep 217 Primeiro setor do arquivo (start block) Desvantagem: tempo de busca de dados d (seek) FAT 618 217 4 399 EOF 4 399 618 Sistemas Operacionais 9 Organização lógica do disco: Setor Setor n Área reservada FAT Diretório raiz Arquivos Diretório raiz possui tamanho fixo em função da capacidade do disco Cada entrada possui 32 bytes Tamanho da File Allocation Table (FAT) é proporcional a capacidade do disco Alocação é baseada em clusters (bloco lógico do disco) 2 n setores (depende da capacidade do disco) Sistemas Operacionais 1 Alocação indexada Prós e contras da alocação indexada Busca resolver o problema de ponteiros esparramados pelo disco que a alocação encadeada provoca Um arquivo é descrito em bloco de índices Bloco do disco com uma função especial Listaosblocos que compõem o arquivo Indice = endereço de bloco de dados Arquivo é descrito por uma entrada no diretório na forma: Nome (e outros atributos) t Endereço de um bloco usado como bloco de índice Sistemas Operacionais 11 Permite o acesso randômico a blocos independentes de sua posição relativa no arquivo Tamanho máximo do arquivo é limitado pela quantidade de entradas que o bloco pode fornecer Bloco é muito pequeno (limita tamanho do arquivo) Bloco é muito grande (desperdiça espaço em disco) Sistemas Operacionais 12
Variações em alocação indexada Método multinível Buscam resolver o problema do tamanho do bloco de índices Três métodos básicos: Multinível: criar índices de índices Encadeado: encadear blocos de índices Combinado: mix dos métodos encadeado e multinível Mantém um índice de índices Não resolve completamente o problema de limite (proporcional a n x n) Bloco de índice de índices () 31 53 7 (31) 1 (7) 442 (1) (442) Sistemas Operacionais 13 Sistemas Operacionais 14 Método encadeado Método combinado O bloco de índice possui endereços dos blocos (de dados) d que compõem o arquivo, à exceção da última entrada Última entrada: endereço para um bloco onde a lista de indices continua k k+1 () 618 4 3 (618) k k+1 (3) 5 (5) NULL NULL Sistemas Operacionais 15 Métodos multinível e encadeado em uma única estrutura de dados O que justifica essa combinação? Acesso otimizado a blocos de dados: método indexado Limite de arquivos: multinível Ponteiros p/ bloco de dados Ponteiros p/ bloco de índices Bloco combinado () 31 53 7 (7) 442 (31) (442) Sistemas Operacionais 16
Exemplo: i-node (descritor de arquivos UNIX) Exemplo: NTFS Unix usa método combinado com dois tamanhos de blocos: um para bloco de índice (inode) e outro para bloco dados Pédfiid Pré-definidos em uma tbl tabela no disco (partição) Entrada do diretório associa nome simbólico a i-node 1... 96 97 98... 1 2 3 4 5 6... 53 54 55... 72 73 74... 96 97 98... 128 bytes 1 Sistemas Operacionais 17 Descritores (registros) são armazenados no MFT 12 entradas iniciais são arquivos de controle (metafiles) Demais entradas estão disponíveis para arquivos e ou diretórios Cada entrada é formada por um conjunto de pares {atributo, valor} Se houver atributos que excedam a capacidade de uma entrada, uma nova entrada é encadeada a essa primeira Registro MFT (1 KB): Header standard Nome do arquivo Segurança VCN LNC Nro. Cluster 1355 4 4 1588 4 VCN 1 2 3 VCN 4 5 6 7 LNC 1355 1356 1357 1358 LNC 1588 1589 159 1591 Virtual Cluster Number Logical Cluster Number Sistemas Operacionais 18 Gerenciamento do espaço pç livre Lista de blocos livres Necessário manter a informação de blocos livres Criar ou expandir um arquivo necessita alocar blocos Remover ou diminuir i i um arquivo implica em liberar blocos (reaproveitá-los!!!) Métodos básicos: Lista de blocos livres Mapa de bits (bitmap) Duas estratégias Arquivo de blocos livres Os blocos livres formam um arquivo espaço livre podendo d usaras técnicas estudadas (encadeado, indexado, combinado) O conteúdo do arquivo é uma sequência de endereços de blocos livres Lista encadeada (agrupamento) Um bloco possui a localização de blocos livres Última entrada (enésima) aponta para um novo bloco de blocos livres Desvantagem: Tempo de acesso ao disco para manutenção dessas estruturas t Sistemas Operacionais 19 Sistemas Operacionais 2
Mapa de bits (Bit maps) ) Estudo de caso: Unix e Windows Cada bloco lógico ou está livre ou está ocupado Um bit por bloco (ex.: 1:livre :ocupado) 111 111... Prós e contras: Lista de tamanho reduzido (n blocos = n bits) Localização espacial pode ser identificada por uma sequência de bits em um mesmo estado Desempenho no varrer o bitmap Operações de manipulação puaçãode bits Unix Emprega bit map Área específica do disco lógico (partição) Unix Windows Emprega bit map É um arquivo de dados especial Sistemas Operacionais 21 Sistemas Operacionais 22 layout do sistema de arquivos ext2fs (Unix) Estrutura de uma partição NTFS Boot sector Grupo 1 Grupo 2 Grupo 3 Grupo n Volume NTFS Super bloco Descritor grupo Bitmap blocos Bitmap i-node i-nodes Setor de boot MFT MFT Zone Cluster (dados) Cluster (dados) 12.5% da partição Mirror parcial do MFT (meio da partição) 1 bloco n blocos 1 bloco 1 bloco n blocos Super bloco: descritor do tamanho e formato do sistema de arquivos Descritor grupo: organização do grupo (tamanho e formato) Bitmap blocos: indicação se um bloco do grupo está livre/ocupado Bitmap i-nodes: indicação se um i-node do grupo está livre/ocupado i-nodes: tabela com os i-nodes do grupo Espaço do disco é dividido em clusters Utiliza um arquivo de bitmap para manter clustes livres/ocupados Tamanho do cluster é definido id em função da capacidade d do disco Compromisso é desempenho versus desperdício de disco Um volume NTFS tem até 2 64-1 clusters (teórico) Uma partição NTFS é dividida em duas partes: Área MFT (Master File Table) ) Área destinada ao armazenamento de dados Sistemas Operacionais 23 Sistemas Operacionais 24
Leituras complementares R. Oliveira, A. Carissimi, S. Toscani; Sistemas Operacionais. Editora Sagra-Luzzato, 21. Capítulo 8, seção 831 8.3.1 A. Silberchatz, P. Galvin; Operating System Concepts. 4 th edition, 1994, Addison-Wesley. Capítulo 11 seção 11.2 Sistemas Operacionais 25