Capítulo 5 Sistemas de Arquivos



Documentos relacionados
Capítulo 6 Sistemas de Arquivos

Sistemas de Arquivos. Sistemas Operacionais - Professor Machado

Funções de um SO. Gerência de processos Gerência de memória Gerência de Arquivos Gerência de I/O Sistema de Proteção

Sistemas Operacionais

SOP - TADS Sistemas de Arquivos Cap 4 Tanenmbaum

Capítulo 6. Gerenciamento de Arquivos. 6.1 Arquivos 6.2 Diretórios 6.3 Implementação (6.3.1 a 6.3.6) 6.4 Exemplos

Sistemas de Ficheiros. Ficheiros Diretórios Implementação de sistemas de ficheiros Exemplos de sistemas de ficheiros

BC Sistemas Operacionais Sistema de Arquivos (aula 10 Parte 2) Prof. Marcelo Z. do Nascimento

Sistemas Operacionais 3º bimestre. Dierone C.Foltran Jr.

Sistemas Operacionais: Sistema de Arquivos

Capítulo 6 Sistemas de Arquivos

Sistemas Operacionais Arquivos. Carlos Ferraz Jorge Cavalcanti Fonsêca

Fundamentos de Sistemas Operacionais

Sistemas Operacionais

Unix: Sistema de Arquivos. Geraldo Braz Junior

Estrutura Interna do KernelUNIX Sistema O. Estrutura Interna de Arquivos (1) Estrutura Seqüência. User application. Standard Unix libraries

Sistemas Operacionais

Sistema de Arquivos. Ambientes Operacionais. Prof. Simão Sirineo Toscani

Fundamentos de Arquivos e Armazenamento Secundário

Fundamentos de Sistemas Operacionais. Sistema de Arquivos. Prof. Edwar Saliba Júnior Março de Unidade Sistemas de Arquivos

Sistema de Arquivos EXT3

GERENCIAMENTO DE DISPOSITIVOS

UFRJ IM - DCC. Sistemas Operacionais I. Unidade IV Sistema de arquivos. Prof. Valeria M. Bastos Prof. Antonio Carlos Gay Thomé 13/06/2012 1

Sistemas de Informação. Sistemas Operacionais 4º Período

Sistemas de Arquivos. Arquivos e Diretórios Características e Implementação Tadeu Ferreira Oliveira - tadeu.ferreira@ifrn.edu.br

Sistemas de Ficheiros. 1. Ficheiros 2. Directórios 3. Implementação de sistemas de ficheiros 4. Exemplos de sistemas de ficheiros

implementação Nuno Ferreira Neves Faculdade de Ciências de Universidade de Lisboa Fernando Ramos, Nuno Neves, Sistemas Operativos,

Sistema de Arquivos FAT

Capacidade = 512 x 300 x x 2 x 5 = ,72 GB

Sistemas de Arquivos

SISTEMAS OPERACIONAIS

Armazenamento Secundário. SCE-183 Algoritmos e Estruturas de Dados II

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

Acadêmicos: Luís Fernando Martins Nagata Gustavo Rezende Vinícius Rezende Santos

Sistemas de Arquivos. Sistemas de arquivos: Mecanismos para armazenamento on-line e acesso de dados e programas.

FACENS Engenharia Mecatrônica Sistemas de Computação Professor Machado. Memória Armazenamento Sistema de Arquivos

Sistemas Operacionais. Prof. André Y. Kusumoto

Sistemas de Arquivos. André Luiz da Costa Carvalho

Sistemas Operacionais. Roteiro. Introdução. Marcos Laureano

AULA 16 - Sistema de Arquivos

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

Sistemas de Arquivos NTFS

Gerência do Sistema de Arquivos. Adão de Melo Neto

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Sistemas de Arquivos. Gerenciamento de Espaço em Disco

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

ROM-BIOS Inicialização Sistemas de Arquivos Formatação

SISTEMAS OPERACIONAIS. Sistemas de Arquivos Apostila 09

BC Sistemas Operacionais

TÓPICO 7. Gerência de Arquivos

Sistemas Operacionais. Andrique Amorim Gerência de Arquivos

Aula 01 Visão Geral do Linux

Sistemas Operacionais Arquivos

Sistemas Operacionais

Sistemas Operacionais Gerência de Dispositivos

Plano da aula de hoje

Arquitetura de Sistemas Operacionais

Estruturas de Armazenamento e Indexação. Rafael Lage Moreira Barbosa

Introdução a Informática. Prof.: Roberto Franciscatto

Organização de Arquivos

Curso de Instalação e Gestão de Redes Informáticas

Sistemas Operacionais

Exercícios de revisão V2. FAT: 300 GB / 2KB = 150MB X 8 bytes (64 bits / 8) = 1.2GB

Aula 3. Sistemas Operacionais. Prof: Carlos Eduardo de Carvalho Dantas

