eduardo ferreira dos santos · memória secundáriaespaço de endereçamento em arquivos. sistemas...
Post on 17-Nov-2018
213 Views
Preview:
TRANSCRIPT
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
Introdução
1 Introdução
2 ImplementaçãoVisão do usuárioVisão do Sistema Operacional
3 Alocação
3 / 44
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
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
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
Implementação
1 Introdução
2 ImplementaçãoVisão do usuárioVisão do Sistema Operacional
3 Alocação
8 / 44
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
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
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
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
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
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
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
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
Implementação Visão do usuário
Métodos de acesso
Figura 2.3: Métodos de acesso [Galvin et al., 2013]
17 / 44
Implementação Visão do usuário
Acesso pelo índice
Figura 2.4: Acesso através do índice [Galvin et al., 2013]
18 / 44
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
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
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
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
Implementação Visão do usuário
Particionamento
Figura 2.5: Particionamento e sistema de arquivos [Galvin et al., 2013]
23 / 44
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
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
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
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
Implementação Visão do Sistema Operacional
Camadas
Figura 2.6: Camadas do sistema de arquivos [Galvin et al., 2013]28 / 44
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
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
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
Alocação
1 Introdução
2 ImplementaçãoVisão do usuárioVisão do Sistema Operacional
3 Alocação
32 / 44
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
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
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
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
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
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
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
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
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
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
top related