Buscar

Sistemas Operacionais 10

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

*
Gerenciamento sistemas de arquivos
Prof. André Leon S. Gradvohl, Dr.
andre.gradvohl@gmail.com
*
*
Plano de aula
Visão externa do sistema de arquivos
Gerenciamento de arquivos
Estrutura de informação
Descritores de arquivos
Gerenciamento de blocos
Formatação lógica e física do sistema de arquivos
Particionamento
Estudos de Casos
*
*
Visão externa do sistema de arquivos
Hardware
Programa
Ger. Arquivos
Ger. Discos
Ger. Memória
Ger. Processos
UNIX
Ger. Arquivos
Ger. Dispos.
Ger. Memória
Ger. Processos
Windows
open()
read()
close()
write()
lseek()
CreateFile()
ReadFile()
CloseHandle()
SetFilePointer()
WriteFile()
mount()
*
*
Armazenamento persistente
 Dispositivos compartilhados
Por que os arquivos são necessários?
Editor HTML
<head>
…
</head>
<body>
…
</body>
Web
Browser
 Informação estruturada
 Pode ser lida por qualquer aplicação
 Acessibilidade
 Protocolo
<head>
…
</head>
<body>
…
</body>
foo.html
Gerenciador 
de arquivos
Gerenciador 
de arquivos
*
*
Gerenciamento de arquivos
Arquivo é uma coleção organizada de informação devidamente nomeada. 
O gerenciador de arquivos administra a coleção através das seguintes ações:
Armazenando a informação em um dispositivo.
Mapeando o armazenamento em bloco em uma visão lógica.
Alocando e desalocando armazenamento.
Provendo diretórios de arquivos.
*
*
Estrutura de informação
Registros
Aplicações
Registros de arquivos estruturados
Tradução para um fluxo de registros
Tradução em blocos de fluxo
Arquivos de fluxo de bytes
Dispositivo de armazenamento
*
*
Arquivos de baixo nível
Tradução em blocos de fluxo
b0
b1
b2
bi
...
...
fid = open(“nome”,…);
…
read(fid, buf, buflen);
…
close(fid);
int open(…) {…}
int close(…) {…}
int read(…) {…}
int write(…) {…}
int seek(…) {…}
O dispositivo de armazenamento responde aos comandos.
*
*
Arquivos sequenciais orientados a registros
...
Cabeçalho
Registro lógico
...
Fragmento
Blocos de armazenamento físico
Registro lógico
*
*
Arquitetura de baixo nível do sistema de arquivos
b0 b1 b2 b3 
bn-1 
…
…
Bloco 0
.
.
.
Dispositivo seqüencial
Dispositivo aleatório
*
*
Descritores de arquivos
Nome externo
Estado atual
Compartilhado
Dono/usuário
Bloqueio
Proteções
Tamanho
Tempo de criação
Hora da última modificação
Hora do último acesso
Contador de referências
Detalhes do dispositivo de armazenamento
*
*
Operação open()
Localizar o descritor do arquivo
Extrair as informações necessárias para ler e escrever no arquivo
Verificar se o processo pode acessar o arquivo 
Criar um descritor do arquivo na memória principal
Cria uma entrada por processo na tabela de arquivos abertos. 
Alocar recursos (buffers) para suportar a utilização de arquivos.
*
*
Estrutura de dados do gerenciador de arquivos
Descritor de arquivos externo
Descritor lógico
Copia a informação do descritor externo para o descritor lógico
1
Sessão Processo- arquivo
Mantém o estado do arquivo-processo
2
Retorna uma referência a uma estrutura de dados.
3
*
*
Gerenciamento de blocos
É responsável pela seleção e atribuição de blocos de armazenamento ao arquivo
Para um arquivo de tamanho fixo de k blocos:
Arquivo de tamanho m requer N = m/k blocos
O byte bi é armazenado no bloco i/k.
Há três estratégias básicas:
Alocação contínua
Alocação encadeada
Alocação indexada
*
*
Alocação contínua
Mapeia os N blocos em N blocos contínuos no dispositivo de armazenamento secundário.
Vantagens:
Simples de implementar.
Desempenho alto.
Blocos i e i+1 são armazenados fisicamente em sequência; isso reduz a necessidade da operação de seek.
Desvantagens:
Dificuldade de trabalhar com arquivos de tamanho dinâmico (gera fragmentação externa).
Pré-alocação do arquivo em um espaço máximo gerando fragmentação interna.
*
...
Alocação contígua (exemplo)
Arquivo A
Arquivo B
Arquivo C
Arquivo D
*
Alocação ligada
Cada bloco contém um cabeçalho com:
Número de bytes no bloco
Ponteiro para o próximo bloco
Vantagens:
Os blocos não precisam ser contínuos
Os arquivos podem ser expandidos e contraídos
Desvantagens:
As buscas são lentas.
*
Alocação encadeada (Exemplo)
*
Alocação encadeada
Observação:
As desvantagens da alocação encadeada podem ser eliminadas colocando-se cada palavra de ponteiro de cada bloco de disco em uma tabela na memória.
Essa estratégia é chamada File Allocation Table (FAT) e a tabela deve estar na memória o tempo inteiro.
*
Alocação indexada (i-node)
Visa resolver o problema de “ponteiros” esparramados pelo disco que a alocação encadeada provoca.
 Mantém, por arquivo, um índice de blocos que o compõem.
 O índice é mantido em um bloco.
 O diretório possui um ponteiro para o bloco onde está o índice associado a um determinado arquivo.