ACL Linux. O que são ACLs e por que usá-las?

AULA 5 Sistemas Operacionais

6 - Gerência de Dispositivos

Arquitetura de Computadores. Sistemas Operacionais IV

29/06/ :30 Leite Júnior QUESTÕES CESPE BACKUP

Backup. Permitir a recuperação de sistemas de arquivo inteiros de uma só vez. Backup é somente uma cópia idêntica de todos os dados do computador?

AVALIAÇÃO À DISTÂNCIA 1 GABARITO

Capítulo 11: Implementação de Sistemas de Arquivos. Operating System Concepts 8 th Edition

Sistemas de Arquivos NTFS, FAT16, FAT32, EXT2 e EXT3

SW DE E/S INDEPENDENTE DE DISPOSITIVO

Introdução à Computação: Sistemas de Computação

Sistemas Operacionais

Crash recovery é similar ao instance recovery, onde o primeiro referencia ambientes de instância exclusiva e o segundo ambientes parallel server.

Notas da Aula 17 - Fundamentos de Sistemas Operacionais

Sistema de Ficheiros

O AMBIENTE DE TRABALHO DO WINDOWS

SISTEMA DE ARQUIVOS. Instrutor: Mawro Klinger

A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande

Arquitetura dos Sistemas Operacionais

Gerenciamento de Entrada e Saída Hélio Crestana Guardia e Hermes Senger

Algoritmos e Programação _ Departamento de Informática

Capítulo 6 Sistemas de Arquivos

Periféricos e Interfaces Ano lectivo 2003/2004 Docente: Ana Paula Costa. Aula Teórica 11

Revisão Aula Explique a MBR(Master Boot Record)

Disciplina: Sistemas Operacionais - CAFW-UFSM Professor: Roberto Franciscatto

Memória Cache. Prof. Leonardo Barreto Campos 1

Memória Virtual. Prof. Dr. José Luís Zem Prof. Dr. Renato Kraide Soffner Prof. Ms. Rossano Pablo Pinto

SIMULADO Windows 7 Parte V

FAT32 ou NTFS, qual o melhor?

SISTEMAS DE ARQUIVOS Sistemas operacionais

>>> OBJETIVOS... === FHS - Filesystem Hierarchy Standard. === Sistemas de arquivos e Partições

Índices* Professora Rosane Minghim. * Baseado no material de Leandro C. Cintra e M. C. F. de Oliveira. Fonte: Folk & Zoelick, File Structures.

Procedimentos para Reinstalação do Sisloc

Transcrição:

Capítulo 5 Sistemas de Arquivos Papel do Sistema de Arquivos Arquivos Diretórios Implementação do sistema de arquivos Exemplos de sistemas de arquivos 1 Armazenamento da Informação a Longo Prazo 1. Deve ser possível armazenar uma quantidade muito grande de informação 2. A informação deve persistir ao término do processo que a usa 3. Múltiplos processos devem ser capazes de acessar a informação concorrentemente Arquivo= abstração para dados persistentes Diertório = abstração para agrupamento de dados 2 1

Sistema de Arquivos é usado para controlar como os dados são armazenados e recuperados. gerencia o acesso tanto ao conteúdo de arquivos e como dos metadados sobre esses arquivos. é responsável por organizar o espaço de armazenamento; garante confiabilidade e eficiência no acesso, e tuning no que diz respeito ao armazenamento físico. Um Sistema de arquivos é gerido por operações nativas do SA (chamadas de sistema) e por utilitários de sistema Por exemplo, para inicializar, modificar parâmetros, remover/ adicionar espaço físico, verificar a integridade do SA, compactação, etc. 3 Sistema de Arquivos Controle de acesso ao dados: Por determinados usuários/grupos ou por programas específicos: para garantir uma manipulação correta de meta-dados (senhas, bits de permissão, listas de controle de acesso, etc.) Manter a integridade dos dados Garantir que as estruturas de dados mantém-se consistentes, independente da ação de um ou mais programas (terminados inesperadamente ou sem avisar que terminaram). Ou então falhas na mídia de armazenamento, falhas no sistema operacional, etc. Inclui atualização dos meta-dados, as entradas de diretório, ou dados que haviam sido bufferizados mas ainda não atualizados no dispositivo Auto-reparo de estruturas de dados incompletas e/ou inconsistentes Loging de operações e eventos para para facilitar a identificação de problemas no sistema de arquivo 4 2

