Sistemas Operacionais II Prof. Fernando Freitas Sistemas de Arquivos 6.1 Arquivos 6.2 Diretórios 6.3 Implementação do sistema de arquivos 6.4 Exemplos de sistemas de arquivos Material adaptado de: TANENBAUM, Andrew S. Sistemas Operacionais Modernos. 2ª edição. Disponível em: http://www.prenhall.com/tanenbaum_br Algumas partes deste material foram atualizadas com base na 3ª edição deste livro. 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 sobreviver ao término do processo que a usa 3. Múltiplos processos devem ser capazes de acessar a informação concorrentemente 2
Arquivos Unidades lógicas de informação criadas por processos A parte do SO que trata dos arquivos e seu gerenciamento é conhecida como Sistema de Arquivos. 3
Nomeação de Arquivos A nomeação de arquivos é o meio que permite um arquivo ser encontrado após sua criação. Admite uma quantidade variável de caracteres (1 a 255 dependendo do SO), podendo ser case-sensitive ou não Composto por 2 partes: nome e extensão A extensão pode indicar algo sobre o arquivo, ou pode simplesmente servir para lembrar o usuário sobre o tipo de arquivo q ele possui (depende do SO) 4
Nomeação de Arquivos Extensões típicas de arquivos 5
Estrutura de Arquivos Três tipos de arquivos a) Seqüência de bytes SO não conhece arquivo. Programas de usuário é que dizem seu significado. + flexível (Unix e Windows) b) Seqüência de registros operações de R/W em registros. Usado com sistemas de cartões perfurados c) Árvore Usado em computadores de grande porte. O SO decide onde armazenar os arquivos com base no campo chave. 6
Tipos de Arquivos Arquivos regulares são arquivos que contêm informação do usuário. São em geral arquivos ASCII ou binários. ASCII constituídos por linhas de texto. Possuem carriage return ou line feed no fim de cada linha. Podem ser mostrados e impressos como são, além de poderem ser editados com um editor de texto. Binário Possuem uma estrutura interna conhecida apenas pelos programas que o usam. Apesar de serem uma sequência de bytes, devem possuir um formato apropriado. 7
Tipos de Arquivos (a) Um arquivo executável (b) Um repositório (archive) 8
Acesso sequencial Acesso aos Arquivos lê todos os bytes/registros desde o 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 9
Atributos de Arquivos Atributos ou metadados são informações extras sobre cada arquivo como: tamanho, data de modificação, etc. A lista de atributos que um arquivo pode ter, varia de SO para SO. 10
Atributos de Arquivos Possíveis atributos de arquivos 11
Operações com Arquivos 1. Create 2. Delete 3. Open 4. Close 5. Read 6. Write 7. Append (write no fim do arquivo) 8. Seek 9. Get attributes 10.Set Attributes 11.Rename 12
Exemplo de um Programa com Chamadas ao Sistema para Arquivos 13
Diretórios Sistemas de Diretório em Nível Único Um sistema de diretório de nível único contém 4 arquivos propriedades de 3 pessoas diferentes, A, B e C Usado antigamente e em sistemas embarcados 14
Sistemas de Diretórios Hierárquicos Um sistema de diretório hierárquico Facilita na organização do trabalho Utilizado por quase todos os sistemas de arquivos modernos 15
Caminho Absoluto Único Inicia no diretório raiz Caminho Relativo Nomes de Caminhos Inicia com base no diretório atual Separador de níves Windows: \ Linux: / Multics: > Entradas especiais aceitas. diretório atual.. diretório pai Criadas juntamente com o diretório Uma árvore de diretórios UNIX 16
Operações com Diretórios 1. Create 2. Delete 3. Opendir 4. Closedir 5. Readdir 6. Rename 7. Link 8. Unlink 17
Implementação do Sistema de Arquivos Um possível layout de sistema de arquivo Bloco de boot Carrega o SO Superbloco Dados dos arquivos (tipo, nº blocos, etc) i-nodes Arranjo de ED que diz tudo sobre arquivo. 1 por arquivo. 18
Implementação de Arquivos (1) Alocação Contígua (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 Simples Problema com fragmentação quando disco cheio Muito usado na era das fitas magnéticas e abandonado por alguns anos Ideal para CD-ROM s e DVD s importância de estudar sistemas antigos 19
Implementação de Arquivos (2) Alocação por lista encadeada Evita problema da fragmentação Acesso aleatório é muito lento Ponteiros ocupam espaço em disco 20
Implementação de Arquivos (3) Alocação por lista encadeada usando tabela na memória Resolve o problema da lista encadeada Toda a tabela de ligações deve estar na memória o tempo todo Inviável em discos grandes Conhecido como FAT (File Allocation Table) 21
Implementação de Arquivos (4) I-nodes (Nó índice) Funcionamento semelhante ao FAT Resolve o problema de ocupar muita memória Tamanho máximo igual a nº arquivos abertos ao mesmo tempo x nº de bytes do i-node Problema se i-node tiver nº fixo de endereços no disco Um exemplo de i-node 22
Implementação de Diretórios (1) (a) Um diretório simples (Windows) entradas de tamanho fixo endereços de disco e atributos na entrada de diretório (b) Diretório no qual cada entrada se refere apenas a um i-node (Unix) 23
Implementação de Diretórios (2) Duas formas de tratar nomes longos de arquivos em um diretório (a) Em linha (b) Em uma área temporária (heap) 24
Arquivos Compartilhados (1) Conveniente em alguns casos Problema de manter arquivo consistente Solução i-node Problema ao excluir B pode referenciar um arquivo errado Ligação simbólica (link) Não possui o problema de referência a arquivo inválido Problema com sobrecarga conferindo link Problema com backup várias cópias 25
Arquivos Compartilhados (2) (a) Situação antes da ligação (b) Depois de a ligação ser criada (c) Depois de o proprietário original remover o arquivo 26
Sistemas de Arquivos Estruturados com base em log Com CPUs mais rápidas, memórias maiores caches de disco também podem ser maiores número maior de requisições de leitura pode ser atendido pelo cache assim, a maioria dos acessos a disco serão para escrita A estratégia LFS estrutura o disco todo como um log inicialmente todas as escritas são armazenadas na memória periodicamente todas são escritas no fim do log em disco - tudo misturado cada segmento do log possui um sumário quando um arquivo é aberto, localiza i-node, e encontra os blocos limpador = buffer circular controle complexo, mas recompensado 27
Sistemas de Arquivos Journaling Apesar do LFS ser uma idéia interessante, não é usado por questões de incompatibilidades como outros Sistemas de Arquivos. Mas a idéia de log se tornou a base para os sistemas do tipo Journaling A idéia é registrar toda operação em log, antes de realmente fazê-la, facilitando a recuperação em caso de falha. Após a operação ser concluída a entrada é excluída do log Requisitos: operações idempotente e transação atômica Sistemas NTFS, ext3 e ReiserFS são do tipo journaling 28
Sistemas de Arquivos Virtuais Existem vários tipos de sistemas de arquivos, e um ou mais deles podem estar presentes no mesmo computador ou até no mesmo SO: Ex: ISO9660 (CD-ROM), NTFS (C:), FAT32 (Pen drive) Como não há interesse em tornar estes sistemas compatíveis, surgiu a idéia de criar um Sistema de Arquivo Virtual (VFS) para integrar estes sistemas. Para fazer este trabalho, VFS possui uma interface superior (processos do usuário) e uma inferior (arquivos do sistema) 29
Sistemas de Arquivos Virtuais 30
Exercícios 1. Cite e comente 3 operações com diretórios. 2. Cite as vantagens e desvantagens da alocação contígua e da alocação por lista encadeada. 3. Cite as vantagens e desvantagens da alocação por lista mapeada na memória e por i-node 4. Comente sobre os dois tipos de ligações existentes. Comente sobre as vantagens e desvantagens de cada um. 5. Comente sobre: a. Sistemas de arquivos baseado em log b. Sistemas de arquivo journaling c. Sistemas de arquivo virtual 31
Gerenciamento do Espaço em Disco (1) Tamanho do bloco Muito grande desperdício de espaço Muito pequeno desperdício de tempo Para determinar o tamanho do bloco é fundamental saber a média de tamanhos dos arquivos Estudos tem demonstrado que blocos de 1 a 4 KB são ideais. Contudo com discos ultrapassando 1 TB, a tendência é que estes blocos sejam aumentados para 64 KB, aceitando o desperdício de espaço. 32
Gerenciamento do Espaço em Disco (2) 33
Gerenciamento do Espaço em Disco (3) As curvas se cruzam com um tamanho de bloco próximo a 64 KB. Neste ponto a taxa de dados é de 6,6 MB/s e a eficiência de espaço é de cerca de 7%. 34
Gerenciamento do Espaço em Disco (4) Monitoramento dos blocos livres Lista encadeada Lista de todos os blocos livres 32 bits por bloco Ocupa mais espaço na maioria dos casos, exceto quando o disco estiver quase cheio Se disco pouco fragmentado, pode representar conjunto de blocos com a ajuda de um contador Mapa de bits Mapa com 1 bit para cada bloco do disco 1 bit por bloco 35
Gerenciamento do Espaço em Disco (5) a) Armazenamento da lista de blocos livres em uma lista encadeada b) Um mapa de bits 36
Gerenciamento do Espaço em Disco (6) Cotas de disco São utilizadas para limitar o espaço em disco ocupado por utilizadores ou grupos evita que um pequeno número de utilizadores ocupe grande parte do espaço em disco. existe duas formas de configurar cotas para utilizadores: através do nº de inodes através do nº de blocos Cada utilizador possui um limite flexível (pode ser excedido durante a sessão) e um limite estrito (nunca serão excedidos gera erro quando isto tentar ocorrer) 37
Gerenciamento do Espaço em Disco (7) Cotas para controlar o uso do disco por usuário 38
Cópia de Segurança do Sistema de Arquivos (1) Dados são mais valiosos do que hardware Backups podem evitar tragédias e tem baixo custo se comparado com os custos da perca de dados Backups servem pra lidar c/ 2 tipos de situações: Desastres Grande bobagem Backups demandam tempo e espaço. Deve-se considerar: Copiar tudo ou somente partes? Fazer cópias completas ou apenas incrementais? Comprimir os dados antes de copiar ou não? Parar o sistema para cópia ou não? Snapshot - extrai descrição atual do Sistema de Arquivos É seguro contra roubo, incêndio, etc? 39
Cópia de Segurança do Sistema de Arquivos (2) Existem duas estratégias possíveis: Cópia física Simples Algoritmos livres de erros Completa (até demais) Cópia lógica Cópia de arquivos e diretórios específicos Fácil restauração de arquivos 40
Confiabilidade do Sistema de Arquivos (1) Um sistema de arquivos a ser copiado Os quadrados são diretórios e os círculos são arquivos Os itens sombreados foram modificados desde a última cópia Cada diretório e arquivo rotulado por seu número de i-node 41
Confiabilidade do Sistema de Arquivos (2) Mapas de bits usados pelo algoritmo de cópia lógica (ou dump lógico) a) Todos os diretórios e todos os arq. Modificados b) Retira os diretórios não modificados da lista c) Copia os diretórios e os remove da lista d) Copia os arquivos marcados na lista 42
Consistência do Sistema de Arquivos Verificações de Consistência por: Bloco Tabela de ocupado Tabela de livres Arquivo Contagem de presença dos arquivos nos diretórios comparada com contagem dos i-nodes. Verificações de questões de segurança para evitar desastres Permissão do arquivo (privilegiando usuários externos) Arquivos com permissão de administrador 43
Consistência do Sistema de Arquivos Estados do sistema de arquivos a) consistente b) bloco desaparecido c) bloco duplicado na lista de livres d) bloco de dados duplicados (cópia p/ resolver) 44
Desempenho do Sistema de Arquivos Leituras no disco podem ser de dezenas a milhares de vezes mais lentas do que na memória. Por isso muitos sistemas de arquivos possuem algumas técnicas para melhorar o desempenho do disco. 45
Desempenho do Sistema de Arquivos (1) Cache de Blocos ou cache de buffer Consiste em manter blocos do disco na memória para melhorar o desempenho Problemas: O bloco é essencial para a consistência do sistema de arquivos? Caches de escrita direta (windows baseados em discos flexíveis) Sync (unix) FlushFileBuffers (atuais windows) Quem substituir? LRU 46
Desempenho do Sistema de Arquivos (1) As estruturas de dados da cache de buffer 47
Desempenho do Sistema de Arquivos (2) Leitura antecipada de blocos Consiste em tentar antecipar a leitura de blocos ainda não solicitados Vantagens Se utilizado leituras sequênciais, melhora o tempo de resposta Desvantagens Em sistemas de acesso aleatório, além de não melhorar o desempenho, esta técnica ainda sobrecarrega os barramentos com transferências não solicitadas 48
Desempenho do Sistema de Arquivos (3) Redução do movimento do braço do disco Consiste em tentar agrupar dados em um mesmo cilindro para evitar posicionamentos extras no braço do disco 49
Desempenho do Sistema de Arquivos (3) I-nodes colocados no início do disco Disco dividido em grupos de cilindros cada qual com seus próprios blocos e i- nodes 50
Desfragmentando discos Quando o SO é instalado, os arquivos são contíguos, e estão armazenados logo após os arquivos de instalação do SO Com o passar do tempo, devido a criação e exclusão de arquivos o disco fica fragmentado O processo de desfragmentação ajuda a melhorar o desempenho Consiste em mover blocos fragmentados de forma a tornálos contíguos o máximo possível Alguns arquivos não podem ser desfragmentados. Ex: Log de Journaling 51
Exemplos de Sistemas de Arquivos Sistemas de Arquivos para CD-ROM Sistemas simples somente leitura ISO 9660 Adotado em 1988 Setores de 2352 bytes (bruto), 2048 bytes (líquido) Entrada de diretórios tem tamanho variável com duas codificações little-endian e big-endian. Entradas são organizadas alfabeticamente, exceto pelas entradas. e.. Nível máximo de profundidade = 8 52
Exemplos de Sistemas de Arquivos Sistemas de Arquivos para CD-ROM Possui 3 níveis Nível 1 Nomes de arquivos = 8 + 3 caracteres Nomes de diretórios = 8 caracteres Arquivos contíguos Máxima compatibilidade Nível 2 Nomes de 31 caracteres Nível 3 Permite que arquivos sejam divididos em seções contíguas 53
Exemplos de Sistemas de Arquivos Sistemas de Arquivos para CD-ROM A entrada de diretório ISO 9660 Flags Contém bits que indicam por exemplo se é uma entrada de arquivo ou diretório CD # Indica em qual CD um arquivo se encontra Nome-base Letras, dígitos e _. Até 8 caracteres. Manter compatibilidade DOS Ext Letras, dígitos e _. Até 3 caracteres Preenchimento Fixa as entradas de diretórios em um nº par de bytes Uso do Sistema Uso variado de sistema para sistema 54
Extensões Rock Ridge Extensão criada pela comunidade UNIX para reduzir as restrições do ISO 9660 Composta por: PX: atributos de permissão r, w e x PN: permite que dispositivos sejam representados em CD. Ex: conteúdo de /dev SL: Ligações simbólicas NM: Nome alternativo de arquivo, respeitando o padrão ISO 9660 CL, PL, RE: Em conjunto, driblam artificialmente o limite de 8 níveis de profundidade imposto pelo ISO 9660 TF: Timestamp de cada i-node Unix (tempo de criação, de última modificação e último acesso) Juntas, estas extensões permitiam que um sistema de arquivos Unix fosse copiado para um CD e restaurado sem perda de informações em outro sistema 55
Extensões Joliet Extensão criada pela Microsoft para reduzir as restrições do ISO 9660 (que por sinal se devem em grande parte ao MS-DOS) Praticamente todos os programas que rodam sob Windows e usam CD suportam extensões Joliet Composta por: Nomes de arquivos longos (até 64 caracteres) Conjuntos de caracteres unicodes (útil em países que não adotem o alfabeto latino Grécia, Japão, etc). Profundidade superior a 8 níveis Nomes de diretórios com extensões (ainda não usado) 56
O Sistema de Arquivos MS-DOS (1) Primeiro sistema a ser utilizado nos PC s da IBM Principal sistemas de arquivos no Windows 98 e ME Windows 2000, XP e Vista o suportam, mas não é mais padrão Ele e uma de suas extensões (FAT-32) se tornaram amplamente utilizados em ambientes embarcados, como por exemplo Ipod s, Câmeras digitais, etc, portanto sendo ainda muito utilizado atualmente. Utilizam o sistema FAT (FAT-12, FAT-16 e FAT-32) para alocação de arquivos na memória e também para controle de blocos livres 57
O Sistema de Arquivos MS-DOS (2) A entrada de diretório do MS-DOS Atributos: Indicam se um arquivo é somente leitura, se é do sistema, se é oculto, etc. Tempo: Indica tempos de criação e modificação em valores aproximados de 2 seg. Data: Indica data de criação e modificação. Terá problemas a partir do ano 2108. 58
O Sistema de Arquivos MS-DOS (3) KB Tamanho máximo de partição para diferentes tamanhos de bloco As caixas vazias representam combinações proibidas FAT-12: Até 4 partições por disco, logo discos de até 64 MB FAT-16: Até 4 partições por disco, logo discos de até 8 GB 59
O Sistema de Arquivos do UNIX V7 (1) Uma entrada de diretório do UNIX V7 60
O Sistema de Arquivos do UNIX V7 (2) Atributos de um i-node: Data de criação, modificação e último acesso Permissões de usuário, grupo e outros Contador do número de entradas de diretórios Monitoração de blocos em disco Diretamente no i-node (10 primeiros endereços) Bloco indireto simples Bloco indireto duplo Bloco indireto triplo 61
O Sistema de Arquivos do UNIX V7 (3) Um i-node UNIX 62
O Sistema de Arquivos do UNIX V7 (4) Os passos para localizar /usr/ast/mbox No Unix, o i-node para o diretório raiz fica em um local fixo do disco 63
Exercícios 1. O que deve ser levado em conta no gerenciamento de disco. Comente. 2. Diferencie Cópia Física e Lógica 3. O que são as extensões joliet e rock-ridge. 4. Cite algumas estratégias para melhorar o desempenho em sistemas de arquivos. 64