Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

110
Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais

Transcript of Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Page 1: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Mitsuo Takaki

Sistemas de ArquivosSistemas

Operacionais

Page 2: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Capítulo 6 – Sistemas de Arquivos

6.1 Arquivos6.2 Diretórios6.3 Implementação

Page 3: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Capítulo 6 – Sistemas de Arquivos

6.1 Arquivos6.2 Diretórios6.3 Implementação

Page 4: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Arquivos

• É um mecanismo de abstração.

• Oferece meios de armazenar e ler informações no disco.

– Deve ser feito de forma que o usuário não se atenha a detalhes de como isto é feito.

• Uma das características mais importantes é como os objetos são gerenciados e nomeados.

Page 5: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Nomeação de Arquivos

• Quando um processo cria um arquivo, um nome é dado a ele.

• Este arquivo pode ser posteriormente buscado pelo nome dado.

• As regras variam de SO para SO.

– No Unix os caracteres minúsculos e maiúsculos são diferentes.

Page 6: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Nomeação de Arquivos - Extensões

• No windows, a extensão determina o tipo de arquivo.

– JPEG, arquivo de imagens no formato JPEG.

– EXE, arquivo executável.

– C, arquivo fonte da linguagem C.

• É criada uma tabela de associação de formato a um programa para abrí-lo.

Page 7: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Nomeação de Arquivos - Extensões

• No Unix um arquivo pode ter qualquer extensão e mais de uma.

– As extensões servem apenas como dica do formato do arquivo.

– .tar.gz – já informa o usuário que o arquivo foi empacotado usando o tar e zipado usando o gz.

Page 8: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Nomeação de Arquivos - Extensões

• Alguns programas podem exigir arquivos em um determinado formato e uma determinada extensão.

– O gcc exige arquivos no formato .C ou .CPP.

• .c – arquivo fonte da linguagem C.

• .cpp – arquivo fonte da linguagem C++.

Page 9: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Estrutura de Arquivos

Page 10: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Estrutura de Arquivos

• Podem seguir uma estrutura pré-determinada.

• Ou podem ser apenas uma sequência de bytes (a).

– Esta é a forma mais usada.

– Quem determina o significado do arquivo é o programa que o abre.

– Os programas podem inserir qualquer dado sem se preocupar com nenhuma estrutura.

Page 11: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Estrutura de Arquivos

• Outra forma é utilizar registros de tamanhos fixos (b).

• Pode ser utilizada uma árvore de registros (c).

– Podem possuir diferentes tamanhos.

– Melhor tempo de busca de um determinado registro.

Page 12: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Tipos de Arquivos

• Arquivos regulares são arquivos que possuem informações do usuário.

• Diretórios são arquivos do sistema que mantém a estrutura dos arquivos do disco.

• Arquivos especiais de caracteres são relacionados a E/S.

– No linux: /dev/hda5• Representa o HD a, quinta partição.

Page 13: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Tipos de Arquivos

• São geralmente:

– ASCII, constituídos de linhas de texto.• Em alguns sistemas cada linha termina com um

caractere de carriage return.

• Em outros é usado o caractere de line feed.

• Em alguns, ambos são usados.

– Binário, possuem estrutura interna conhecida pelo programa que o usa.

Page 14: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Tipos de Arquivos

(a) Arquivo executável

(b) Repositório

Page 15: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Tipos de Arquivos – Binário Executável

• Só é executado se possui uma estrutura apropriada.

• Formado por cinco partes:

– Cabeçalho.

– Texto.

– Dados.

– Bits de relocação.

– Tabela de simbolos.

Page 16: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Tipos de Arquivos – Binário Executável

• O cabeçalho começa pelo número mágico.

– Número pré-determinado que o identifica como executável.

– Usado para impedir execução de arquivos que não estejam no formato adequado.

Page 17: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Tipos de Arquivos – Repositório

• Usado no Unix.

• Composto por procedimentos de bibliotecas (módulos) compilados.

– Não estão ligados.

• Cada módulo possui um cabeçalho indicando nome, data de criação, proprietário, código de proteção e tamanho.

Page 18: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Tipos de Arquivos

• Todo SO deve ser capaz de reconhecer pelo menos um tipo de arquivo.

