Mitsuo Takaki - PowerPoint PPT Presentation

About This Presentation
Title:

Mitsuo Takaki

Description:

Sistemas de Arquivos Sistemas Operacionais Mitsuo Takaki Arquivos Compartilhados (a) Antes da liga o. (b) Ap s a liga o. (c) Ap s a remo o do arquivo original. – PowerPoint PPT presentation

Number of Views:141
Avg rating:3.0/5.0
Slides: 111
Provided by: cinUfpeB69
Category:
Tags: mitsuo | takaki

less

Transcript and Presenter's Notes

Title: Mitsuo Takaki


1
Sistemas de Arquivos
Sistemas Operacionais
Mitsuo Takaki
2
Capítulo 6 Sistemas de Arquivos
6.1 Arquivos 6.2 Diretórios 6.3 Implementação
3
Capítulo 6 Sistemas de Arquivos
6.1 Arquivos 6.2 Diretórios 6.3 Implementação
4
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.

5
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.

6
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.

7
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.

8
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.

9
Estrutura de Arquivos
10
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.

11
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.

12
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.

13
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.

14
Tipos de Arquivos
(a) Arquivo executável (b) Repositório
15
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.

16
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.

17
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.

18
Tipos de Arquivos
  • Todo SO deve ser capaz de reconhecer pelo menos
    um tipo de arquivo.
  • O seu próprio executável.

19
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.

20
Atributos de Arquivos
21
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.

22
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.

23
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.

24
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.

25
Operações com Arquivos
  • Set Attributes, define atributos do arquivo.
  • Alguns atributos podem ser alterados pelo
    usuário.
  • Rename, modifica o nome do arquivo.

26
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.

27
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.

28
Arquivos Mapeados em Memória
Espaço de endereçamento de um processo.
29
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.

30
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.

31
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.
32
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.

33
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.

34
Capítulo 6 Sistemas de Arquivos
6.1 Arquivos 6.2 Diretórios 6.3 Implementação
35
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.

36
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.

37
Nível Único
A,B e C são os proprietários dos arquivos.
38
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.

39
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.

40
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.

41
Dois Níveis
42
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.

43
Diretórios Hierárquicos
  • Os arquivos são organizados de acordo com o
    usuário.
  • É criada uma hierarquia de diretórios.
  • É utilizado até hoje.

44
Diretórios Hierárquicos
45
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.

46
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

47
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 /

48
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.

49
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.

50
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.

51
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.

52
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.

53
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.

54
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.

55
Capítulo 6 Sistemas de Arquivos
6.1 Arquivos 6.2 Diretórios 6.3 Implementação
56
Implementação do Sistema de Arquivos
  • Como o sistema de arquivos funciona sob a ótica
    do programador.

57
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.

58
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.

59
Esquema do Sistema de Arquivos
60
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.

61
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.

62
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.

63
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.

64
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.

65
Alocação Contígua
66
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.

67
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.

68
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.

69
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.

70
Alocação Por Lista Encadeada
71
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.

72
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.

73
Alocação Por Lista Encadeada
  • Leitura de um arquivo.
  • Concatenando os dados de dois blocos.

74
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.

75
Alocação Por Lista Encadeada usando Tabela na
Memória
76
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.

77
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.

78
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.

79
i-Nodes
80
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.

81
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.

82
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.

83
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...

84
Armazenamento dos Atributos dos Arquivos
(a) Atributos armazenados diretamente na entrada
do diretório. (b) Atributos armazenados nos
i-nodes.
85
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.

86
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.

87
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.

88
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.

89
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.

90
Armazenamento do Nome dos Arquivos
91
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.

92
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).

93
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.

94
Arquivos Compartilhados
  • Pode ser resolvido de duas formas
  • 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.
  • 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.

95
Arquivos Compartilhados
  • Ambas soluções apresentam desvantagens
  • 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.

96
Arquivos Compartilhados
  • (a) Antes da ligação.
  • (b) Após a ligação.
  • (c) Após a remoção do arquivo original.

97
Arquivos Compartilhados
  • 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.

98
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
  • Blocos consecutivos (alocação contígua).
  • Blocos espalhados no disco (alocação por lista
    encadeada ou i-node).

99
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.

100
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.

101
Tamanho do Bloco
102
Monitoramento dos Blocos Livres
  • Através de uma lista encadeada de blocos.
  • Mapa de bits.

103
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.

104
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.

105
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.

106
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).

107
Lista Encadeada de Blocos
Inserir figura!!!!!!!!!
108
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.

109
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.

110
Mapa de Bits
Endereço 0x10cc00290
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
0
16
32
48
64
  • Representação de um mapa de bits.
Write a Comment
User Comments (0)
About PowerShow.com