Baixe o app para aproveitar ainda mais
Prévia do material em texto
Centro Universitário de Formiga Sistemas Operacionais II Sistemas de Arquivos Profº Harley Rios Ciência da Computação 6º Período Sistemas de arquivos Parte do Sistema Operacional mais visível ao usuário. Oferece condições essenciais para armazenamento de informações em mídias por um longo prazo. Controle contra perda de informações em casos de desligamentos; Localizar os blocos onde estão os seus dados dentro do disco; Sistemas de arquivos Armazenamento de Informações Armazenamento de informações: três importantes requisitos no a longo prazo: Deve ser possível armazenar uma grande quantidade de informação. A informação deve sobreviver ao término do processo que está usando a mesma, posterior recuperação, Ex.: banco de dados; Múltiplos processos devem ser capaz de acessar a informação simultaneamente. Sistemas de arquivos Armazenamento de Informações Em um disco como uma sequência linear de blocos de tamanho fixo e que apoiam a leitura e registro dos blocos, outras questões surgem rapidamente também: • Como encontrar a informação? • Como saber se os blocos estão livres? • Como alocar as ninformações nos blocos? Para atender a esses requisitos, as informações são armazenadas em unidades chamadas arquivos; Arquivos Unidade lógica de informação. Criado/lido/escrito/apagado por processos; Utilizam o espaço de endereçamento de disco. Outras perguntas surgem: Qual sua cara? Como são nomeados e protegidos? Quais operações podem ser executadas neles? Concorrência no acesso a dados. Parte do Sistema Operacional responsável pelo tratamento dos arquivos: Sistemas de Arquivos Arquivos Outras funções do sistema de arquivos: Estruturar Identificar Proteger Acessar Da parte de vista do usuário, o aspecto mais importante é a apresentação dos arquivos. Sistema de Arquivos Identificação Quando arquivos são criados, nomes são atribuídos. Quando o processo termina sua execução, o arquivo continua a existir, podendo ser acessado por outros processos. Tamanho: até 255 caracteres; Restrição: MS-DOS aceita de 1-8 caracteres Caracteres permitidos: A-Z, a-z, 0-9, $, %, ´, @, {, }, ~, `, !, #, (, ), & Caracteres não permitidos: ?, *, /, \, “, |, <, >, : (Case sensitive) Unix: (Barbara, BARbara) Alguns sistemas suportam uma extensão relacionada ao nome do arquivo. Nomeação de arquivos Extensões A maioria dos S.O’s suportam nomes compostos. Uma extensão, geralmente, associa o arquivo a algum aplicativo (associação feita pelo aplicativo): Como o conteúdo do arquivo é estruturado? Três maneiras muito comuns: Sequência não estruturada de bytes (usual). SO não se importa com o conteúdo do arquivo; Flexibilidade (nomear arquivos. alterar); (Unix, DOS) Sequência de registros de tamanho fixo. Leitura/escrita em registros; Pouco utilizado; Árvores de registros (tamanho variado): Possui chave fixa Operação básica não é obter o próximo registro, mas obter o registro com uma chave específica. - Encontrar registro cuja chave é pônei, sem preocupar com sua posição exata no arquivo. Tipos de arquivos Sistemas operacionais suportam vários tipos de arquivos. Regulares: informações do usuário; ASCII: editáveis (.txt) Binário: todos arquivos não ASCII (executável); Diretórios: manter a estrutura do Sistema de Arquivos; (/, c:) Especiais de caracteres: E/S (impressoras, terminais, interface rede); Arquivos especiais de bloco: modelar discos; (listar os blocos do disco) Tipos de arquivos - Em UNIX/Linux, o comando file pode distinguir o tipo do arquivo. - Padrão especial é armazenado no início de cada arquivo binário (magic number); Ex: arquivos GIF sempre iniciam com o string “GIF87a” ou “GIF89a Acesso a arquivos Acesso Sequencial: Primeiros sistemas operacionais. leitura em ordem byte a byte; do início do arquivo... sem operação “seek” (interessante para fita magnética). Acesso Aleatório: Aplicações podem ler bytes em qualquer posição, em qualquer ordem. (S.O’s modernos). Acesso feito por chave; Operação Read; Operação Seek; Atributos de arquivos Cada arquivo tem necessariamente um nome e um conjunto de dados. Atributos: informações associadas ao arquivo; Varia de SO para SO (proteções são comuns). Anatomia de um arquivo Atributos de Arquivos Lendo atributos – Linux Comando stat Operações sobre arquivos Operações são oferecidas para armazenar e recuperar informações. Algumas chamadas são: Create: criar arquivo sem dados, define atributos Delete: remover o arquivo e liberar espaço Open: necessário antes de usar, o sistema deve buscar atributos e localização dos endereços dos dados em disco (carrega estas informações na memória principal (agilizar)). Close: os acessos terminam, dados para o acesso não mais necessários, liberar espaço nas tabelas, finalizar escritas Read: leitura de dados a partir da posição atual, quantidade e local especificados Operações sobre arquivos Write: escrita de dados no arquivo, a partir da posição atual, quantidade e local especificado (Append). Tipo de write que escreve somente no final do arquivo. Seek: para arquivos de acesso randômico; Indica posição dos dados (ponteiro do arquivo). Get attributes: leitura dos atributos de um arquivo, Ex. make; Set attributes: altera valores dos atributos, Ex. Modo de proteção. Rename: altera o nome do arquivo. Diretórios São arquivos responsáveis por manter a estrutura do Sistema de Arquivos. Tipo Nível Único: um diretório contém todos os arquivos diretório raiz (root directory). Vantagens: simplicidade Desvantagens: arquivos com o mesmo nome; Diretórios Nível Hierárquico Cada usuário possui um diretório privado; Procedimento de login: identificação; Sistemas operacionais modernos utilizam esse método; Nomes de arquivos É preciso especificar o nome dos arquivos para acessar... Existem dois métodos muito conhecidos: – Caminho absoluto, /usr/ast/mailbox - Absoluto – Caminho relativo ( Diretório de trabalho) mailbox (se estiver em /usr/ast) Sistemas de diretório hierárquico suportam entradas especiais. – '.' (diretório corrente) – '..‘ (pai do corrente) Operações sobre Diretórios CREATE: Cria um diretório vazio contendo apenas o . e .. colocados automaticamento (mkdir). DELETE: apaga um diretório (rm –rf) OPENDIR: diretórios podem ser lidos (listar todos arquivos de um diretório) CLOSEDIR: fechar um diretório READDIR: Retorna a próxima entrada em um diretório aberto RENAME: renomear um diretório (mv) LINK: permite que um arquivo apareça em mais de um diretório (atalho) Implementação do Sistema de Arquivos Como arquivos e diretórios são armazenados; Como o espaço em disco é gerenciado; Como tornar o sistema eficiente e confiável; Esquema do sistema de arquivos Discos divididos em uma ou mais partições, com sistemas de arquivos independentes para cada partição. Setor 0 (MBR): inicializar o computador. Fim do MBR: Tabela de partição com endereços iniciais e finais de cada partição Esquema do sistema de arquivos Computador liga: executa a MBR que localiza a partição ativa Lê o primeiro bloco (Bloco de inicialização) Programa no bloco de inicialização carrega o S.O. contido naquela partição. Superbloco: informações sobre o sistemas de arquivos utilizado... Implementação do Sistema de Arquivos O ponto chave na implementação do armazenamento de arquivos é associar blocos de disco a arquivos (quais blocos pertencem a quais arquivos). Diferentes técnicas são implementadas por diferentes Sistemas Operacionais; Alocação contígua; Técnica mais simples; Armazena arquivos de forma contínua no disco; Ex.: em um disco com blocos de 1kb, um arquivo com 50kb será alocado em 50 blocos consecutivos; Alocação Contígua Vantagens: Simplicidade: somente endereço do primeiro bloco é necessário. Dado o número do primeiro bloco, outro pode ser encontrado por uma simples adição. Bom desempenho para o acesso ao arquivo: acesso sequencial em uma única operação Desvantagens: Fragmentação externa, perde-se espaço útil; Alocação por lista encadeada Manter o espaço em disco alocado ao arquivo como uma lista ligada de blocos. A primeira palavra de cada bloco é um ponteiro para um próximo bloco; O restante do bloco é destinado aos dados; Ao contrário da alocação contígua, qualquer bloco pode ser usado Apenas o endereço em disco do primeiro bloco do arquivo é armazenado; restante pode ser encontrado a partir dele. Serviço de diretório é responsável por manter esse endereço; Alocação por lista encadeada Vantagem: Não se perde espaço com a fragmentação externa; Desvantagens: Leitura - acesso aleatório é extremamente lento; chegar ao bloco n, precisa ler os n – 1 blocos antes dele; Alocação por lista encadeada usando uma tabela na memória Utiliza uma tabela na memória; (Elimina as desvantagens da encadeada) O ponteiro é colocado em uma tabela na memória ao invés de ser colocado no bloco; O arquivo A inicia no bloco 4 que indica o próximo bloco (bloco 7) e assim por diante... Acesso aleatório mais fácil (memória principal ao invés do acesso em disco); MS-DOS (FAT) Desvantagem: tabela deve estar na memória o tempo todo. Implementando o Sistema de Arquivos I-nodes Cada arquivo possui uma estrutura de dados (tabela) chamada i- node (index-node) que lista os atributos e endereços em disco dos blocos do arquivo; Assim, dado o i-node de um arquivo é possível encontrar todos os blocos desse arquivo; Se cada i-node ocupa n bytes e k arquivos podem estar aberto ao mesmo tempo o total de memória ocupada é kn bytes; UNIX e Linux; I-nodes Vantagem: O i-node somente é carregado na memória quando o seu respectivo arquivo está aberto (em uso); Desvantagem: O tamanho do arquivo pode aumentar muito Solução: reservar o último endereço para outros endereços de blocos; Implementação de diretórios Quando um arquivo é aberto, o Sistema Operacional utiliza o caminho fornecido pelo usuário para localizar o diretório de entrada; O diretório de entrada provê as informações necessárias para encontrar os blocos no disco nos quais o arquivo está armazenado: Endereço do arquivo inteiro (alocação contínua); Número do primeiro bloco do arquivo (alocação com listas encadeadas); Número do i-node; O serviço de diretório é responsável por mapear o nome ASCII do arquivo na informação necessária para localizar os dados. Implementação de diretórios O serviço de diretório também é responsável por manter armazenados os atributos relacionados a um arquivo: Entrada do Diretório: consiste de uma lista de entradas com tamanho fixo (uma para cada arquivo) contém um nome de arquivo (tamanho fixo), uma estrutura de atributos de arquivos, e um ou mais endereços de disco; MS/DOS e Windows; Implementação de diretórios Para sistemas que usam nós-i, uma outra possibilidade é armazenar os atributos nos próprios nós, em vez de na entrada do diretório. I-node: nesse caso, o diretório de entrada é menor, armazenando somente o nome de arquivo e o número do i-node que contém os atributos; UNIX Arquivos compartilhados Arquivos de C presentes no diretório de B (link); Gerenciamento de Espaço em Disco Duas estratégias para um arquivo de n bytes; São alocados ao arquivo n bytes consecutivos do espaço disponível em disco; Arquivo é espalhado por um número de blocos não necessariamente contínuos blocos com tamanho fixo; A maioria dos sistemas de arquivos utilizam essa estratégia; O tamanho do bloco tem uma grande influência; Se for muito grande, ocorre desperdício de espaço; Se for muito pequeno, um arquivo irá ocupar muitos blocos, tornando o acesso/busca lento; Gerenciamento de Espaço em Disco Blocos pequenos contribuem para um baixo desempenho, mas são bons para o gerenciamento de espaço em disco; Gerenciamento de Espaço em Disco Controle de blocos livres (dois métodos): Lista ligada de blocos livres: 32 bits para endereçar cada bloco; mantida no disco; Somente um bloco de ponteiros é mantido na memória principal quando bloco está completo, esse bloco é escrito no disco; Vantagens: Requer menos espaço se existem poucos blocos livres (disco quase cheio); Armazena apenas um bloco de ponteiros na memória; Desvantagens: Requer mais espaço se existem muitos blocos livres (disco quase vazio); Dificulta alocação contínua; Não ordenação; Gerenciamento de Espaço em Disco Gerenciamento de Espaço em Disco Mapa de bits (bitmap): depende do tamanho do disco: Um disco com n blocos, possui um mapa de bits com n bits, sendo um bit para cada bloco; Mapa é mantido na memória principal; Vantagens: Requer menos espaço; Facilita alocação contínua; Desvantagens: Torna-se lento quando o disco está quase cheio; Confiabilidade do Sistema de Arquivos Backup Danos causados ao sistema de arquivos podem ser desastrosos; Sistemas de arquivos são projetados para proteger as informações de danos lógicos e não físicos; Cópias de Segurança (Backup) Recuperação em caso de desastre Questões de Backup O que copiar? Politica de Backup Tempo (Eu posso perder quanto?) Tipos de Backup Lógico (Arquivos), Físico (Blocos do Sistema de arquivos) Confiabilidade do Sistema de Arquivos Backup Política de Backup Full: Copia de todos os dados SEMPRE Pró: Restaura todo o sistema de uma única fonte (Cópia) Contra: Gasta muita área de Armazenamento Incremental: Copia-se os dados modificados desde a ultima cópia. Pró: Usa pouco espaço Contra: Para restaurar o sistema pode precisar de várias fontes (Melhora-se usando um full de tempos em tempos). Diferencial: Copia os dados alterados desde a última cópia full. Pros e Contras: Reune o melhor das políticas anteriores Consistência do sistema de arquivos O que fazer na ocorrência de falhas entre a atualizacão de um bloco e a escrita em disco? Especialmente crítico quando o problema envolve um i-node. Verificação de consistência: fsck e scandisk. (a) Consistente (b) Bloco faltando (c) Duplicacão na lista de livres (d) Duplicacão nos dados
Compartilhar