Eduardo Ferreira dos Santos - Blog de Eduardo Santos · que o arquivo é aberto para permitir a...

44

Transcript of Eduardo Ferreira dos Santos - Blog de Eduardo Santos · que o arquivo é aberto para permitir a...

Page 1: Eduardo Ferreira dos Santos - Blog de Eduardo Santos · que o arquivo é aberto para permitir a remoção da tabela de arquivos ... Bloco de controle do arquivo ... Exemplo de implementação

Implementação de sistema de arquivos

Eduardo Ferreira dos Santos

Ciência da Computação

Centro Universitário de Brasília � UniCEUB

Maio, 2016

1 / 44

Page 2: Eduardo Ferreira dos Santos - Blog de Eduardo Santos · que o arquivo é aberto para permitir a remoção da tabela de arquivos ... Bloco de controle do arquivo ... Exemplo de implementação

Sumário

1 Introdução

2 ImplementaçãoVisão do usuárioVisão do Sistema Operacional

3 Alocação

2 / 44

Page 3: Eduardo Ferreira dos Santos - Blog de Eduardo Santos · que o arquivo é aberto para permitir a remoção da tabela de arquivos ... Bloco de controle do arquivo ... Exemplo de implementação

Introdução

1 Introdução

2 ImplementaçãoVisão do usuárioVisão do Sistema Operacional

3 Alocação

3 / 44

Page 4: Eduardo Ferreira dos Santos - Blog de Eduardo Santos · que o arquivo é aberto para permitir a remoção da tabela de arquivos ... Bloco de controle do arquivo ... Exemplo de implementação

Introdução

De�nições

Arquivos Unidades lógicas de informação criadas por processos. (...)Também são uma espécie de espaço de endereçamento.[Tanenbaum and Machado Filho, 1995]

Memória secundária Espaço de endereçamento em arquivos.

Sistemas de arquivos Unidade do sistema operacional que trata de:

Estruturar;Nomear;Acessar;Proteger;Implementar os arquivos.

Persistência O armazenamento dos arquivos não pode ser afetado pelotérmino do processo.

4 / 44

Page 5: Eduardo Ferreira dos Santos - Blog de Eduardo Santos · que o arquivo é aberto para permitir a remoção da tabela de arquivos ... Bloco de controle do arquivo ... Exemplo de implementação

Introdução

Mecanismo do disco

Figura 1.1: Movimento da cabeça do disco [Galvin et al., 2013]5 / 44

Page 6: Eduardo Ferreira dos Santos - Blog de Eduardo Santos · que o arquivo é aberto para permitir a remoção da tabela de arquivos ... Bloco de controle do arquivo ... Exemplo de implementação

Introdução

Gerência de arquivos

O sistema operacional é responsável por fazer a gerência de arquivos;

Para conseguir realizar suas tarefas é necessário interagir com omecanismo do hardware;

Abstração: ao solicitar um arquivo, você não está preocupado onde eleestá armazenado dentro do disco;

Organização dos arquivos no sistema operacional:facilidade/di�culdade de acesso.

6 / 44

Page 7: Eduardo Ferreira dos Santos - Blog de Eduardo Santos · que o arquivo é aberto para permitir a remoção da tabela de arquivos ... Bloco de controle do arquivo ... Exemplo de implementação

Introdução

Gerenciador de arquivos

Quando salvamos o arquivo no disco, estamos executando as seguintestarefas:

1 O programa pede ao sistema operacional para escrever o conteúdo deuma arquivo;

2 O sistema operacional repassa a tarefa para o gerenciador de arquivos(�le manager), que é um subconjunto do SO;

3 O gerenciador de arquivos busca em uma tabela informações sobre oarquivo;

4 O gerenciador de arquivos busca em uma tabela a localização física dosetor que deve conter o byte (cilindro, trilha, setor);

5 O gerenciador de arquivos instrui o processador de I/O (que libera aCPU de cuidar do processo de transferência) sobre a posição do bytena RAM, e onde ele deve ser colocado no disco;

6 O processador de I/O formata o dado apropriadamente, e decide omelhor momento de escrevê-lo no disco.

7 / 44