Sistema de Arquivos Um Sist. de arquivos pode estar contido em uma partição de um disco local, ou então estar em uma disk image (um grande arquivo de um Sist. Arquivos hospedeiro), ou ainda em partição no disco de outro computador e acessível pela rede (NFS/samba). disk image SA hospedeiro Computador Computador Computador A Computador B 5 Questões de Sist.Arquivos Questões sobre as abstrações (de arquivos/diretórios): Como arquivos são acessados e estruturados? Como arquivos são identificados e nomeados? Quais são seus atributos? Como é definido e gerenciado o controle de acesso? Operações possíveis? Semântica de arquivos especiais Questões relacionadas à implementação: Como mapear blocos lógicos para setores do disco? Como garantir um compartilhamento mantendo a consistência? Como implementar diretórios? Como maximizar o desempenho no acesso a arquivos/ diretórios? Manter a informação sobre espaço disponível? 6 3

Camadas do sistema de arquivos Sistema lógico de arquivos e diretórios Gerenciamento de espaço livre Acesso básico a blocos Controle de E/S disco Um Sistema de Arquivos (AS) é um conjunto de tipos abstratos de dados que são implementados para o armazenamento, a organização hierarquica, a manipulação, navegação, acesso e recuperação de dados. 7 Nome, Tipo e Extensão Extensão: apenas uma convenção X determinado pelo Sist. Arquivos? Muitas ferramentas (make, compiladores) se baseiam nessa convenção. Quando é obrigatório, pode limitar a flexibilidade. 8 4

Estrutura de Arquivos Três tipos de arquivos: a) seqüência de bytes b) seqüência de registros c) Registros organizados em arvore (AVL, árvores B, ) 9 Tipos de Arquivo em UNIX Regular ASCII (data/ text) ou com conteúdo binário (p.ex. executável ou dados cifrados) Diretório de sistema, apenas para manter a estrutura do SA Arquivos especiais de caractere - abstração de E/S serial (discos, terminais, impressoras, rede,pipes, sockets) Arquivos especiais de bloco abstração de E/S de disco (HD, CD-ROM, DVD, etc.) 10 5

Tipos de Arquivos É executável? Tamanho segmentos Endereço main() Mapeamento dos segmentos para memória Para Deputação (a) Um arquivo executável (b) Um repositório (archive) 11 Acesso aos Arquivos Acesso sequencial lê todos os bytes/registros a partir do início não pode saltar ou ler fora de seqüência conveniente quando o meio era a fita magnética Acesso aleatório bytes/registros lidos em qualquer ordem essencial para sistemas de bases de dados ler pode ser mover marcador de arquivo (seek), e então ler ou ler e então mover marcador de arquivo Obs: em SA modernos, a maioria dos arquivos são de acesso aleatório. 12 6

Atributos de Arquivos (meta-dados) Atributos são metadados contendo informações para acesso e gerência dos arquivos. 13 Operações com Arquivos 1. Create 2. Delete 3. Open 4. Close 5. Read 6. Write 7. Append 8. Seek 9. Get attributes 10. Set Attributes 11. Rename 14 7

Descritores de Arquivo O Descritor de Arquivo (FileDescriptor) é a referência para um arquivo/dispositivo de E/S em uso por um processo. 15 Associação entre Descritores e Device Drivers 16 8

Exemplo de um Programa com Chamadas ao Sistema para Arquivos 17 Diretórios games attributes inbox attributes news attributes work attributes games inbox news work attributes attributes attributes attributes Estrurura de dados com atributos Ao abrir um arquivo, procura-se no diretório, atributos e endereço são copiados para uma Tabela de Arquivos Abertos (Open file table). Em futuros acessos, não é necessário acessar novamente o diretório. 19 9

Atributos de Arquivos Independente do seu conteúdo cada arquivo (convencional e especial) contém atributos associados a ele, que são armazenados nos diretórios. 20 Sistemas de Diretórios Hierárquicos Em diretórios hierárquicos, não há limite para o nr. de níveis de aninhamento, e arquivo é referenciado através de um caminho (path), e.g. /usr/ast/mailbox Cada processo, possui um diretório corrente (process work directory - pwd) Arquivos podem ser referenciados usando caminhos absolutos (/usr/src/ servers), ou relativos ao diretório corrente (src/servers) Define-se um nome especial para diretório corrente e diretório imediatamente acima. Em Unix. (dot) e.. (dotdot) 23 10

Exemplos Sistema de Arquivos do Unix (BSD) Sistema de Arquivos do System V4 24 Operações com Diretórios 1. Create 2. Delete 3. Opendir 4. Closedir 5. Readdir 6. Rename 7. Link 8. Unlink Antes de ler ou alterar um diretório, ele precisa ser aberto. Ao final, deve ser fechado. operacão link é a forma de criar atalhos (referências adicionais ) para arquivos. chamda unlink remove um arquivo de um diretório. Se o arquivo só tem referência de um único diretório, então um unlink remove o Arquivo. Obs: Cópia de arquivos é feita por programa utilitário (cp do UNIX) 26 11

Exemplo: Parte de programa que lista o conteúdo de um diretório. 27 Camadas do sistema de arquivos Sistema lógico de arquivos e diretórios Gerenciamento de espaço livre Acesso básico a blocos Controle de E/S disco Um Sistema de Arquivos (AS) é um conjunto de tipos abstratos de dados que são implementados para o armazenamento, a organização hierarquica, a manipulação, navegação, acesso e recuperação de dados. 28 12