– O seu próprio executável.

Page 19: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Acesso aos Arquivos

• Tipos de acessos:

– Sequêncial, utilizado nos primeiros SOs.• Ideal para meios de armazenamento sequênciais,

como fitas magnéticas.

– Aleatório.• SOs modernos utilizam apenas este tipo.

Page 20: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Atributos de Arquivos

Page 21: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Atributos de Arquivos

• Além do nome e dos dados, os SOs associam outras informações a cada arquivos.

– Chamadas de atributos.

– Variam para cada SO.

Page 22: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Operações com Arquivos

• Os SOs realizam diferentes operações. As mais comuns são:

– Create, cria o arquivo sem dados.• Usado para anunciar que o arquivo existe e

definir alguns atributos.

– Delete, remove o arquivo.

– Open, realizado antes de usar um arquivo.• O SO busca o arquivo e põe na memória principal

os atributos e lista de endereços do disco.

• Alguns SOs limitam o número de arquivos abertos.

Page 23: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Operações com Arquivos

– Close, realizado quando o processo termina de usar o arquivo.• Força a escrita do último bloco do arquivo.

– Read, lê os dados do arquivo na posição atual.• Deve ser definida quantidade de dados

necessários para fornecer um buffer.

– Write, escreve os dados na posição atual.• Se a posição atual estiver no final do arquivo,

este sofrerá um aumento no tamanho.

• Se a posição estiver no meio do arquivo, os dados posteriores serão sobrescritos.

Page 24: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Operações com Arquivos

– Append, chamada restrita de Write.• Só permite escrita no final do arquivo, não

permite sobrescrevê-lo.

– Seek, busca uma posição no arquivo.• Modifica o ponteiro que aponta para uma posição

dentro do arquivo.

– Get Attributes, lê os atributos do arquivo.• O make do Unix verifica os momentos de

alteração dos arquivos fonte e arquivos objeto usando esta operação.

Page 25: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Operações com Arquivos

– Set Attributes, define atributos do arquivo.• Alguns atributos podem ser alterados pelo

usuário.

– Rename, modifica o nome do arquivo.

Page 26: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Arquivos Mapeados em Memória

• Acessar arquivos usando chamadas ao sistema de arquivos pode ser uma tarefa tediosa.

• Alguns SOs fornecem um mapeamento de arquivos na memória.

– No espaço de endereçamentodo processo em execução.

Page 27: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Arquivos Mapeados em Memória

• Conceitualmente, vão existir duas rotinas:

– Map, que retorna um endereço virtual onde o arquivo foi mapeao.

– Unmap, remove o arquivo da memória principal.

• Quando um processo acessa a posição x da memória, onde o arquivo foi mapeado, a posição 0 do arquivo está sendo lida.

Page 28: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Arquivos Mapeados em Memória

Espaço de endereçamento de um processo.

Page 29: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Arquivos Mapeados em Memória

• Ao término do uso do arquivo, o arquivo é salvo no disco como se tivesse sido usado chamadas ao sistema de arquivos.

• As tabelas internas são alteradas para que o arquivo se torne um armazenamento sobressalente.

– Uma leitura no endereço virtual do mapeamento gera uma falta de página.

– O arquivo é trazido à memória.

– Quando a paǵina é removida, o arquivo é escrito no disco.

Page 30: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Arquivos Mapeados em Memória

• Funciona melhor em sistemas que usam segmentação.

• Cada arquivo pode ser mapeado em seu próprio segmento.

– O byte k do segmento é o byte k do arquivo.

Page 31: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Arquivos Mapeados em Memória

(a) Processo com dois segmentos: código e dados.

(b) Após o mapeamento do arquivo “abc” e, ao término, arquivo xyz será criado.

Page 32: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Arquivos Mapeados em Memória

• Vantagem:

– Elimina chamadas ao sistema de arquivos.• Facilita programação.

• Desvantagem:

– O SO não sabe o tamanho exato do arquivos no momento da escrita do arquivo.• Pode ser usado o tamanho máximo da página ou

do segmento.

• Estimação do tamanho, não tem certeza.

Page 33: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Arquivos Mapeados em Memória