Page 8: Eduardo Ferreira dos Santos - Blog de Eduardo Santos · que o arquivo é aberto para permitir a remoção da tabela de arquivos ... Bloco de controle do arquivo ... Exemplo de implementação

Implementação

1 Introdução

2 ImplementaçãoVisão do usuárioVisão do Sistema Operacional

3 Alocação

8 / 44

Page 9: Eduardo Ferreira dos Santos - Blog de Eduardo Santos · que o arquivo é aberto para permitir a remoção da tabela de arquivos ... Bloco de controle do arquivo ... Exemplo de implementação

Implementação

Visões

O arquivo pode possuir diferentes visões[Tanenbaum and Machado Filho, 1995]:

Visão do usuário:

Não há preocupação com o método de armazenamento dasinformações;O funcionamento dos discos é irrelevante;Identi�car o arquivo é fundamental. Ex.: nome do arquivo.Perenidade do arquivo.

Visão do sistema operacional:

Organização e armazenamento do arquivo e suas estruturas. Ex.:diretórios e marcadores;Gerenciamento do espaço em disco;Con�abilidade e funcionamento.

Ambas as visões precisam ser abordadas pelo Sistema Operacional.

9 / 44

Page 10: Eduardo Ferreira dos Santos - Blog de Eduardo Santos · que o arquivo é aberto para permitir a remoção da tabela de arquivos ... Bloco de controle do arquivo ... Exemplo de implementação

Implementação Visão do usuário

1 Introdução

2 ImplementaçãoVisão do usuárioVisão do Sistema Operacional

3 Alocação

10 / 44

Page 11: Eduardo Ferreira dos Santos - Blog de Eduardo Santos · que o arquivo é aberto para permitir a remoção da tabela de arquivos ... Bloco de controle do arquivo ... Exemplo de implementação

Implementação Visão do usuário

Nomeação

Principal regra de identi�cação para o usuário: nome do arquivo;

O nome pode utilizar letras maiúsculas e minúsculas;Extensão: identi�cação do tipo de arquivo;

Unix/Linux: a extensão do arquivo não importa tanto assim. Saída docomando file;Windows: extensão mapeia o tipo do arquivo.

O mapeamento de tipo associa o arquivo a um programa;

O nome do arquivo é uma estrutura lógica.

11 / 44

Page 12: Eduardo Ferreira dos Santos - Blog de Eduardo Santos · que o arquivo é aberto para permitir a remoção da tabela de arquivos ... Bloco de controle do arquivo ... Exemplo de implementação

Implementação Visão do usuário

Arquivos regulares

De�nição: sequência de bits contendo unidades lógicas criadas pelosusuários;As sequências de bits precisam ser decodi�cadas em palavras visíveisao usuário.

Figura 2.1: ASCII e Unicode 1

1http://paginaspersonales.deusto.es/abaitua/konzeptu/unicode/uc20ch1.html 12 / 44

Page 13: Eduardo Ferreira dos Santos - Blog de Eduardo Santos · que o arquivo é aberto para permitir a remoção da tabela de arquivos ... Bloco de controle do arquivo ... Exemplo de implementação

Implementação Visão do usuário

Arquivos binários

A estrutura dos bits faz referência ao programa que as utiliza;

Importância do conceito de extensão;

Um arquivo binário executável do Unix possui cinco partes[Favacho, 2009]:

Cabeçalho Identi�ca o arquivo e seus componentes. Ex.: tamanhodas partes, endereço inicial de execução, etc.

Texto Pode possuir um conteúdo de texto codi�cado;Dados Dados do programa relacionado ao sistema operacional;

Bits de relocação Carregamento e relocação de texto nos dados;Tabela de símbolos Sequência de bits que só faz sentido para o

programa que a executa;

13 / 44

Page 14: Eduardo Ferreira dos Santos - Blog de Eduardo Santos · que o arquivo é aberto para permitir a remoção da tabela de arquivos ... Bloco de controle do arquivo ... Exemplo de implementação

Implementação Visão do usuário

Métodos de acesso

Sequencial Acesso sequencialInformações são processadas em ordem;Método mais utilizado. Ex.: compiladores e editores.Operações de leitura e escrita;A leitura é feita avançando o ponteiro de arquivo para opróximo registro;A escrita é feita adicionando o novo registro ao �nal doarquivo;