Bloco de disco: unidade de alocação de espaço (em disco) Um arquivo é composto de uma sequência de blocos de mesmo tamanho (# bytes) O disco é um vetor de blocos, cada um com um endereço único (endereço lógico do bloco) O endereço lógico é traduzido para (cilindro, trilha, setor) 29 Organizacão de Partições no disco Fig.: Estrutura de cada partição no disco Uma das partições é a ativa Ao inciar, o BIOS (firmware ROM) lê e executa código no Master Boot Record (MBR), acha a partição ativa (de boot), depois carrega e executa o bloco de inicialização (boot block) dessa partição O boot block contém código que faz o carregamento do restante do Sistema operacional Um i-node é um bloco especial (File Control Block -FCB) do Unix, que contém os atributos de um arquivo e os endereços dos blocos que constituem o arquivo. 30 13

Estrutura da Partição Boot block/partition Boot sector Informações necessárias para carregar o sist.operacional a partir desta partição Superblock/ Master File Table Quantidade e tamanho dos blocos Contador e ponteiro de blocos livres Contador e ponteiros para os FileControlBlocks (i-nodes) Seção de i-nodes contém um vetor de FileControlBlocks (um para cada arquivo ou diretório) Diretório raiz Nomes e atributos de sub-diretórios da raiz Blocos com arquivos e diretórios 31 Sist de Arquivos Virtuais (Virtual File System) É um nivel de abstração em cima de um sistema de arquivos específico, que permite o acesso uniforme a diferenetes sistemas de arquivos pelos processos. A interface de chamadas (API) uniforme é mapeada para a API de Sistema de Arquivo concreto. A uniformidade do acesso permite o uso conjunto e interoperável de sistemas de arquivos (Unix, Windows, Mac). Em um VFS, cada arquivo é representado por um v-node. Cada v- node aponta para um FCB (i-node) 32 14

Caches mantidos em memória pelo kernel 33 Estruturas de Dados mantidos em Memória Objetivos: melhorar o desempenho do acesso ao disco, e permitir compartilhamento de arquivos por processos Tabela de partições montadas Cache de Diretórios: diretórios acessados recentemente SystemFileTable: (por processo) para todos os arquivos abertos, cada entrada tem um pointeiro para um v-node e um offset (posição corrente no arquivo) OpenFileTable: cada entrada contém informacões sobre o v-node o endereço do i-node,e o tamanho do arquivo (entrada para cada arquivo aberto por qualquer processo) Tabela de descritores de arquivo (por processo): com ponteiros para a SystemFileTable 34 15

Estuturas de dados em memória Cache de Diretórios open Read/write Tabelas em memória Ope rati ng Sys tem Con cep ts User mode Kernel mode 36 16

Mount de Sistemas de Arquivos Permite que dois sistemas de arquivos sejam combinados e pareçam ser parte de um mesmo sistema mount( /dev/fd0, /mnt, 0) Questões de Implementação de arquivos Principais Questões: Como são armazenados arquivos/informações de diretório nos blocos do disco? Como é feito o mapeamento de arquivos para blocos de disco? Como saber em qual bloco de disco está determinado dado/registro do arquivo? Como o espaço livre no disco é gerenciado? Existem diversas maneiras de alocar blocos (do disco) a um arquivo ou diretório. 38 17

Implementação de Arquivos 1. Cada arquivo é um conjunto contíguo de blocos de dados. (+) Implementação simples e bom desempenho (todo arquivo é lido em uma única operação) (-) O tamanho máximo do arquivo precisa ser conhecido no momento da criação. (-) Há desperdício de espaço em disco já que geralmente o tamanho do arquivo é menor do que o tamanho-máximo. Figura: (a) Alocação contígua do espaço em disco para 7 arquivos (b) Estado do disco depois dos arquivos D e E terem sido removidos 39 Implementação de Arquivos (de tamanho variável) 2. Lista encadeada de blocos físicos em disco Primeira palavra de cada bloco é um ponteiro (endereço de disco) para o próximo bloco da lista (+) Todos os blocos podem ser usados (não há fragmentação externa) (-) Adequado para acesso sequencial, mas pouco eficiente para acesso aleatório Diretório Name1 name2 40 18

Exemplo: Lista encadeada 41 Implementação de Arquivos: FAT 3. Lista encadeada usando uma tabela de alocação de arquivos em memória RAM (MS-DOS & Windows) Idéia principal: colocar os ponteiros em uma tabela de índices (em memória) (+) (a) O bloco físico só contém dados ; (b) acesso randômico não requer vários acessos ao disco (-) requer muitos acessos ao disco, a menos que toda a tabela esteja em memória (para discos com muitos blocos pode ser um problema) Arquivo A: usa blocos (4, 7, 2, 10, 12) Indice corresponde ao endereço do bloco no disco 42 19

Implementação de Arquivos: Alocação Indexada Todos os endereços de blocos são mantidos em um bloco de índice (index block). index table 43 Implementação de Arquivos: Indexação Multi-nível Quando o número de blocos do arquivo ultrapassa o número de endereços que cabem um index block Entrada do diretório aponta para o início do índice mais externo O endereço físico do registro (ou byte) no bloco precisa ser calculado Entrada de diretório block1 block2 block3 Bloco de Indice 1º. Nivel (indice externo) Blocos de indice de 2o. Nivel (Tabela de Indice) Blocos do Arquivo 44 20

Exemplo: cálculo de endereço na alocação indexada de 2 níveis Suponhamos que o bloco tenha capacidade de 512 bytes, e que cada endereço de bloco ocupe 4 bytes. (= 128 endereços em cada bloco de indice) Ou seja, arquivo poderá ter até 128 2 blocos. (endereço do registro) / (128 x 128) Q 1 R 1 Q 1 = entrada no bloco de 1 o nivel (índice externo), IE(Q 1 ) = End. do Bloco de indice 2 o nivel, digamos T R 1 é usado da seguinte forma: R 1 / 128 Q 2 R 2 Q 2 = índice da entrada no bloco de 2o nivel, T(Q 2 ) = End. Bloco de dados correspondente, digamos, B R 2 offset no bloco B, B+ R 2 = endereço do registro no disco 45 Implementação de Arquivos: Indexação Multi-nível Principal desvantagem: o overhead para acesso a um registro é igualmente alto tanto para arquivos pequenos, como para arquivos grandes. Seria bom ter uma forma de alocação que agilizasse o acesso a arquivos pequenos (a grande maioria) Ideia: os primeiros blocos de um arquivo podem ter uma indexação direta (um ponteiro de nível 1) 46 21

O i-node de UNIX i-node = estrutura de dados com atributos, 12 endereços diretos de blocos e 3 endereços de blocos de índice (single, double, triple indirect) 48 i-node = estrutura de dados contendo: Atributos do arquivo, 12 endereços diretos de blocos e 3 endereços de blocos de índice (single, double, triple indirect) O i-node de UNIX 49 22

Indexação Multi-nível usando i-node Assumindo que cada bloco de índice consegue armazenar 32 endereços Endereçamento direto: para arquivos perquenos (até 12 blocos) Single indirect: para arquivos de até 12+32 blocos Double indirect: para arquivos de até 12+32+ 32*32 blocos Triple indirect: para arquivos de até 12+32+ 32*32 + 32*32*32 blocos 50 Implementação de Diretórios FCB ou i-node (a) Com entradas completas entradas de tamanho fixo endereços de blocos de disco e atributos na entrada de diretório (b) Cada entrada contém o endereço do FCB (ou i-node) correspondente 51 23

Implementação de Diretórios Em alguns Sist. de Arquivos, não existe um FCB (ou i-node) e a própria entrada do diretório contém vários endereços lógicos de bloco (exemplo de uma entrada de diretório no CP/M) U(1) File name (8) Ext (3) E(1) Cont(1) Endereço de Blocos (15) Legenda: U = Id do usuário dono do arquivo E = número de sequência da entrada (para grandes arquivos) Count = contador do número de endereços de blocos contidos nessa entrada (n) = Quantidade de bytes usados Note: Arquivos grandes (com > 16 blocos) precisam de mais de uma entrada de diretórios. 52 Implementação de Diretórios Em MS-DOS: Cada entrada contém um índice para a File Allocation Table (FAT), que corresponde ao 1º. Bloco (entrada não precisa mais manter os endereços de bloco) Nomes limitados a 8 caracteres e extensões a 3 caracteres Também contém atributos de permissão de acesso (A) para o usuário (do tipo R/W/X), data&hora (D, T) de criação/ modificação e tamanho do arquivo File name (8) Ext (3) A(1) Reserved(10) T(1) D(1) FAT-idx(2) Size(4) Como permitir nomes de arquivos/diretórios de tamanho abtritrário? 53 24

Implementação de Diretórios Duas formas de armazenar nomes de arquivos (de tamanho variável) em um diretório (a) Em linha (b) Em uma área temporária (heap) 54 Implementação de Diretórios Em UNIX (no FS ext2): O i-node é o objeto que representa tanto um arquivo como um (sub) diretório. Cada entrada do diretório contém um nome (string ASCII de tamanho variável), e um número (endereço) de i-node; Este número é um índice para uma entrada do vetor de i-nodes (na seção da partição correspondente), Atributos são armazenados no i-node (juntamente com os endereços de blocos de disco) File name length 55 25

Posix inode inode do Posix contém seguintes atributos: File size Device ID (que contém o arquivo) User ID do dono Group ID Permissões 3 timestamps (inode change time, última modificação do arquivo, último acesso do arquivo) Contador de hard links Endreços de blocos Obs: 57 Busca por nomes em Diretórios Busca linear pode ser lenta (para diretórios com muitas entradas/arquivos) Alternativas: Aplicar uma função de hash sobre o nome hash por diretório Resultado seria o indice da entrada Desvantagem: Gerenciamento um pouco mais complexo Guardar em cache os resultados recentes 26

Resolução de Nomes com i-nodes Abrir arquivo X de diretório Y: 1. obter o i-node do bloco Y que contém informação de Y; 2. acessar o bloco Y (*) 3. procurar lá pelo nome X, e 4. obter o iinode de X (*) (*) será cacheado Seek(d)+Read no arquivo X: Pegar o i-node do cache; Calcular o bloco correspondente ao deslocamento (d) Copiar o bloco para memória bloco Y Outro processo abre arquivo Z de Y: Acessar bloco Y no cache: 1. procurar lá pelo nome X, e 2. obter o inode de X 59 Resolução de Nomes usando i-nodes Dado um caminho (path name), precisa-se acessar o i-node para esse nome Como. e.. também possuem entradas no diretório, a resolução de nomes absolutos e relativos funciona exatamente da mesma forma. Para nomes relativos, simplesmente, inicia-se se a partir do diretório corrente Exemplo: resolução de /usr/ast/src 60 27

Arquivos Compartilhados (1) Fig. Sistema de arquivo contendo arquivo compartilhado (por symbolic link) 62 Links Simbólicos O FCB (i-node) também mantém a informação de quantos links simbólicos estão apontando para o arquivo ou diretório. Remoção só é efetuada quando o valor desse contador chega a 0. Fig.: (a ) Situação antes da ligação; (b) Depois de a ligação ser criada e (c) Depois de o proprietário original remover o arquivo o mesmo arquivo pode conter vários nomes (em diferentes diretórios) Cada i-node precisa ter pelo menos um link; senão, será removido assim que todos os processos que o usavam tiverem terminado). 63 28