– Compartilhamento, quando um processo lê um arquivo que está sendo escrito por outro processo.• O arquivo só possuirá as modificações quando a

página for retirada da memória.

– O arquivo pode ser maior que o segmento ou maior que todo espaço virtual de endereçamento.• Solução mapear somente uma parte do arquivo.

Page 34: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Capítulo 6 – Sistemas de Arquivos

6.1 Arquivos6.2 Diretórios6.3 Implementação

Page 35: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Sistemas de Diretórios

• Controla o armazenamento/localização dos arquivos.

• Pode ser um arquivo também, dependendo do SO.

• Pode ser implementado de diversas formas.

Page 36: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Nível Único

• Mais simples implementação de um sistema de diretórios.

• Um único diretório possui todos os arquivos.

– Chamado de diretório-raiz.

• Usado nos primeiros PCs.

– Por possuir apenas um usuário.

Page 37: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Nível Único

A,B e C são os proprietários dos arquivos.

Page 38: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Nível Único

• Vantagens:

– Fácil de implementar.

– Fácil localização de arquivos.

• Desvantagem:

– Sistemas com vários usuários podem criar arquivos com mesmo nome.• O arquivo será perdido e sobrescrito com o novo.

Page 39: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Nível Único

• Não é mais utilizado em PCs por razões óbvias.

• Pode ser utilizado em sistemas embarcados.

– Devido limitações de usabilidade e hardware.

– Sistemas que existe apenas um único usuário.

Page 40: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Dois Níveis

• Resolve conflitos de usuários.

– Um diretório oferecido para cada usuário.

• Está implicito que o SO identifica o usuário e já sabe qual é o seu diretório.

• O usuário só tem acesso ao seu diretório.

– Na sua forma mais básica de implementação.

– Pode ser extendido e permitir acesso a arquivos de outros usuários.

Page 41: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Dois Níveis

Page 42: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Dois Níveis

• Acesso ao diretório de outros usuários permite separar um diretório para programas do sistema.

– Sem isto, haveria uma cópia dos programas do sistema no diretório de cada usuário.

• Tem problemas quando o usuário possui muitos arquivos.

– Um usuário pode querer arquivos com mesmo nome.

– Uma organização melhor é necessária para identificar os arquivos.

Page 43: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Diretórios Hierárquicos

• Os arquivos são organizados de acordo com o usuário.

– É criada uma hierarquia de diretórios.

• É utilizado até hoje.

Page 44: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Diretórios Hierárquicos

Page 45: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Nomes de Caminhos

• Em um sistema de arquivos organizado como árvore, é necessário um método de especificar um arquivo.

• São utilizados dois métodos:

– Nome de caminho absoluto.

– Nome de caminho relativo.

Page 46: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Nome de Caminho Absoluto

• Representa o caminho da raiz à folha (arquivo) da árvore.

• Exemplo: /var/www/index.html

– Existe um diretório chamado var

– /var possui um subdiretório chamado www

– O subdiretório www possui um arquivo chamado index.html

Page 47: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Nome de Caminho Absoluto

• Quando o primeiro caractere é um separador, então o caminho absoluto está sendo usado.

– O caractere separador é específico de cada SO.• Windows: \

• Linux: /

Page 48: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Nome de Caminho Relativo

• Usado em conjunto com o conceito de diretório de trabalho.

– Também chamado de diretório atual.

• Todos os caminhos que não começam na raiz, são assumidos como relativos ao diretório atual.

Page 49: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Nome de Caminho Relativo

• Se o diretório atual for /var/www, o arquivo index.html pode ser acessado diretamente, sem o uso do caminho absoluto.

• Cada processo possui um diretório de trabalho.

– Um arquivo pode ser acessado usando o caminho relativo.

– Permite que um diretório de trabalho seja modificado sem afetar os outros processos.

Page 50: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Nomes de Caminho

• A maioria dos SOs que suportam sistema de diretório hierárquico, possuem duas entradas especiais:

– . (ponto)• Refere-se ao diretório atual.

– .. (ponto-ponto)• Refere-se ao diretório pai.

Page 51: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Operações com Diretórios

• As operações variam para cada SO. As mais comuns são:

– Create, cria um diretório vazio.• Exceto pelo ponto e ponto-ponto.

• Geralmente inseridos pelo programa mkdir.

– Delete, remove um diretório.• O diretório deve estar vazio para ser removido.

• Ponto e ponto-ponto não são contados neste caso.

– Opendir, abre o diretório.• Antes de ser lido, o diretório deve ser aberto.

• Após a abertura, está pronto para listar os arquivos.

Page 52: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Operações com Diretórios

– Closedir, fecha o diretório.• Deve ser fechado para liberação de espaço na

tabela interna.

– Readdir, retorna a próxima entrada do diretório aberto.• Antes era feito usando a chamada de sistema

read, porém o programador precisaria conhecer a estrutura interna usada pelo sistema de diretórios.

• Permite ler o diretório de forma padronizada.

Page 53: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Operações com Diretórios

– Rename, modifica o nome do diretório.

– Link, técnica chamada de ligação (link).• Permite que um arquivo apareça em mais de um

diretório, ao mesmo tempo.

• A chamada tem como entrada um diretório e um arquivo existente.

• Incrementa o contador do i-node do arquivo.

Page 54: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Operações com Diretórios

– Unlink, remove uma entrada do diretório.

• Se o arquivo existe somente neste diretório, o arquivo é fisicamente removido.

• Caso exista em outros diretórios, somente o caminho especificado é removido.

• O delete na verdade é um unlink.

Page 55: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Capítulo 6 – Sistemas de Arquivos

6.1 Arquivos6.2 Diretórios6.3 Implementação

Page 56: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Implementação do Sistema de Arquivos

• Como o sistema de arquivos funciona sob a ótica do programador.

Page 57: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Esquema do Sistema de Arquivos

• Os arquivos são armazenados em discos.

– Os discos geralmente são divididos em partições.

– Cada partição pode possuir um sistema de arquivos diferente.

• O setor 0 (zero) do disco é chamado de MBR (Master Boot Record).

– Usado para iniciar o computador.

• No fim da MBR tem uma tabela com os endereços finais e iniciais de cada partição.

• Uma das partições é marcada como ativa.

Page 58: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Esquema do Sistema de Arquivos

• Quando o computador inicia, a BIOS lê e executa o MBR.

– Localizar a partição ativa.

– Lê seu primeiro bloco (bloco de boot).

– Executa o programa no bloco de boot.

• O programa no bloco de boot carrega o SO contido naquela partição.

• Toda partição contém um bloco de boot, mesmo sem ter nenhum SO.

– Futuramente ela poderá ter um SO.

Page 59: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Esquema do Sistema de Arquivos

Page 60: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Esquema do Sistema de Arquivos

• Logo após o bloco de boot está o superbloco.

– Contém todos os principais parâmetros sobre o sistema de arquivos.

– É lido quando o computador é iniciado ou quando o sistema de arquivos é usado pela primeira vez.

– Possui um número mágico para identificar o tipo de sistema de arquivos usado.

– Possui o número de blocos e outras informações.

Page 61: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Esquema do Sistema de Arquivos

• Após o superbloco, estão as informações sobre os blocos livres.

– Pode ser na forma de um mapa de bits ou uma lista de ponteiros.

• Em seguida, os i-nodes.

– Arranjo de estrutura de dados, um por arquivo, que diz tudo sobre o respectivo arquivo.

Page 62: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Esquema do Sistema de Arquivos

• Depois, pode vir o diretório-raiz.

– Contém o topo da árvore do sistema de arquivos.

• Por último estão todos os arquivos e diretórios.

Page 63: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Implementação do Sistema de Arquivos

• A questão mais importante na implementação de armazenamento de arquivos é a manutenção do controle de quais blocos de disco estão relacionados a quais arquivos.

• São usados vários métodos em diferentes SOs.

Page 64: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Alocação Contígua

• É o esquema mais simples de armazenamento de arquivos no disco.

• Os arquivos são armazenados em blocos contíguos de disco.

• Em um disco de blocos de 1kb, um arquivo de 50kb usa 50 blocos consecutivos.

Page 65: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Alocação Contígua

Page 66: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Alocação Contígua