Figura 2.2: Acesso sequencial [Galvin et al., 2013]14 / 44

Page 15: Eduardo Ferreira dos Santos - Blog de Eduardo Santos · que o arquivo é aberto para permitir a remoção da tabela de arquivos ... Bloco de controle do arquivo ... Exemplo de implementação

Implementação Visão do usuário

Direto Acesso direto

Modelo de discos: o arquivo é visto como uma sequênciade blocos ou registros;Não há uma ordem pré-determinada para a leitura;Todo arquivo pode ser acessado a partir do endereço.

Indexado Tabela de índices de arquivo.

15 / 44

Page 16: Eduardo Ferreira dos Santos - Blog de Eduardo Santos · que o arquivo é aberto para permitir a remoção da tabela de arquivos ... Bloco de controle do arquivo ... Exemplo de implementação

Implementação Visão do usuário

Exemplos de acesso

Listing 1: Acesso sequencialr e ad nextw r i t e nex tr e s e t

Listing 2: Acesso diretor e ad nw r i t e np o s i t i o n to nr e ad next

5 w r i t e nex tr e w r i t e n

n = número relativo do bloco

Acesso direto: o arquivo tem registros lógicos de tamanho �xo.

O número relativo do bloco (n) permite ao SO decidir onde armazenaro arquivo.

16 / 44

Page 17: Eduardo Ferreira dos Santos - Blog de Eduardo Santos · que o arquivo é aberto para permitir a remoção da tabela de arquivos ... Bloco de controle do arquivo ... Exemplo de implementação

Implementação Visão do usuário

Métodos de acesso

Figura 2.3: Métodos de acesso [Galvin et al., 2013]

17 / 44

Page 18: Eduardo Ferreira dos Santos - Blog de Eduardo Santos · que o arquivo é aberto para permitir a remoção da tabela de arquivos ... Bloco de controle do arquivo ... Exemplo de implementação

Implementação Visão do usuário

Acesso pelo índice

Figura 2.4: Acesso através do índice [Galvin et al., 2013]

18 / 44

Page 19: Eduardo Ferreira dos Santos - Blog de Eduardo Santos · que o arquivo é aberto para permitir a remoção da tabela de arquivos ... Bloco de controle do arquivo ... Exemplo de implementação

Implementação Visão do usuário

Operações

Algumas operações básicas para serem realizadas nos arquivos:Criação Dois procedimentos:

1 Encontrar espaço su�ciente;2 Identi�car o diretório onde será armazenado.

Escrita na posição do ponteiro de escrita;Leitura na posição do ponteiro de leitura;

Pesquisa Reposicionamento do ponteiro de seek na posição atualdo arquivo;

Abrir Coloca na memória principal os principais atributos e alista de endereços;

Fechar Libera o espaço de memória alocado.

19 / 44

Page 20: Eduardo Ferreira dos Santos - Blog de Eduardo Santos · que o arquivo é aberto para permitir a remoção da tabela de arquivos ... Bloco de controle do arquivo ... Exemplo de implementação

Implementação Visão do usuário

Arquivos abertos

É muito importante manter a gestão sobre todos os arquivos que estãoabertos;Várias estruturas de dados diferentes são necessárias para manter ocontrole:

Tabela de arquivos abertos: controla todos os arquivos que estãoabertos;Ponteiro do arquivo: ponteiro que aponta para a última posição deleitura/escrita, em cada processo, que mantém um arquivo aberto;Contador de arquivos abertos: mantém um contador de todas as vezesque o arquivo é aberto para permitir a remoção da tabela de arquivosabertos quando ele for fechado;Localização do arquivo no discoPermissões de acesso: informação armazenada por processo.

20 / 44

Page 21: Eduardo Ferreira dos Santos - Blog de Eduardo Santos · que o arquivo é aberto para permitir a remoção da tabela de arquivos ... Bloco de controle do arquivo ... Exemplo de implementação

Implementação Visão do usuário

Sistema de travas

Em alguns sistemas operacionais e sistemas de arquivos um sistema detravas (locks) é utilizado para controlar o acesso do sistemaoperacional;

Shared lock Similar à trava de leitura: vários arquivos podem obterao mesmo tempo

Exclusive lock Similar à trava de escrita

