690 likes | 802 Views
Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação. Sistemas Operacionais Aula 15 Sistema de Arquivos. Regiane Kawasaki kawasaki@ufpa.br. Introdução. O sistema de arquivos é a parte mais visível do SO.
E N D
Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação Sistemas OperacionaisAula 15Sistema de Arquivos Regiane Kawasaki kawasaki@ufpa.br
Introdução • O sistema de arquivos é a parte mais visível do SO. • Cria um recurso lógico a partir de recursos físicos através de uma interface coerente e simples, fácil de usar. • Mecanismos de acesso a dados e a programas. • Duas partes básicas: • Arquivos – Armazenamento de dados e programas • Diretórios – Organização e informações sobre arquivos
Objetivos do Sistema de Arquivos • Fornecer mecanismos para usuários manipular arquivos e diretórios. • Garantir a validade e coerência de dados • Minimizar ou eliminar o risco de perda/alteração de dados • Otimizar o acesso • Fornecer suporte a outros sistemas de arquivos. • Suporte a vários usuários • Uso compartilhado (proteção e concorrência)
Requisitos mínimos (Usuário) • Cada usuário deve ser capaz de: • Criar, apagar, ler e alterar arquivos. • Controlar as permissões de acesso. • Nomear arquivos de forma simbólica. • Estruturar os arquivos de forma a adequá-los às suas necessidades específicas • Criação de diretórios e subdiretórios • Realizar backups e recuperar arquivos em caso de problemas.
Requisitos mínimos (Sistema) • O SO deve ser capaz de: • Descrever a localização de todos os arquivos e de seus atributos (Via diretório) • Gerenciar espaço físico do disco: • Alocar blocos livres a arquivos em criação/expansão. • Liberar blocos de arquivos removidos. • Mecanismos para localizar eficientemente blocos (setores) que compõem arquivos.
Conceitos Básicos • Arquivo • Unidade lógica de informação. • Diretório • Conjunto de referências a arquivos. • Partição • Abstração que permite a partir do disco físico criar discos lógicos.
Conceito de Arquivo • Informação pode ser armazenada em diferentes tipos de mídia. • Arquivos são mapeados para dispositivos físicos. • Arquivos possuem: • Nome, atributos, estrutura interna, tipo, método de acesso, operações.
Nomes de Arquivos • O Sistema de Arquivos define um espaço de nomes: • Conjunto de regras e convenções para identificar um arquivo • Variam de sistema para sistema: • Distinção entre letras maiúsculas e minúsculas (case sensitive) • Obrigatoriedade de extensão • Tamanho máximo de nome e da extensão
Atributos de um Arquivo • Informações sobre arquivos: • Nome: informação simbólica para referenciar o arquivo. • Tipo: binário, texto, executável, caracter, bloco • Localização: posição do arquivo em dispositivos de E\S • Tamanho: n° de bytes que compõem o arquivo • Proteção: controla acesso a leitura, escrita e execução ao arquivo • Horaedatadecriação, identificaçãodousuário: informações destinadas à proteção, segurança e monitoração. • Varia de SO a SO • Atributos são mantidos em uma estrutura à parte!
Estrutura de arquivos • Arquivos podem ser estruturados de diferentes maneiras: • a) Sequência não estruturada de bytes • Para o SO arquivos são apenas conjuntos de bytes. • SO não se importa com o conteúdo do arquivo. • Significado deve ser atribuído pelos programas em nível de usuário (aplicativos). • Vantagem: • Flexibilidade: os usuários nomeiam seus arquivos como quiserem. • Ex.: UNIX, LINUX e Windows.
Estrutura de arquivos • b) Sequência de registros de tamanho fixo, cada qual com uma estrutura interna leitura/escrita são realizadas em registros. • SOs mais antigos mainframes e cartões perfurados (80 caracteres). • Nenhum sistema atual utiliza esse esquema.
Estrutura de Arquivos • c) Árvores de registros (tamanho variado), cada qual com um campo chave em uma posição fixa: • SO decide onde colocar os arquivos; • Usadoem mainframesatuais.
Tipos de arquivos • Arquivos regulares são aqueles que contêm informações dos usuários. • Diretórios são arquivos responsáveis por manter a estrutura do Sistema de Arquivos. • Arquivos especiais de caracteres são aqueles relacionados com E/S e utilizados para modelar dispositivos seriais de E/S. • Ex.: impressora, interface de rede, terminais. • Arquivos especiais de bloco são aqueles utilizados para modelar discos.
Acessos em arquivos • SOs mais antigos ofereciam apenas acesso seqüencial no disco leitura em ordem byte a byte (registro a registro). • SOs mais modernos fazem acesso randômico ou aleatório. • Acesso feito por chave; • Ex.: base de dados de uma empresa de aérea. • Métodos para especificar onde iniciar leitura: • Operação Read posição do arquivo em que se inicia a leitura. • Operação Seek marca posição corrente permitindo leitura sequencial.
Operações básicas sobre arquivo • Arquivo é um tipo abstrato de dados sobre o qual se pode efetuar uma série de operações: • Criação (create) • Escrita (write) e Leitura (read) • Reposicionamento (file seek) • Remoção (delete) • Abertura (open) e Encerramento (close) • Renomeação (rename), trucagem (truncate) e etc. • Geralmente correspondem a chamadas de sistemas.
Controle de Acesso • Importante controlar o acesso aos arquivos devido questões de segurança. • Objetivo é evitar acessos indevidos. • Baseado na identificação de usuários: • Sistema de autenticação padrão. • Usuários possuem direitos de acessos. • Solução típica • Lista de acesso e grupo.
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 é um registro que mantém informações sobre o arquivo. • Informações típicas: Nome do arquivo, tamanho em bytes, data e hora da criação, identificação do usuário que criou, lista de controle de acesso, local físico do disco onde o arquivo foi colocado, etc.
Tabela de Descritores de Arquivos • Descritores de Arquivos são armazenados no próprio disco: • Mesma partição • Problema de desempenho: • Acesso ao descritor de arquivos é lenta. • Solução é manter descritor em memória enquanto o arquivo estiver em uso. • Sistema de Arquivos mantém os descritores de arquivos em memória em uma estrutura de dados do SO: • Tabela de descritores de arquivos abertos (TDAA).
Tabelas de Arquivos Abertos por Processos • Informações relacionadas a arquivos são de dois tipos: • Não variáveis enquanto o arquivo estiver em uso. (Ex.: Nome do arquivo). • Dependem do processo que está acessando o arquivo.(Ex.: posição corrente). • Informações dependentes do processo são armazenados em uma tabela àparte mantida pelo processo (TAAP): • Posição corrente no arquivo, tipo de acesso e apontador para a entrada correspondente na TDAA. • Entrada na TAAP serve para referenciar o arquivo.
Gerenciamento do dispositivo de armazenamento • Problema: arquivos devem ser armazenados no disco! • Pontos as serem tratados: • Relação n° de setores do disco que compõem um bloco • Alocação de blocos no disco • Recuperação de blocos liberados • Localização de dados no disco • Existe uma relação entre a política de alocação e a política de espaço livre.
Encadeada Indexada Alocação de Espaço em Disco • Como colocar em espaço em disco de forma que os arquivos sejam armazenados de forma eficiente e que permita acesso rápido • Alocar blocos livres suficientes para armazenar o arquivo • Blocos lógicos do disco são enumerados sequencialmente • Duas formas básicas: • Contígua • Não-contígua
Alocação Contígua • Arquivo é uma sequênciade blocos lógicos contíguos alocados no momento da criação • Endereços no disco são lineares • Reduz necessidade de seek já que blocos estão na mesma trilha (no pior caso necessita apenas a troca do cilindro) • Arquivo é descrito através de uma entrada na forma: • Bloco físico inicial • Tamanho do arquivos em blocos
Problemas da Alocação Contígua • 1° Problema: encontrar espaço para um novo arquivo • Técnicas de Gerência de Memória • Gera Fragmentação Externa • 2° Problema: determinar o espaço necessário para um arquivo • Arquivos tendem a crescer, e se não houver espaço contíguo disponível? • Pré-alocar um espaço máximo para o arquivo • Fragmentação Interna
Alocação Encadeada • Soluciona os problemas de alocação contígua • Relação e dimensionamento do tamanho e crescimento de arquivos • Alocação é baseada em uma unidade de bloco lógico • Análogo à paginação • 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
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 qualquer implica em percorrer a lista encadeada • Afeta o desempenho • Confiabilidade • Erro pode provocar a leitura\escrita em bloco pertencente a outro arquivo
File Allocation Table - FAT • Variação de alocação encadeada. • FAT é uma tabela de encadeamento de blocos lógicos. • Uma entrada na FAT para cada bloco lógico do disco. • Composta por um ponteiro (endereço do bloco lógico). • Arquivo é descrito por uma seqüência de entradas na FAT, cada entrada apontando para a próxima entrada.
Esquema de Funcionamento da FAT • Desvantagem principal é o tempo de seek
Alocação Indexada • Busca resolver o problema de “ponteiros espalhados” pelo disco que a alocação encadeada provoca. • Mantém, por arquivo, um índice de blocos que o compõem. • O índice é mantido em um bloco. • Diretório possui um ponteiro para o bloco onde está o índice associado a um determinado arquivo.
Prós e contras da Alocação Indexada • 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 suportadas pelo bloco: • Muito pequeno (limita o tamanho do arquivo) • Muito grande (desperdiça espaço em disco) • Solução é utilizar dois tamanhos de blocos, um para o índice e outro para dados.
Diretório • Problema: Quantidade de arquivos implica necessidade de organizá-los. • Sistema de Arquivos oferece duas formas de organização: • Partição • Diretório • Partição divide um disco em discos lógicos • No mínimo uma em um sistema; • Onde “residem” os arquivos e diretórios.
Diretórios • Diretórios são arquivos responsáveis por manter a estrutura do Sistema de Arquivos. • Organização • Operações
Diretórios • Organização pode ser feita das seguintes maneiras: • Nível único (Single-level); • Dois níveis (Two-level); • Hierárquica.
Diretórios – Nível único • Apenas um diretório contém todos os arquivos diretório raiz (rootdirectory). • Computadores antigos utilizavam esse método, pois eram monousuários. • Exceção: CDC 6600 supercomputador que utilizava-se desse método, apesar de ser multiusuário. • Vantagens: • Simplicidade • Eficiência
Diretório raiz A A B C Diretórios – Nível único • 04 arquivos. • Três diferentes proprietários. • Desvantagens: • Sistemas multiusuários: Diferentes usuários podem criar arquivos como mesmo nome; • Exemplo: • Usuários A e B criam, respectivamente, um arquivo mailbox; • Usuário B sobrescreve arquivo do usuário A.
Diretório raiz Diretório do usuário A B C A A B C C C Arquivos Diretórios – Dois níveis • Cada usuário possui um diretório privado. • Sem conflitos de nomes de arquivos. • Procedimento de login:identificação. • Compartilhamento de arquivos programas executáveis do sistema. • Desvantagem: • Usuário com muitos arquivos.
Diretórios – Hierárquico • Hierarquia de diretórios árvores de diretórios; • Usuários podem querer agrupar seus arquivos de maneira lógica, criando diversos diretórios que agrupam arquivos; • Sistemas operacionais modernos utilizam esse método.
Diretório raiz Diretório do usuário A B B B C C A A B B C C C C C Sub-diretórios do usuário C C Arquivos Diretórios – Hierárquico
Diretórios – Caminho (path name) • O método hierárquico requer métodos pelos quais os arquivos são acessados. • Dois métodos diferentes: • Caminho absoluto (absolute path name); • Caminho relativo (relative path name);
Diretórios – Caminho (path name) • Caminho absoluto: consiste de um caminho a partir do diretório raiz até o arquivo; • É ÚNICO; • Funciona independentemente de qual seja o diretório corrente; • Ex.: • UNIX: /usr/ast/mailbox; • Windows: \usr\ast\mailbox;
Diretórios – Caminho (path name) • Diretório de Trabalho (workingdirectory) ou diretório corrente (currentdirectory). • Caminho relativo é utilizado em conjunto com o diretório corrente. • Usuário estabelece um diretório como sendo o diretório corrente; nesse caso caminhos não iniciados no diretório raiz são tido como relativos ao diretório corrente; • Exemplo: • cp /usr/ast/mailbox /usr/ast/mailbox.bak • Diretório corrente: /usr/ast cp mailbox mailbox.bak
Diretórios – Caminho (path name) • “.” diretório corrente; • “..” diretório pai (anterior ao corrente); • Ex.: diretório corrente /usr/ast: cp ../lib/dictionary . cp /usr/lib/dictionary . cp /usr/lib/dictionary dictionary cp /usr/lib/dictionary /usr/ast/dictionary
Diretórios – Operações • Create;Delete • Opendir; Closedir • Readdir • Rename • Link (um arquivo pode aparecer em mais de um diretório) • Unlink
Implementação do Sistema de arquivos - Layout • Arquivos são armazenados em discos. • Discos podem ser divididos em uma ou mais partições, com sistemas de arquivos independentes. • Setor 0 do disco é destinado ao MBR – Master Boot Record; que é responsável pela a tarefa de boot do computador. • MBR possui a tabela de partição, com o endereço inicial e final de cada partição. • BIOS lê e executa o MBR.
Implementação do Sistema de arquivos - Layout • Tarefas básicas do MBR (pode variar dependendo do SO): • 1ª localizar a partição ativa; • 2ª ler o primeiro bloco dessa partição, chamado bloco de boot (boot block); • 3ª executar o bloco de boot ; • Layout de um Sistema de Arquivos pode variar; mas a idéia geral é a seguinte:
Disco Partições Tabela de partição MBR Boot Super bloco Gerenc. de Espaço livre Raiz Arquivos Diretórios I-nodes Contém parâmetros (tipo do SA, número de blocos) sobre o sistema de arquivos e é carregado na memória Implementação do Sistema de arquivos - Layout
Disco Partições Tabela de partição MBR Boot Super bloco Gerenc. de Espaço livre Raiz Arquivos Diretórios I-nodes Contém informações sobre os blocos livres do disco (mapa de bits ou lista encadeada) Implementação do Sistema de arquivos - Layout