• Na figura é possível observar o que ocorre quando um arquivo é removido.

– Lacunas são criadas dentro do conjunto de blocos.

• Caso um arquivo use meio bloco, este restante do bloco será desperdiçado.

Page 67: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Alocação Contígua

• Vantagens:

– Fácil implementação.• Só precisa guardar o endereço do início e o

número de blocos usados.

– Alto desempenho de leitura.• A leitura de um arquivo é feita de uma só vez,

pois o arquivo está escrito de forma contígua.

• Apenas um seek é necessário.

Page 68: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Alocação Contígua

• Desvantagem:

– Tendência a fragmentar.• Sempre que um arquivo é removido, uma lacuna

é criada no lugar do arquivo.

• A compactação dos blocos dos arquivos poderia ser feita após cada exclusão, porém é extremamente custosa.

• Quando o disco está cheio, a compactação é necessária.

Page 69: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Alocação Contígua

• Não é mais utilizada em SOs modernos.

• É utilizada em sistemas de armazenamento de somente leitura.

– CDs, DVDs, mídias óticas.

– Algumas técnicas antigas podem se tornar úteis com o advento de novas tecnologias.

Page 70: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Alocação Por Lista Encadeada

Page 71: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Alocação Por Lista Encadeada

• Todo bloco é utilizada e não é gerada fragmentação com a remoção de arquivos.

– Porém a fragmentação interna dos blocos continua.

• É necessário manter apenas o endereço do primeiro bloco na entrada de diretório.

– O restante é encontrado a pártir dele.

Page 72: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Alocação Por Lista Encadeada

• Desvantagem:

– Leitura aleatório lenta.• Para ler o dado n, é necessário ler n-1 blocos, um

a um.

• A leitura sequêncial é feita sem problemas.

– Quantidade de dados armazenados não é uma potência de 2.• É necessário armazenar o endereço do próximo

bloco.

• A leitura de todo bloco requer obter e concatenar a informação de dois blocos.

Page 73: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Alocação Por Lista Encadeada

• Leitura de um arquivo.

– Concatenando os dados de dois blocos.

Page 74: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Alocação Por Lista Encadeada usando Tabela na Memória

• Uma tabela é usada para armazenar o endereço físico de cada bloco no disco.

– A tabela é chamada de FAT (File Allocation Table).

• O disco também é totalmente utilizado.

– Possui acesso aleatório mais rápido, pois não precisa ler do disco os endereços do próximo bloco.

Page 75: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Alocação Por Lista Encadeada usando Tabela na Memória

Page 76: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Alocação Por Lista Encadeada usando Tabela na Memória

• Somente o número do bloco inicial é necessário para representar a entrada de diretório.

• A tabela utiliza um código de fim de arquivo.

Page 77: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Alocação Por Lista Encadeada usando Tabela na Memória

• Desvantagens:

– Usa muita memória principal.• Para funcionar, a tabela deve estar na memória

principal o tempo todo.

• Para um disco de 20GB e blocos de 1KB, a tabela precisa de 20 milhões de entradas, uma para cada bloco.

• A tabela ocuparia 60 ou 80 MB na memória principal, dependendo do número de bytes usados nas entradas da tabela.

Page 78: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

i-Nodes

• Estruturas de dados que controlam quais blocos pertencem a quais arquivos.

– Relaciona atributos e os endereços no disco ao arquivo.

• A pártir de um i-node é possível encontrar todos os blocos do arquivo.

Page 79: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

i-Nodes

Page 80: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

i-Nodes

• Vantagem:

– Usa menos memória principal.• Só precisa estar na memória quando um arquivo

está sendo usado.

• Se cada i-node usa n bytes e no máximo k arquivos podem ser abertos simultâneamente, somente nk bytes são necessários na memória.

• A tabela FAT é proporcional ao tamanho do disco e o espaço gasto pelos i-nodes é proporcional ao número de arquivos abertos.

Page 81: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

i-Nodes

• Desvantagem:

– Limite do número de blocos endereçados pelo i-node.• Se a estrutura do i-node tiver um tamanho fixo, o

número de blocos endereçáveis por um i-node é limitado.

• Quando isto ocorre, um espaço do disco é reservado para um, ou mais, blocos de ponteiros.