Organiza o acesso aos arquivos.

21 / 44

Page 22: Eduardo Ferreira dos Santos - Blog de Eduardo Santos · que o arquivo é aberto para permitir a remoção da tabela de arquivos ... Bloco de controle do arquivo ... Exemplo de implementação

Implementação Visão do usuário

Diretórios

De�nição [Favacho, 2009]: tabela de símbolos que traduz os nomes dearquivos a seus agrupamentos (diretórios);

Arquivos que mantém a estrutura do sistema de arquivos;

Entradas associadas aos arquivos;

Ferramenta para organização dos arquivos;

Partições: suportam estrutura de arquivos e diretórios;

22 / 44

Page 23: Eduardo Ferreira dos Santos - Blog de Eduardo Santos · que o arquivo é aberto para permitir a remoção da tabela de arquivos ... Bloco de controle do arquivo ... Exemplo de implementação

Implementação Visão do usuário

Particionamento

Figura 2.5: Particionamento e sistema de arquivos [Galvin et al., 2013]

23 / 44

Page 24: Eduardo Ferreira dos Santos - Blog de Eduardo Santos · que o arquivo é aberto para permitir a remoção da tabela de arquivos ... Bloco de controle do arquivo ... Exemplo de implementação

Implementação Visão do usuário

Sistemas de arquivos

Os sistemas de arquivos que vemos normalmente são de uso geral;

Alguns sistemas de arquivos são de propósito geral e especial;

Exemplos (Solaris):

tmpfs Sistemas de arquivos volátil para acesso rápido etemporário;

objfs Símbolos do kernel;ctfs Gerenciamento de daemons;lofs Interface de loopback;

procfs Parâmetros do kernel;ufs, zfs Sistemas de arquivos de uso geral.

24 / 44

Page 25: Eduardo Ferreira dos Santos - Blog de Eduardo Santos · que o arquivo é aberto para permitir a remoção da tabela de arquivos ... Bloco de controle do arquivo ... Exemplo de implementação

Implementação Visão do Sistema Operacional

1 Introdução

2 ImplementaçãoVisão do usuárioVisão do Sistema Operacional

3 Alocação

25 / 44

Page 26: Eduardo Ferreira dos Santos - Blog de Eduardo Santos · que o arquivo é aberto para permitir a remoção da tabela de arquivos ... Bloco de controle do arquivo ... Exemplo de implementação

Implementação Visão do Sistema Operacional

Atributos

Organizamos os arquivos no sistema operacional utilizando umconjunto de atributos:

Nome Única informação legível disponibilizada para os usuários.Identi�cador Número de identi�cação (tag) que identi�ca o arquivo

no sistema de arquivos;Tipo Diferentes tipos de arquivo para diferentes �nalizados.

Ex.: música, vídeo, etc.Localização Ponteiro para o endereço do arquivo no dispositivo;Tamanho Tamanho ocupado;Proteção Controle de permissão e outros controles mais apurados.

Ex.: SELinux;

26 / 44

Page 27: Eduardo Ferreira dos Santos - Blog de Eduardo Santos · que o arquivo é aberto para permitir a remoção da tabela de arquivos ... Bloco de controle do arquivo ... Exemplo de implementação

Implementação Visão do Sistema Operacional

Estrutura do sistema de arquivos

Estrutura dos arquivos:Unidade de armazenamento lógico;Coleção de informações relacionadas.

O sistema de arquivos está na memória secundária (discos);A interface com o usuário realiza o mapeamento entre os endereçoslógicos e físicos;Meio de armazenar e recuperar a informação.

Os sistemas de arquivos são organizados em camadas.

27 / 44

Page 28: Eduardo Ferreira dos Santos - Blog de Eduardo Santos · que o arquivo é aberto para permitir a remoção da tabela de arquivos ... Bloco de controle do arquivo ... Exemplo de implementação

Implementação Visão do Sistema Operacional

Camadas

Figura 2.6: Camadas do sistema de arquivos [Galvin et al., 2013]28 / 44

Page 29: Eduardo Ferreira dos Santos - Blog de Eduardo Santos · que o arquivo é aberto para permitir a remoção da tabela de arquivos ... Bloco de controle do arquivo ... Exemplo de implementação

Implementação Visão do Sistema Operacional