Gerenciamento de Espaço em Disco Arquivos são compostos de blocos de tamanho fixo (definindo na formatação), espalhados pelo disco Bloco grande è menor utilização do espaço em disco (maior desperdício de espaço) Bloco pequeno è maioria dos arquivos consistirá de muitos blocos (aumenta tempo de acesso) Disco é organizado em setor, trilha e cilindro Cada setor contém certo numero de blocos Tempo de acesso a um bloco é dominado pelo tempo de busca e do atraso rotacional ( 10 1 ms). O tempo de transferência dos dados (disco <-> memória) é desprezível Exemplos de tamanhos de bloco em diversos Sistemas: UNIX : 1KB MS-DOS: de 512 bytes a 32 KB (dependendo do tamanho da partição, mas existe a restrição de # máximo de blocos por partição ser 2 16 ) 65 Gerenciamento do Espaço em Disco Fig: Testes para arquivos de tamanho 2KB A curva contínua (escala no lado esquerdo) mostra a taxa transferência de dados de um disco A linha tracejada (escala no lado direito) mostra a eficiência de ocupação do disco 66 29

Gerenciamento do Espaço Livre em Disco Implementações mais comuns: Lista ligada (a) ou bit map (b) Lista ligada: blocos livres são usados como blocos de índices com endereços de vários outros blocos livres (e.g. se tam-bloco=1kb e endereços de 32 bits, então 1 bloco pode conter 255 endereços + endereço do próximo bloco de índice) Bit maps : devem estar em memória, mas podem também estar contidos em blocos bit-map (1 bloco pode manter 8 K de bits) 67 Integridade do Sistema de Arquivos Com o tempo, sistema de arquivos pode desenvolver alguns problemas como: capacidade de disco esgotada, pode: causar problemas fazer com que o sistema todo falhe corromper o sistema de arquivo, causado talvez com uma queda de energia novos objetos não podem ser mais criados Monitorar e checar o sistema de arquivo de pode ajudar a evitar tais problemas 70 30

Integridade do Sistema de Arquivo - o uclitário df df [opt] [directories Descrição Mostra a informação de uclização do disco para sistemas de arquivo montados e diretórios. Opções Frequentemente Usadas - h mostra o resultado em formato mais legível com sufixos como M (megabyte) e G (gigabyte). (human- readble) - i mostra informação de inode ao invés de uso de memoria 71 Exemplos espaço de disco uclizado no sistema de arquivo: Estado de uclização de inodes: 72 31

Integridade do Sistema de Arquivo fsck [opcons] [- t type] [fs- opcons] filesystems Descrição Verifica se filesystems contém erros e opcionalmente corrigi eles. Opções usadas - t type especifica o Cpo de sistema de arquivo. - A executa todos os sistema de arquivos especificado em / etc/fstab. A intenção é u>lizar este comando em tempo de boot, antes dos filesystems serem montados. c checa por blocos ruins, com defeito. - f força a checagem, mesmo o sistema de arquivo parecendo limpo. - p automa>camente repara o sistema de arquivo sem o promp>ng. - y sempre responde sim para o prompt intera>vo. 73 Confiabilidade do Sistema de Arquivos Backups Dados são um bem muito valioso na Era da Informação! Meios de armazenamento sujeitos a defeitos de fabricação e a problemas de desgaste Controladora de disco consegue detectar um bloco defeituoso e usar espaço sobressalente no setor Backups são demorados e requerem muito espaço (em fita, ou outro meio) Nem todo disco precisa/deve ser copiado. Exemplo: Programas executáveis Arquivos especiais (dispositivos de E/S) Blocos defeituosos (marcados pela controladora) Backups incrementais (economia de espaço vs maior tempo de recuperação) Para recuperar, precisa-se voltar ao mais recente backup completo e re-executar as modificações dos backups incrementais Backups durante a operação do sistema? Cópia de estruturas de dados críticas e marca que futuras atualizações em arquivos e diretórios sejam espelhadas na unidade de backup (fita). 74 32

Backup físico vs lógico Duas estratégias para copiar o disco para fita: backup físico e backup lógico Backup físico Copia todos os blocos utilizados do disco Simples e rápido, mas não permite cópia incremental e nem exclusão de alguns diretórios (p.ex. /dev) Blocos defeituosos: se a controladora de disco suprimir (do ger. de blocos ) os blocos defeituosos, backup funcionará bem, senão programa de backup deverá ler lista/tabela de blocos defeituosos, para evitar tentar copiar um bloco defeituoso travar Não há necessidade de copiar blocos livres (precisa-se ter acesso a lista de blocos livres) Backup físico vs lógico Backup lógico Percorre recursivamente a árvore do Sistema de arquivos, fazendo a cópia de tudo que mudou desde último backup Primeiro, todas as informações necessárias para recriar a arvore de diretórios são gravadas na fita (i-nodes, diretórios e atributos) No final, são gravados os blocos dos arquivos modificados (backup incremental) Inf. de diretórios (mesmo não modificados) que ficam no caminho entre a raiz e cada arquivo modificado. è permitem recriar todos os arquivos modificados exatamente no lugar em que estavam e com seus atributos originais Como a lista de blocos livres não é copiada, precisa ser recriada quando o sistema de arquivos é recriado a partir do backup 33

Confiabilidade do Sistema de Arquivos Backups Exemplo: Um sistema de arquivos a ser copiado Legenda: quadrados = diretórios; círculos = arquivos Os itens sombreados foram modificados desde último backup 77 Backups lógicos incrementais Mapas de bits usados na cópia lógica (ou dump lógico) para poder recuperar todo o sistema de arquivos (com atributos e permissões originais, etc.): (a) Copia tudo, só não copia arquivos não modificados (b) Copia o conteúdo todo de qq diretório subraiz em que alguma coisa foi modificada (c) Copia apenas os sub-diretórios em que houve alguma modificação (d) Só copia os elementos (arquivos/diretórios) que sofreram alguma modificação (informação de atributos não é preservada) 78 34

Verificação da consitência de blocos fsck ou scandisk fazem também a verificação da consitência dos blocos em disco (percorrendo todos os i-nodes) Possíveis estados do sistema de arquivos a) consistente b) bloco ausente (desperdício de disco) c) bloco duplicado na lista de livres (solução: reconstruir lista de blocos livres) d) bloco de dados duplicados (solução: duplicar o bloco) 79 Exemplo fsck 80 35