Page 82: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Implementação de Diretórios

• Para abrir um arquivo, o SO precisa de um nome e um caminho.

• Este caminho é usado para encontrar:

– Endereço de disco de todo arquivo (contígua)

– O número do primeiro bloco (listas encadeadas)

– Ou o número do i-node.

Page 83: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Implementação de Diretórios

• A função do sistema de diretórios é traduzir um nome ASCII na informação necessária para encontrar os dados.

• Outra questão é onde salvar os atributos dos arquivos.

– Todos os SOs mantém informações do arquivo, como o proprietário, data e hora de criação...

Page 84: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Armazenamento dos Atributos dos Arquivos

(a) Atributos armazenados diretamente na entrada do diretório.

(b) Atributos armazenados nos i-nodes.

Page 85: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Armazenamento dos Atributos dos Arquivos

• Uma alternativa é armazenar diretamente na entrada do diretório (a).

– Consiste em uma lista de entradas de tamanho fixo, uma por arquivo.• Contém nome do arquivo (tamanho fixo), uma

estrutura de atributos e um ou mais endereços de disco.

– Usado no DOS/Windows

• Outra alternativa é armazenar nos i-nodes.

– A entrada de diretório é menor:• Um nome de arquivo

• O número do i-node.

– Usado no Unix.

Page 86: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Armazenamento do Nome dos Arquivos

• O nome dos arquivos podem ter tamanho variado.

• Reservar o espaço usando o tamanho máximo ocasiona em desperdício de espaço.

– Poucos arquivos possuirão nomes tão longo.

Page 87: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Armazenamento do Nome dos Arquivos

• Uma alternativa é cada entrada de diretório possuir uma parte fixa seguida de uma parte variável (nome real do arquivo) (a).

– É usado um caractere especial para indicar o fim do nome.

– Preenche o campo de nome até atingir o tamanho fixado.

– Na parte fixa são armazenados as informações do arquivo.

Page 88: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Armazenamento do Nome dos Arquivos

• Desvantagem:

– Fragmentação.• Possui a mesma tendência a fragmentar da

alocação contígua, caso um arquivo seja removido.

• Porém a compactação pode ser feita no momento da deleção, pois toda a entrada do diretório está na memória principal.

– Leitura de um arquivo pode causar uma falta de página.• A entrada de diretório pode ser longa demais.

Page 89: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Armazenamento do Nome dos Arquivos

• Outra solução é fixar o tamanho de todas as entradas de diretório e os nomes ficam armazenados em uma área temporária (heap) no final do diretório (b).

• Possui a vantagem de sempre caber na área da heap quando um arquivo é removido.

• Não há mais necessidade de completar os nomes com caracteres especiais.

– Porém ainda é necessário o uso do caractere de fim de nome.

Page 90: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Armazenamento do Nome dos Arquivos

Page 91: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Implementação de Diretórios

• Nos projetos abordados até o momento, a busca por um arquivo é realizada sequêncialmente.

– O que é um método lento quando a lista é extensa.

• Uma solução é utilizar uma tabela de hash para armazenar as entradas de diretório.

Page 92: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Arquivos Compartilhados

• Compartilhamento é de extrema importância em sistemas multiusuário.

• Um arquivo compartilhado pode fazer parte da estrutura de diretório de dois, ou mais, usuários (link).

Page 93: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Arquivos Compartilhados

• Se o diretório armazenar os endereços dos blocos do arquivo, uma alteração no arquivo pode não ser visível pelo outro usuário.

– O diretório não terá a referência dos blocos adicionais.

– O conceito de compartilhamento é perdido quando isto acontece.

Page 94: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Arquivos Compartilhados

Pode ser resolvido de duas formas:

1.O diretório não armazena os endereços dos blocos do arquivo.

• É utilizada uma estrutura de dados que armazena todos os endereços.

• O diretório possui uma referência à estrutura.

2.O novo arquivo é ligado (link) ao original.

• O novo arquivo possuirá apenas o nome do caminho do arquivo original.

• Chamado de ligação simbólica.

Page 95: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Arquivos Compartilhados

Ambas soluções apresentam desvantagens:

1.Se o arquivo original for removido, a referência do i-node é perdida.

• O SO é capaz de identificar que o arquivo possui um link, mas não é capaz de encontrar cada um e removê-los.

• O i-node não é capaz de armazenar todas os links.

• A solução é remover o arquivo da entrada do diretório do usuário, mas manter o i-node intacto.

Page 96: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Arquivos Compartilhados

(a) Antes da ligação.

(b) Após a ligação.

(c) Após a remoção do arquivo original.

Page 97: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Arquivos Compartilhados

2. Vários acessos a disco são necessários para ler os blocos do arquivo.

• O caminho deve ser lido e sintaticamente analisado até chegar ao i-node.

• É necessário um i-node extra para armazenar o caminho para cada ligação simbólica.

• Tem a vantagem de poder ligar arquivos de locais diferentes.

• Basta o endereço da máquina e o caminho.

Page 98: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Gerenciamento de Disco

• O gerenciamento do espaço do disco é uma das principais preocupações de um projetista de sistemas.

• Como foi visto anteriormente, é possível armazenar de duas formas:

1. Blocos consecutivos (alocação contígua).

2. Blocos espalhados no disco (alocação por lista encadeada ou i-node).

Page 99: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Tamanho do Bloco

• É visível a importância do tamanho do bloco no gerenciamento do disco.

• Os blocos podem ter tamanhos diferentes e diferentes reações serão observadas no sistema.

• A decisão do tamanho do bloco deve ser bem pensada.

Page 100: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Tamanho do Bloco

• Bloco muito grande:

• Pouca leitura do disco necessária.− Os arquivos usariam poucos blocos.

• Alta fragmentação interna.− Poucos arquivos preencherão o bloco inteiro.

• Bloco muito pequeno:

• Disco é melhor aproveitado.− Baixa fragmentação interna.

• Muito leitura do disco.− Muito acesso a disco, pois o arquivo pode estar

espalhado pelo disco inteiro.

Page 101: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Tamanho do Bloco

Page 102: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Monitoramento dos Blocos Livres

(a)Através de uma lista encadeada de blocos.

(b)Mapa de bits.

Page 103: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Lista Encadeada de Blocos

• Um bloco de disco é utilizado para armazenar ponteiros para os blocos livres.

• Armazena o máximo possível de ponteiros.

• Mantém na memória principal apenas um bloco de ponteiros.

• Quando um arquivo é criado, os blocos necessários são tirados da lista de blocos livres.

• Quando a lista se esgota, outro bloco de ponteiros é lido do disco.

Page 104: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Lista Encadeada de Blocos

• Quando um arquivo é removido, novos ponteiros são criados e adicionados ao bloco de ponteiros.

• Quando o bloco está cheio, este é escrito ao disco e outro é lido ou criado.

Page 105: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Lista Encadeada de Blocos

• Desvantagem:

• Causa muitas operações de E/S.

• Quando o bloco possui 2 ponteiros livres (a) e um arquivo de 3 blocos é removido, a lista “transborda” e um novo bloco de ponteiros é criado e carregado na memória (b).

• Se o arquivo que acaba de ser criado é temporário, os blocos são desalocados e o bloco anterior é recarregado.

Page 106: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Lista Encadeada de Blocos

• Solução:

• Manter o bloco de ponteiros sempre parcialmente ocupado.

• Sempre que o bloco de ponteiros se enche, apenas metade dele é armazenada no disco (c).

Page 107: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Lista Encadeada de Blocos

Inserir figura!!!!!!!!!

Page 108: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Mapa de Bits

• Um mapa de bits é utilizado para representar os blocos livres.

• Utiliza apenas um bit para representar um bloco livre.

− 1: Livre

− 0: Alocado

• Também utiliza blocos do disco para armazenar o mapa.

Page 109: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Mapa de Bits

• Só usa o disco quando o mapa está cheio.

• O mapa mantém os arquivos próximos.

• Pois estão no mesmo mapa.

Page 110: Mitsuo Takaki Sistemas de Arquivos Sistemas Operacionais.

Mapa de Bits

1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1

1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 0

1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0

Endereço: 0x10cc00290

0

16

32

48

64

• Representação de um mapa de bits.