Organização em camadas

A controladora do disco coordena as ações entre o os dispositivos e acamada de I/O;

O sistema de arquivos recebe o comando de recuperar o arquivo emanda para o dispositivo;

Também realiza a gerência de bu�ers e cache;

Bu�er Dados �em trânsito� para o disco;Cache Dados muito utilizados.

Módulo de organização de arquivos compreende os arquivos e seusendereços lógicos e físicos;

o sistema de arquivos lógico controla os metadados;

29 / 44

Page 30: Eduardo Ferreira dos Santos - Blog de Eduardo Santos · que o arquivo é aberto para permitir a remoção da tabela de arquivos ... Bloco de controle do arquivo ... Exemplo de implementação

Implementação Visão do Sistema Operacional

Implementação

Como são implementadas as chamadas de sistema (SYSCALL)?

Bloco de controle de inicialização Informações necessárias para iniciaro sistema operacional a partir daquele volume;

Bloco de controle de volumes Contém os detalhes do volume:Número total de blocos, número de livres, tamanho dobloco, etc;Estrutura de diretórios organiza os arquivos (inodes)

Bloco de controle do arquivo (FCB) Presente em cada arquivo,contém os detalhes sobre o arquivo

EXT3, EXT4 armazenam número do inode, permissões,etc;NTFS armazena os dados em uma tabela de arquivos noformato relacional.

30 / 44

Page 31: Eduardo Ferreira dos Santos - Blog de Eduardo Santos · que o arquivo é aberto para permitir a remoção da tabela de arquivos ... Bloco de controle do arquivo ... Exemplo de implementação

Implementação Visão do Sistema Operacional

Estruturas na memória

Figura 2.7: Abrir (a) e ler (b) um arquivo [Galvin et al., 2013]

31 / 44

Page 32: Eduardo Ferreira dos Santos - Blog de Eduardo Santos · que o arquivo é aberto para permitir a remoção da tabela de arquivos ... Bloco de controle do arquivo ... Exemplo de implementação

Alocação

1 Introdução

2 ImplementaçãoVisão do usuárioVisão do Sistema Operacional

3 Alocação

32 / 44

Page 33: Eduardo Ferreira dos Santos - Blog de Eduardo Santos · que o arquivo é aberto para permitir a remoção da tabela de arquivos ... Bloco de controle do arquivo ... Exemplo de implementação

Alocação

Alocação contígua

Um método de alocação de�ne como os blocos de dados são alocadosno disco.Método de alocação contígua: cada arquivo ocupa um conjuntocontíguo de blocos.

Figura 3.1: Mapeamento lógico para físico [Galvin et al., 2013]

33 / 44

Page 34: Eduardo Ferreira dos Santos - Blog de Eduardo Santos · que o arquivo é aberto para permitir a remoção da tabela de arquivos ... Bloco de controle do arquivo ... Exemplo de implementação

Alocação

Listas encadeadas

Cada arquivo é um conjunto de blocos;

O arquivo acaba no ponteiro nulo;

Mesmo algoritmo utilizado em gerência de memória.

Figura 3.2: Exemplo de lista encadeada [Favacho, 2009]

34 / 44

Page 35: Eduardo Ferreira dos Santos - Blog de Eduardo Santos · que o arquivo é aberto para permitir a remoção da tabela de arquivos ... Bloco de controle do arquivo ... Exemplo de implementação

Alocação

FAT � File allocation table

Há uma tabela no começo do volume identi�cada pelo número;Parecida com a lista encadeada, mais e�ciente no disco.

Figura 3.3: Exemplo de implementação do FAT [Galvin et al., 2013]

35 / 44

Page 36: Eduardo Ferreira dos Santos - Blog de Eduardo Santos · que o arquivo é aberto para permitir a remoção da tabela de arquivos ... Bloco de controle do arquivo ... Exemplo de implementação

Alocação

Índices (inodes)

Cada arquivo tem um ponteiro de índice que aponta para seus blocosde dados.

Figura 3.4: Exemplo de alocação em inodes [Hirata, 2002]36 / 44

Page 37: Eduardo Ferreira dos Santos - Blog de Eduardo Santos · que o arquivo é aberto para permitir a remoção da tabela de arquivos ... Bloco de controle do arquivo ... Exemplo de implementação

