Sistemas Operacionais II Prof.ª Inara Santana Ortiz Aula 3 Sistema de Arquivos Acesso aos Arquivos Sistema de Arquivos – Acesso aos arquivos Os primeiros SOs forneciam apenas um tipo de acesso aos arquivos: Acesso sequencial. Nesse sistemas, um processo poderia ler todos os bytes ou registros em um arquivo, partindo do início, mas nunca saltando e lendo fora de ordem. Eram convenientes quando o meio de armazenamento era fita magnética em vez de disco. Sistema de Arquivos – Acesso aos arquivos Quando os discos começaram a ser usados para armazenamento de arquivo, tornou-se possível ler bytes ou registros fora da ordem em que apareciam no disco: Acesso aleatório. Sistema de Arquivos Implementação de Arquivos Sistema de Arquivos – Implementação de arquivos Alocação de Espaço em Disco A criação de arquivos exige que o sistema operacional tenha controle de quais áreas ou blocos no disco estão livres e este controle é realizado através de uma estrutura (geralmente lista ou tabela) de dados que armazenam informações e possibilitam ao sistema de arquivos gerenciar o espaço livre. Três métodos básicos existem para a alocação de arquivos em disco: ● Alocação contígua ● Alocação encadeada ● Alocação indexada Alocação contígua Sistema de Arquivos - Alocação contígua Alocação contígua Consiste em armazenar um arquivo em blocos sequencialmente dispostos. Neste tipo, o sistema localiza um arquivo através do endereço do primeiro bloco e da sua extensão em blocos. O acesso é bastante simples. Seu principal problema é a alocação de novos arquivos nos espaços livres, pois para colocar n blocos é necessário que se tenha uma cadeia com n blocos dispostos sequencialmente no disco. Sistema de Arquivos - Alocação contígua Alocação contígua Sistema de Arquivos - Alocação contígua Vantagem ● ● Fácil de implementar e acessar o arquivo; Desempenho é excelente pois o arquivo inteiro pode ser lido do disco em um única operação; Desvantagem ● ● ● Com o tempo o disco fica fragmentado Para haver alocação, deve-se conhecer o tamanho máximo do arquivo no momento em que ele é criado; Se houver posteriormente a necessidade e extensão do arquivo, um solução é a pré-alocação, mas pode ocorrer que parte do espaço alocado fique ocioso por um longo tempo. Sistema de Arquivos - Alocação contígua Estratégia de alocação Quando o sistema operacional deseja alocar espaço para um novo arquivo, pode existir mais de um segmento livre disponível com o tamanho exigido e é necessário que alguma estratégia de alocação seja adotada para selecionar qual segmento deve ser escolhido. Sistema de Arquivos - Alocação contígua Analisaremos as três principais estratégias: ● ● ● First-fit: o primeiro segmento livre com tamanho suficiente para alocar o arquivo é selecionado. A busca na lista é sequencial, sendo interrompida tão logo se encontre um segmento adequado. Best-fit: seleciona o menor segmento livre disponível com tamanho suficiente para armazenar o arquivo. A busca em toda a lista se faz necessária para a seleção do segmento, a não ser que a lista esteja ordenada por tamanho. Worst-fit: o maior segmento é alocado e a busca por toda a lista se faz necessária, a menos que exista uma ordenação por tamanho. Sistema de Arquivos - Alocação contígua Sistema de Arquivos - Alocação contígua Independente da estratégia utilizada, a alocação apresenta um problema chamado fragmentação de espaços livres. O problema pode se tornar crítico quando um disco possuir blocos livres disponíveis, porém sem um segmento contíguo onde o arquivo possa ser alocado. Sistema de Arquivos - Alocação contígua Deve ser feito a desfragmentação periodicamente (visando que este problema seja resolvido) para reorganizar os arquivos no disco a fim de que exista um único segmento de blocos livres. Há um grande consumo de tempo neste processo e tem efeito temporário. Alocação Encadeada Sistema de Arquivos - Alocação Encadeada Alocação Encadeada O arquivo é organizado como um conjunto de blocos ligados no disco, independente de sua localização física e cada um deve possuir um ponteiro para o bloco seguinte. O que ocorre neste método é a fragmentação de arquivos (quebra do arquivo em diversos pedaços denominados extents) o que aumenta o tempo de acesso ao arquivo, pois o disco deve deslocar-se diversas vezes para acessar todas as extents. Sistema de Arquivos - Alocação Encadeada Alocação Encadeada Vantagem ● ● Nenhum espaço é perdido É suficiente guardar apenas o endereço em disco do primeiro bloco, o restante pode ser encontrado a partir dele. Desvantagem ● O acesso aleatório é extremamente lento. Para chegar ao bloco n, o SO, a partir do inicio, deve ler n-1 blocos antes dele. ● Os ponteiros ocupam alguns bytes do bloco. ● Leitura somente sequencial. Sistema de Arquivos - Alocação Encadeada Alocação Encadeada Alocação Indexada Sistema de Arquivos - Alocação Indexada Alocação Indexada O princípio desta técnica é manter os ponteiros de todos os blocos de arquivos em uma única estrutura denominada bloco de índice ou nó índice (inode). Além de permitir o acesso direto aos blocos do arquivo, não utiliza informações de controle nos blocos de dados como existe na alocação encadeada. Sistema de Arquivos - Alocação Indexada Alocação Indexada Sistema de Arquivos - Alocação Indexada Alocação Indexada A principal desvantagem deste método é o desperdício de bloco para ponteiro: Um arquivo que use 2 blocos precisa de um bloco a mais para os ponteiros – na realidade utiliza 3 blocos; Além de um gerência mais complexa. Conceito de Inode Sistema de Arquivos - Inode Cada arquivo armazenado nos sistema de arquivo do Linux ocupa uma determinada área do disco. O Linux coloca um endereço nessa área, para determinar facilmente a posição do arquivo no disco. Este endereço é chamado Inode. O inode, portanto, serve para identificar os dados de um arquivo e alguns atributos (datas, tamanho, permissões, etc). Observe que o diretório também é um arquivo para o Linux. Portanto, ele possui um inode próprio. Referências Leitura Recomendada Livro: Sistemas operacionais - Editora do Livro Técnico Autor: Marcos Aurélio Pchek Laureano e Diogo Roberto Olsen Livro: Sistemas Operacionais Modernos – Editora Pearson Autor: Andrew S. Tanenbaum Capítulo 4