BC 1518 - Sistemas Operacionais Sistema de Arquivos (aula 10 Parte 2) Prof. Marcelo Z. do Nascimento 1
Estrutura do Sistema de Arquivo Gerência de espaço em disco Roteiro Cópia de segurança do sistema de arquivo Confiabilidade Desempenho do SA Leituras Sugeridas 2
Estrutura do Arquivo Estrutura do Sistema de Arquivo Unidade de Armazenamento Lógica Coleção de informações relacionadas Sistema de arquivos reside em armazenamento secundário (discos). Sistema de arquivos organizado em camadas. Bloco de Controle de Arquivo (File control block) estrutura de armazenamento contendo informações sobre um arquivo. 3
Estrutura do Sistema de Arquivo Bloco de controle de arquivo típico 4
Sistema de Arquivos Virtuais Virtual File Systems (VFS) tenta integrar diferentes sistemas de arquivos em uma estrutura ordenada; A ideia principal é abstrair a parte comum aos diferentes sistemas e colocar o código em uma camada separada que chama o sistema de arquivos subjacentes para fazer o gerenciamento do dado. O VFS possui: uma interface superior com os processo de usuário. São as chamadas (system call) como open, read, etc. Também há uma interface inferior com os arquivos de um sistema de arquivo denominada por interface VFS. 5
Sistema de Arquivos Virtuais 6 Sistemas Operacionais
Sistema de Arquivos O VFS define quatro objetos básicos: Virtuais Objeto INODE que armazena informações gerais sobre um arquivo específico (bloco de controle de arquivo). Cada objeto inode é associado a um número inode, que identifica de forma única. Objeto Superbloco contém informações sobre um sistema de arquivos montado (corresponde ao bloco de controle do sistema de arquivos armazenado em disco). Objeto Dentry armazena informações sobre a linkagem de um diretório (isso é, o nome do arquivo) com o arquivo correspondente. Objeto File armazena informações sobre a interação entre um arquivo aberto e um processo. 7
Implementação de diretório Estruturas de dados que podem ser usadas : lista não ordenada: é simples novas entradas são inseridas onde houver uma vaga ou no fim arquivos removidos tem sua estrutura marcada como inválida exige uma pesquisa seqüencial para localizar um arquivo lista ordenada: há um pequeno custo para manter a lista ordenada a pesquisa é mais rápida tabela de dispersão (hash): a pesquisa é rápida e não é necessário manter a lista ordenada necessita de algoritmos mais complexos 8
Gerenciamento de espaço em disco O SO pode utilizar uma das duas estratégias possíveis para armazenar 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íguos blocos com tamanho fixo; A maioria dos sistemas de arquivos utilizam essa estratégia; ARQUIVO CRESCE Algo próximo ao que ocorre na memória. 9
Tamanho do bloco Gerenciamento de espaço em disco Qual é o tamanho ideal para um bloco? 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; O tamanho do bloco tem uma grande influência na eficiência de utilização e de acesso ao disco (desempenho). Exemplos: UNIX -> 1kB; MS-DOS -> 512 bytes a 32 kb; Tamanho do bloco depende do tamanho do disco; 10
Monitoramento dos blocos livres Contém a localização dos blocos livres; Lista encadeada de blocos; Gerenciamento de espaço em disco Última entrada da lista armazena um ponteiro nulo para indicar que não há mais lista de blocos livres; Vantagens: (a)requer menos espaço se existem poucos blocos livres (disco quase cheio); (b)armazena apenas um bloco de ponteiros na memória; Desvantagem: Precisa de mais espaço se houver um grande conjunto de blocos livres (disco quase vazio); 11
Monitoramento dos blocos livres Exemplo: Gerenciamento de espaço em disco 42 136 41 48 310 516 Lista 230 162 214 160 216 NULL Exemplo: Disco 16 Gb lista de 16.794 blocos 12
Mapa de bits: contém um bit para cada bloco do sistema de arquivos; Gerenciamento de espaço em disco Cada bloco pode armazenar número de 32 bits; Vantagem: o sistema de arquivo pode determinar rapidamente se há blocos contíguos disponíveis em certa localização; Desvantagem: Terá que pesquisar o mapa de bits inteiro para encontrar um bloco livre, resultando em sobrecarga de execução; 13
Gerenciamento de espaço em disco Bitmap 100110110110 011011011111 101011011011 011011011011 111011101110 110111110111 Blocos livres = 0 Blocos ocupados = 1 ou vice-versa; 14
Cópia de segurança do sistema de arquivo Danos causados ao sistema de arquivos podem ser desastrosos; Para um sistema de arquivos de um computador que estiver irrecuperavelmente perido, seja por causa de hardware ou software, a restauração da informação será muito difícil; Restaurar informações pode, e geralmente é, custoso, difícil e, em muitos casos, impossível; Sistemas de arquivos são projetados para proteger as informações de danos lógicos e não físicos; 15
Backups Cópias de segurança Cópia de segurança do sistema de arquivo Cópia de um arquivo ou conjunto de arquivos mantidos por questão de segurança; Mídia: normalmente fitas magnéticas; Razões : Recuperar de desastres: problemas físicos com disco; Recuperar de estupidez : usuários que acidentalmente apagam seus arquivos; Alguns SOs criam um diretório conhecido como Lixeira (diretório especial recycle bin): arquivos apagados são armazenados nesse diretório; 16
Estratégias utilizadas para backup: Física: a cópia se inicia no bloco 0 e termina somente no último bloco (independentemente se existem ou não arquivos nesses blocos); Desvantagens: Cópia de segurança do sistema de arquivo Copia blocos ainda não utilizados; Possibilidade de copiar blocos com defeitos; Difícil restaurar um determinado diretório; Vantagens: Simples; Deve-se fazer cópias de segurança de todo o sistema de arquivo ou parte dele? Fazer cópia apenas de diretórios específicos e de tudo que está neles; 17
Lógica: inicia-se em um diretório específico e recursivamente copia seus arquivos e diretórios; A idéia é copiar somente os arquivos (diretórios) que foram modificados; Cópias incrementais; Cópia de segurança do sistema de arquivo Cópia completa (semanal ou mensal) e fazer uma cópia diária somente dos arquivos modificados desde a última cópia completa. Vantagem: Facilita a recuperação de arquivos ou diretórios específicos; Forma mais comum de backup; 18
Cópia de segurança do sistema de arquivo Um sistema de arquivos a ser copiado (Ex. UNIX) 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 19
Cópia de segurança do sistema de arquivo 1 fase arquivos e diretórios modificados foram marcados; 2 fase - desmarca qualquer diretório que não tenha arquivos ou diretórios modificados dentro deles; 3 fase varrer os i-nodes e copiar todos os diretórios que estiverem marcados para cópia; 4 fase arquivos marcados são copiados; 20
Cópia de segurança do sistema de arquivo Mapas de bits usados pelo algoritmo de cópia lógica 21
Confiabilidade Inconsistência de dados Se o sistema cair antes que todos os blocos alterados tenham sido escritos, o sistema de arquivo pode ficar no estado inconsistente. Os SOs possuem diferentes programas utilitários para lidar com inconsistências: UNIX: fsck; Windows: scandisk; Técnicas que buscam utilizar a redundância interente do sistema de arquivos 22
FSCK (file system checker) baseado em blocos: O programa constrói 2 tabelas; Confiabilidade cada qual com um contador (inicialmente com valor 0) para cada bloco; Os contadores da 1 tabela registram quantas vezes cada bloco está presente em um arquivo; os contadores da 2 tabela registram quantas vezes cada bloco está presente na lista de blocos livres; 23
Confiabilidade FSCK (file system checker) baseado em blocos: Lendo o i-node, o programa constrói uma lista com todos os blocos utilizados por um arquivo (incrementa contadores da 1ª tabela); Lendo a lista de bloco livres, o programa verifica quais blocos não estão sendo utilizado (incrementa contadores da 2ª tabela); 24
Exemplo: 1º Caso 0 15 a) 1 1 0 1 0 1 1 1 1 0 0 1 1 1 0 0 0 0 1 0 1 0 0 0 0 1 1 0 0 0 1 1 Confiabilidade Blocos em uso Blocos livres Se problemas acontecerem, podemos ter as seguintes situações: OCUPA ESPAÇO 0 2 15 b) 1 1 0 1 0 1 1 1 1 0 0 1 1 1 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 1 1 Blocos em uso Blocos livres Defeito: Bloco perdido (missing block) Solução: colocá-lo na lista de livres 25
Exemplo: 2º Caso 0 15 a) 1 1 0 1 0 1 1 1 1 0 0 1 1 1 0 0 0 0 1 0 1 0 0 0 0 1 1 0 0 0 1 1 Confiabilidade Blocos em uso Blocos livres Se problemas acontecerem, podemos ter as seguintes situações: 0 4 15 b) 1 1 0 1 0 1 1 1 1 0 0 1 1 1 0 0 0 0 1 0 2 0 0 0 0 1 1 0 0 0 1 1 Blocos em uso Blocos livres Bloco duplicado na lista de livres Solução: reconstruir a lista 26
3º Caso 0 15 a) 1 1 0 1 0 1 1 1 1 0 0 1 1 1 0 0 0 0 1 0 1 0 0 0 0 1 1 0 0 0 1 1 Blocos em uso Blocos livres Se problemas acontecerem, podemos ter as seguintes situações: Mesmo bloco de dados em 2 0 5 arquivos 15 b) 1 1 0 1 0 2 1 1 1 0 0 1 1 1 0 0 0 0 1 0 1 0 0 0 0 1 1 0 0 0 1 1 Confiabilidade Blocos em uso Blocos livres Bloco duplicado na lista de em uso (dois arquivos) Problemas: - Se um arquivo for removido, o bloco vai estar nas duas listas; - Se ambos forem removidos, o bloco vai estar na lista de livres duas vezes; Solução: alocar um bloco livre, copiar para esse bloco o conteúdo do bloco 5, e inserir cópia em um dos dois arquivos; 27
Desempenho do SA Ler uma palavra na memória pode levar uns 10 ns, a leitura em um disco rígido pode chegar a 10 MB/s, que é 40 vezes mais lento; Problemas de desempenho no acesso a disco: Movimentação do disco; Movimentação do braço; Técnicas para otimizar o acesso: Caching; Leitura prévia de blocos; Reduzir a quantidade de movimentos do braço do disco; 28
Desempenho do SA Técnica mais utilizada para acesso ao disco: Cache de bloco ou buffer cache; Cache: um conjunto de blocos que pertencem logicamente ao disco, mas são colocados na memória para melhorar o desempenho do sistema (reduzir acesso em disco); Quando um bloco é requisitado, o sistema verifica se o bloco não está no cache: se estiver => o acesso é realizado sem necessidade de ir até o disco; caso contrário =>o bloco é copiado do disco para o cache; 29
Desempenho do SA Para se carregar um novo bloco no cache => poderá ser necessário remover um dos blocos, reescrevendo-o no disco caso tenha sido modificado; Necessidade de troca de blocos (semelhante à troca de páginas); Algoritmos empregados em memória paginada podem ser utilizados; O algoritmo mais utilizado é o LRU (least recently used); Algumas SO integram a cache de buffer e a cache de páginas da memória. 30
Desempenho do SA Importante: Não convém manter blocos de dados no cache por um longo tempo antes de escrevê-los de volta ao disco (modificado); SO realizam update dos blocos modificados para o disco de tempos em tempos; UNIX a cada 30 segundos; MS-DOS copia o bloco para o disco assim que ocorra uma modificação (cache write-through) 31
Desempenho do SA Leitura prévia do bloco: transferir os blocos para a cache antes de serem requisitados para aumentar a taxa de acertos; Essa estratégia só funciona quando os arquivos que estejam sendo lidos seqüencialmente; Arquivos aleatórios piora a situação, pois carrega blocos não usados e remove blocos potencialmente úteis da cache; 32
Desempenho do SA Redução do movimento do braço do disco: técnica que coloca os blocos que são mais prováveis de serem acessados próximos uns dos outros em seqüência (mesmo cilindro do disco); O gerenciamento do disco é feito por grupos de blocos consecutivos e não somente por blocos; 33
Desempenho do SA Para sistemas que utilizam os i-nodes, são necessários dois acessos: uma para o bloco e outro para o i-node; Três estratégias podem ser utilizadas para armazenamento dos i-nodes: Os i-nodes são colocados no início do disco; Os i-nodes são colocados no meio do disco; Dividir o disco em grupos de cilindros, nos quais cada cilindro tem seus próprios i-nodes, blocos e lista de blocos livres (bitmap); 34
Desempenho do SA 1. I-nodes colocados no início do disco 2. Disco dividido em grupos de cilindros cada qual com seus próprios blocos e i-nodes 35
Gerência de espaço em disco: Monitoramento de blocos livres Mapa de bits Sumário Cópia de segurança do sistema de arquivo: Backup físico e lógico Confiabilidade: Scandisk Desempenho do SA 36
Leituras Sugeridas Silberschatz, A., Galvin, P. B. Gagne, G. Sistemas Operacionais com Java. 7º edição. Editora Campus, 2008. TANENBAUM, A. Sistemas Operacionais Modernos. Rio de Janeiro: Pearson, 3 ed. 2010 37
Acesse o link abaixo: Notas de Aula http://hostel.ufabc.edu.br/~marcelo.nascimento/ Obrigado!!! 38