Extrai os cabeçalhos e os coloca em um índice. 
Simplifica as buscas.
Pode juntar vários índices para arquivos grandes.
*
Alocação indexada (exemplo)
Propriedades
Blocos diretos
Blocos indiretos simples
Blocos indiretos duplos
Blocos indiretos triplos
dados
dados
dados
Tabela
dados
dados
dados
Tabela
Tabela
Tabela
dados
dados
dados
dados
*
*
Gerência de espaço livre
Mapa de bits
Forma simples de gerenciar o espaço em disco.
A cada bloco do disco está associado um bit indicando se o bloco está livre ou ocupado.
Lista de blocos livres
Os blocos livres são organizados em uma lista.
A lista é mantida no próprio disco
O problema é o tamanho da lista.
A medida que o espaço em disco é ocupado a lista diminui de tamanho liberando espaço do disco.
Uma solução alternativa é manter uma lista de áreas livres ao invés de uma lista de blocos livres.
*
Formatação lógica e física
A formatação de disco é o processo de preparação do disco rígido e a criação de um sistema de arquivos.
Os discos podem ser particionados, i. e. divididos em seções lógicas, onde cada seção pode possuir seu próprio sistema de arquivos.
Há dois níveis de formatação: física e lógica.
*
Formatação lógica e física
A formatação física define a “geometria” do disco, i. e., definição de trilhas, setores e gravação de informações de controle.
Atualmente, formatação física deve ser evitada, pois os fabricantes já definem a melhor geometria na fabricação do disco.
*
Formatação lógica e física
A formatação lógica é a criação de um sistema de arquivos vazio no disco, bem como a criação de um setor de boot.
A formatação lógica pode ser rápida, se simplesmente grava o sistema básico de arquivos e o setor de boot, ou mais lenta, se percorre o disco em busca de setores corrompidos.
*
Particionamento
O setor de boot é o primeiro setor de um dispositivo de armazenamento.
O nome para esse setor é “Master Boot Record”, nele estão as informações necessárias para as cargas do sistema operacional e do respectivo sistema de arquivos.
MBR
Sistema Operacional 1
Sistema Operacional 2
*
Particionamento
Master Boot Record (MBR): Track 0, Sector 1
 Número de partições e sua localização
 ponteiro para a partição com o bootloader
*
Estudos de Caso: NTFS
Características do NTFS:
Todos os dados relativos ao arquivo – nome, data, permissões etc – são armazenados como metadados na Master File Table. 
Internamente o NTFS usa árvores B+ para indexar os dados para acesso de arquivos. Apesar de complexo, esse esquema permite um acesso rápido aos dados.
Um sistema de arquivos “diário” (file system journal) é usado para garantir a integridade dos metadados do sistema de arquivos, mas não o conteúdo dos arquivos.
*
Estudos de Caso: EXT3
Características do EXT3:
É uma evolução do EXT2 e inclui um sistema de journaling. O journal (diário) consiste em uma espécie de log, que armazena todas as alterações que são feitas nos arquivos e quando elas foram concluídas. 
Possui três níveis
de journaling:
Journal: dados e metadados são escritos no log antes de serem escritos, de fato, em disco.
Ordered: Só os metadados são gravados no log. Mas é garantido que o conteúdo dos arquivos é gravado no disco antes dos metadados associados está marcado como comprometidos no log.
Writeback: O conteúdo pode ser escrito antes ou depois da atualização do log.
Internamente usa árvores H (uma especialização das árvores B+) para indexar os dados para acesso de arquivos. Apesar de complexo, esse esquema permite um acesso rápido aos dados.

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais