Fundamentos de Sistemas Operacionais Sistema de Arquivos - II Prof. Galvez Implementação de Arquivos Arquivos são implementados através da criação, para cada arquivo no sistema, de uma estrutura de dados Descritor de Arquivo: registro onde é mantido as informações sobre o arquivo. Contém: Nome do Arquivo Extensão do nome do arquivo Tamanho em Bytes Data/Hora último acesso/alteração Usuário que criou o arquivo Lista de usuários autorizados a acessa-lo. Localização no disco (local da gravação), etc Tabelas de Descritores de Arquivos Descritores de arquivos são armazenados no próprio disco. mesmo disco lógico (partição) Problema de desempenho. Acesso ao disco para ler o descritor de arquivos é lento Solução é manter descritor em memória enquanto o arquivo estiver em uso Indicação se arquivo está em uso normalmente é feito pelo próprio usuário (aplicação) através de chamadas do tipo open e close . Sistema de arquivos mantém os descritores de arquivos em memória em uma estrutura de dados do sistema operacional Tabela de Descritores de Arquivos Abertos (TDAA) Tabelas de Descritores de Arquivos Abertos (TDAA) As entradas da TDAA contém informações que não variam conforme o processo está acessando o arquivo. Informações relacionadas com arquivos são de dois tipos: Não variam conforme o processo que está acessando o arquivo – tamanho do arquivo Dependem do processo que está acessando o arquivo – posição corrente (acesso a parte diferente em dado instante) Informações dependentes do processo são armazenadas em uma tabela à parte mantida pelo processo (TAAP- Tabela de Arq. Abertos por Processo), que contém no mínimo: posição corrente no arquivo, tipo de acesso (apenas leitura ou leitura e escrita), apontador para a entrada correspondente da TDAA Emprego conjunto das tabelas TAAP e TDAA Arquivo B Arquivo A PosCor= 12 Leitura PosCor=5 5 Leitura & Tabela de Arquivos Esc Abertos por Processo (TAAP) do processo 0 PosCor=10 Leitura Tabela de Arquivos Abertos por Processo (TAAP) do processo 1 Descritor Arquivo A Descritor Arquivo B Tabela de Arquivos Abertos (TDAA) Alocação de Espaço em Disco Como alocar espaço em disco de forma que os arquivos sejam armazenados de forma eficiente e que permita acesso rápido? Duas formas básicas: Contígua (alocação contigua) Não Contígua (alocação encadeada e alocação indexada) Alocação Contigua Arquivo é uma sequência de blocos lógicos contíguos alocados no momento da criação Endereços no disco são lineares bloco lógico i e i+1 são armazenados fisicamente em sequência Reduz a necessidade de seek já que blocos estão na mesma trilha (pior hipotese troca de cilindro) Arquivo é descrito através de uma entrada na forma: Bloco físico inicial Tamanho do arquivo em blocos Esquema de Alocação Contigua Alocação Encadeada Soluciona os problemas da alocação contígua Relação a dimensionamento do tamanho e crescimento de arquivos Alocação é baseada em uma unidade de tamanho fixo (bloco lógico) Arquivo é uma lista encadeada de blocos Cada bloco contém um ponteiro para o próximo bloco Arquivo é descrito em uma entrada na forma: Bloco inicial do arquivo Bloco final do arquivo ou tamanho do arquivo em blocos Esquema de Alocação Encadeada Prós e Contras da Alocação Encadeada Elimina a fragmentação externa Arquivos podem crescer indefinidamente Não há necessidade de compactar o disco O acesso a um bloco implica em percorrer a lista encadeada Afeta o desempenho Adequado para acesso sequencial a arquivos Alocação Indexada Busca resolver o problema de “ponteiros esparramados” pelo disco que a alocação encadeada provoca Mantém, por arquivo, uma tabela de indices. Cada entrada dessa tabela contém o endereço de um dos blocos físicos que formam o arquivo. O índice é mantido em um bloco Esquema de Alocação Indexada Qual o Melhor Método de Alocação? Depende do tipo de acesso que o sistema faz a seus arquivos Sequêncial versus randômico Fator adicional Evolução tecnológica (novos hardwares) e de desempenho forçam a coexistência de diferentes sistemas de arquivos Necessidade de “fazer conviver” diferentes sistemas de arquivos em um mesmo computador Suporte a múltiplos sistemas de arquivos Suporte a Múltiplos Sistemas de Arquivos Fazer com que o sistema operacional suporte diversos sistemas de arquivos diferentes simultaneamente Solução inspirada na gerência de periféricos Parte independente do dispositivo Serviços idênticos independente do tipo de sistema de arquivos Parte dependente do dispositivo Interface padrão Virtual File System (VFS) CD-ROM Partição raw Disquete Organização da Cache de Disco Objetivo é manter na memória principal uma certa quantidade de blocos do disco Não adiciona nem elimina funcionalidades ao sistema de arquivos Função é melhorar o desempenho do sistema de arquivos Não confundir com a cache do processador Normalmente a cache de disco é mantida em uma área da memória principal e é controlada pelo sistema operacional Pode ser global ou exclusiva (uma por sistema de arquivo suportado) Políticas de Atualização da Cache Quando atualizar o disco após um bloco presente na cache ter sido alterada? Posterga ao máximo Atualiza a cada intervalo de tempo Atualiza imediatamente no disco Atualiza imediatamente apenas informações sensíveis a consistência do sistema do arquivo Gerenciamento de Espaço Livre Necessário manter a informação de blocos livres e ocupados Métodos básicos Mapa de bits (bitmap) Forma simples de gerenciar o espaço em disco. Cada bloco do disco possui um bit indicando se o bloco está livre ou ocupado Lista de blocos livres Os blocos livres são organizados em uma lista Diretórios Problema: Quantidade (grande) de arquivos implica na necessidade de organizá-los Sistema de arquivos oferece duas formas de organização Partição: divide um disco em discos lógicos (virtuais), mas não resolve a organização de arquivos dentro desse disco lógico. Temos no mínimo uma em um sistema Diretório Conceito de Diretório Estrutura de dados que contém informações sobre arquivos Atributos básicos: nome, tipo, ... Localização: dispositivo físico, end. Início, tamanho,... Controle de acesso: proprietário, informações de acesso, ações permitidas,... Utilização: data criação/modificação, nro. de processos que o usam, locking,... Diretório é um arquivo pertencente ao sistema operacional Tipos de operações em um diretório Pesquisar, Criar e remover arquivos, Listar, Atualizar, etc Implementação de Diretório Diretórios são arquivos especiais cujo contéudo é manipulado pelo sistema operacional Sendo um arquivo: Utiliza os mesmos mecanismos de alocação, liberação e localização de blocos do disco que arquivos “comuns” Possuem um descritor de arquivo Final de Sistema de Arquivos