Lidando com a latência de acesso ao disco Acesso a memória: 10 ns/byte Leitura ao disco: 10 MB/s => 400 ns/byte + 10 ms para buscar a trilha Por isso, guarda-se em cache (em memória RAM), os i- nodes e blocos recentemente (ou mais) acessados Para garantir a consitência do SA em disco, precisa-se gravar prioritariamente (blocos críticos), que são: i-nodes modificados Blocos com infomação de diretório modificada Blocos de índice modificados Bit map (ou lista ) de blocos livres 81 Cache de blocos e i-nodes Compromisso entre eficiência de acesso versus coerencia da infomação no disco Cache de blocos em Memória Partição de disco vetor de i-nodes i-node Bloco (inf. diretorio, indice, ou de dados) 82 36

Cache de blocos Least recently used (mais antigo) Most recently used (mais recente) Como há milhares de blocos no cache, uma tabela hash é necessária para localizar rapidamente um bloco (para acesso ao seu conteúdo): Aplica-se uma função de hash sobre o par (nome-partição,#bloco) Tabela hash tem lista de todos blocos no cache com mesmo valor de hash. Como acesso ao disco é mais demorado, pode-se manter a lista ordenada por tempo de último acesso (LeastRU) ou acesso mais frequente (MostRU), facilitando assim uma politica de substrituição de blocos (escolha do bloco a ser escrito de volta para disco). Mas, se os blocos críticos forem posicionados final da fila, deve demorar muito para que sejam escritos em disco. Isso é um problema! 83 Cache de blocos Least recent (mais antigo) Most recent (mais recente) Ou seja, precisa-se tratar blocos críticos de forma diferenciada, levando a um algoritmo LRU diferenciado que leva em conta: se bloco será utilizado em breve (e.g. improvável para i-nodes) se o bloco é critico? Abordagem: Blocos são divididos em categorias: i-node, blocos de indice, blocos de diretórios, blocos cheios com dados, e blocos incompletos com dados Blocos que provavelmente não serão acessados em breve, ficam no início da fila LRU (em vez do final) Blocos com alta chance de serem usados em breve (blocos parcialmente completos) são colocados no final da fila 84 37

Cache de blocos Mas também blocos de dados não devem permanecer muito tempo no cache Abordagem UNIX: Chamada de sistema synch: todos os blocos modificados (no cache) são escritos em disco Programa utilitário, update, a cada 30 segundos chama synch! Desvantagem: há um período de tempo em que o sistema de arquivos está vulnerável a falhas do sistema (e discos não podem ser removidos antes de executar synch) Abordagem Windows: Bloco é gravado em disco assim que é modificado (cache de escrita direta: write-through) Vantagem: Disco está sempre sincronizado Desvantagem: Se o substistema de E/S não utilizasse buffers (p/ acumular todos os caracteres de uma linha antes da escrita), cada escrita de caracter causaria um acesso ao disco! 85 Cache de blocos cópia antecipada Outra técnica para melhorar o desempenho do acesso a disco é a cópia antecipada de blocos para a cache: Sempre que um bloco k de um arquivo é acessado, verifica-se se o k +1 já está em cache, e se não está, copia-se esse também. Só vale a pena para arquivos que estejam sendo acessados sequencialmente. Para acesso aleatório, a copia antecipada geralmente não compensa. Sist. de Arquivo deve ficar monitorando o padrão de acesso aos arquivos e tentar identificar aqueles que sempre são acessados sequencialmente. Portanto,a cópia antecipada é uma estratégia opcional para determinado tipo de arquivos. 86 38

Melhorando o Desempenho do acesso ao disco Acesso ao arquivo: acesso ao i-node + cópia do bloco. Se i-node e bloco estiverem longe um do outro, isso aumenta a latência de movimentação do braço de disco Localização especial dos i-nodes. Em vez de tê-los no início do disco, melhor no meio do disco Disco dividido em grupos de cilindros cada qual com seus próprios blocos e i-nodes, e lista de blocos livres 87 Controle de Acesso Há diferenças entre o controle de acesso a diretórios e arquivos. O controle da criação/eliminação de arquivos nos diretórios, visualização do seu conteúdo e eliminação do próprio diretório são operações que também devem ser protegidas. Existem diferentes mecanismos e níveis de proteção e para cada tipo de sistema um modelo é mais adequado do que o outro. 39

Tipos de Acesso Leitura Gravação Execução Eliminação Qualquer tipo de operação em que o arquivo possa ser visualizado, como a exibição de seu conteúdo, edição ou cópia de um novo arquivo Alteração no conteúdo do arquivo, como inclusão ou alteração de registros. Associado a arquivos executáveis ou arquivos de comandos, indicando o direito de execução do arquivo. Permissão para se eliminar um arquivo. Senha de Acesso Usuário precisa ter conhecimento da senha Cada arquivo possui apenas uma senha, o acesso é liberado ou não na sua totalidade. Não é possível especificar quais tipos de operações podem ou não ser concedidas Outra desvantagem é a dificuldade de compartilhamento já que todos os demais usuários deveriam ter conhecimento da senha. 40

Grupos de Usuários Os usuários são organizados em grupo com objetivo de compartilhar arquivos entre si. Implementa três tipos de proteção: owner (dono), group (grupo) a all (todos) e na criação do arquivo é especificado quem e o tipo de acesso aos três níveis de proteção. Em geral, somente o dono ou usuários privilegiados é que podem modificar a proteção dos arquivos. Lista de Controle de Acesso Access Control List ACL consiste em uma lista associada a cada arquivo onde são especificados quais os usuários e os tipos de acesso permitidos. O tamanho desta estrutura pode ser bastante extenso se um arquivo tiver seu acesso compartilhado por diversos usuários. Existe um overhead adicional devido a pesquisa seqüencial que o sistema deverá realizar na lista sempre que solicitado. É possível encontrar tanto a proteção por grupos de usuários quanto pela lista de acesso oferecendo uma maior flexibilidade ao mecanismo de proteção. 41