Alocação

Mapeamento por índices

Mapeamento de endereço lógico para o endereço físico num arquivo detamanho 256k bytes e tamanho do bloco 512 bytes;Necessário apenas um bloco para o índice.

Figura 3.5: Exemplo de mapeamento [Galvin et al., 2013]

37 / 44

Page 38: Eduardo Ferreira dos Santos - Blog de Eduardo Santos · que o arquivo é aberto para permitir a remoção da tabela de arquivos ... Bloco de controle do arquivo ... Exemplo de implementação

Alocação

Mapeamento por índices II

Mapeia endereço lógico para físico em um arquivo sem limite detamanho;Esquema encadeado: conectar os blocos da tabela de índice.

Figura 3.6: Exemplo de mapeamento II [Galvin et al., 2013]38 / 44

Page 39: Eduardo Ferreira dos Santos - Blog de Eduardo Santos · que o arquivo é aberto para permitir a remoção da tabela de arquivos ... Bloco de controle do arquivo ... Exemplo de implementação

Alocação

Mapeamento por índices III

Dois níveis de índice;Blocos de 4k poderiam armazenar 1024 ponteiros de quatro bytes parao índice externo;1.048.567 blocos de dados e arquivos de até 4GB.

Figura 3.7: Exemplo de mapeamento III [Galvin et al., 2013]

39 / 44

Page 40: Eduardo Ferreira dos Santos - Blog de Eduardo Santos · que o arquivo é aberto para permitir a remoção da tabela de arquivos ... Bloco de controle do arquivo ... Exemplo de implementação

Alocação

Mapeamento por índices IV

Figura 3.8: Exemplo de alocação em inodes [Hirata, 2002]

40 / 44

Page 41: Eduardo Ferreira dos Santos - Blog de Eduardo Santos · que o arquivo é aberto para permitir a remoção da tabela de arquivos ... Bloco de controle do arquivo ... Exemplo de implementação

Alocação

Performance

O melhor método depende do tipo de acesso ao arquivo;

O método contíguo é ótima para acesso sequencial e aleatório;

Listas encadeadas são ótimas para acesso sequencial;

Declara o tipo de acesso na criação;A utilização de índices é mais complexa:

Um único acesso ao bloco pode precisar de duas leituras de índice maisuma leitura do bloco;A utilização de clustering pode aumentar o throughput e diminir oconsumo de CPU.

41 / 44

Page 42: Eduardo Ferreira dos Santos - Blog de Eduardo Santos · que o arquivo é aberto para permitir a remoção da tabela de arquivos ... Bloco de controle do arquivo ... Exemplo de implementação

Alocação

IOPS

Adicionar instruções no �uxo de execução que �economizam� umaoperação de disco parece razoável;

Intel Core i7 Extreme Edition 990x (2011) at 3.46Ghz = 159,000MIPS 2

Typical disk drive at 250 I/Os per second; 159,000 MIPS / 250 = 630million instructions during one disk I/O;

Fast SSD drives provide 60,000 IOPS; 159,000 MIPS / 60,000 = 2.65millions instructions during one disk I/O

2Fonte: http://en.wikipedia.org/wiki/Instructions_per_second42 / 44

Page 43: Eduardo Ferreira dos Santos - Blog de Eduardo Santos · que o arquivo é aberto para permitir a remoção da tabela de arquivos ... Bloco de controle do arquivo ... Exemplo de implementação

Alocação

OBRIGADO!!!

PERGUNTAS???

43 / 44

Page 44: Eduardo Ferreira dos Santos - Blog de Eduardo Santos · que o arquivo é aberto para permitir a remoção da tabela de arquivos ... Bloco de controle do arquivo ... Exemplo de implementação

Alocação

Favacho, A. (2009).Notas de aula da Profa. Aletéia Favacho.

Galvin, P. B., Gagne, G., and Silberschatz, A. (2013).Operating system concepts.John Wiley & Sons, Inc.

Hirata, R. (2002).Otimizando servidores web de alta demanda.Master's thesis, UNICAMP.

Tanenbaum, A. S. and Machado Filho, N. (1995).Sistemas operacionais modernos, volume 3.Prentice-Hall.

44 / 44