Implementação de sistema de arquivos

Documentos relacionados
Sistemas de arquivos Discos

Sistemas de Entrada e Saída

Sistemas de Entrada e Saída

Gerência de Memória. Eduardo Ferreira dos Santos. Abril, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 45

Sistemas de Arquivos. (Aula 23)

Unidade II FUNDAMENTOS DE SISTEMAS OPERACIONAIS. Prof. Victor Halla

Capítulo 11: Implementação de Sistemas de Arquivos. Operating System Concepts 8th Edition

Sistemas Operacionais

Sistemas Operacionais

Disciplina: Sistemas Operacionais

Gerência de memória III

Sistemas Operacionais. Prof. André Y. Kusumoto

Capítulo 10: Interface de Sistemas de Arquivos. Operating System Concepts 8 th Edition

Sistemas Operacionais

Sistemas de Entrada e Saída

Gerência de memória II

Chamadas de Sistema (SYSCALL)

Sistemas Operacionais

Sistemas Operacionais

Implementação de Sistemas de Arquivos. Na Aula Anterior... Esquema do Sistema de Arquivos. Nesta Aula 31/10/2016. Estrutura de Baixo Nível de um Disco

Sistemas Operacionais. Prof. MSc André Y. Kusumoto

Sistemas Operacionais. Prof. André Y. Kusumoto

Sistemas de arquivos

INTRODUÇÃO A SISTEMAS DE ARQUIVO E GERENCIA DE MEMÓRIA

LISTA DE EXERCÍCIOS 02

INTRODUÇÃO AOS SISTEMAS DE ARQUIVO. Prof. Hélio Esperidião

Sistemas de Arquivos. Pedro Cruz. EEL770 Sistemas Operacionais

Escalonamento. Eduardo Ferreira dos Santos. Abril, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 28

Armazenamento Secundário. Endereços no disco. Organização da informação no disco. Organização da informação no disco

Introdução. Pedro Cruz. EEL770 Sistemas Operacionais

ARMAZENAMENTO SECUNDÁRIO, PARTE 1 Professora Rosane Minghim

Sistemas de Informação. Sistemas Operacionais

slide Pearson Prentice Hall. Todos os direitos reservados.

O que faz? De tudo um pouco.

Implementação de Diretórios (1)

Capítulo 11 Sistemas de Arquivos

Gerência do Sistema de Arquivos. Adão de Melo Neto

Introdução à Informática. Alexandre Meslin

Armazenamento Secundário

Sistemas de Arquivos

Introdução. Considerações:


Sistema de arquivos. Adriano J. Holanda 24/5/2016

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ACESSO, ATRIBUTOS E OPERAÇÕES COM ARQUIVOS PROFESSOR CARLOS MUNIZ

Sistemas Operacionais Arquivos. Carlos Ferraz Jorge Cavalcanti Fonsêca

Fundamentos de Arquivos e Armazenamento Secundário

HDs. Armazenamento Secundário. HDs. Capacidade do Disco. Organização de Informação em Disco. Organização de Informação em Disco

Protótipo tipo de um sistema de arquivos para ambiente distribuído

Capítulo 8: Memória Principal. Operating System Concepts 8 th Edition

Sistemas Operacionais. Sistema de Arquivos. Edeyson Andrade Gomes.

slide Pearson Prentice Hall. Todos os direitos reservados.

Sistemas Operacionais

Introdução aos Sistemas Operacionais. Subsistema de Arquivos

Sistemas Operacionais. BC Sistemas Operacionais

Sistemas de Arquivos. Carlos Gustavo A. da Rocha. Sistemas Operacionais

UFRJ IM - DCC. Sistemas Operacionais I. Unidade IV Gerência de Recursos Entrada e Saída. 02/12/2014 Prof. Valeria M. Bastos

- Campus Salto. Disciplina: Sistemas de Arquivos Docente: Fernando Santorsula

Sistemas Operacionais

SISTEMAS DE ARQUIVOS. Uma das funções de um sistema operacional, é organizar as informações nas memórias de um computador ou dispositivo móvel.

Gerência de Entrada e Saída

Redes de Computadores. Fundamentos de Sistemas Operacionais - 2º Período

Métodos de Sincronização

Disco como gargalo. Armazenamento Secundário. Técnicas p/ minimizar o problema. Técnicas p/ minimizar o problema

Sistemas de Ficheiros

Sistemas Operacionais

Escalonamento. Eduardo Ferreira dos Santos. Abril, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 42

Sistemas de Computação. Gerenciamento de memória

Sistemas de Arquivos. Capítulo 6. Sistemas Operacionais João Bosco Junior -

Aula 03 - Concorrência. por Sediane Carmem Lunardi Hernandes

Capítulo 6 Nível do Sistema Operacional

ARMAZENAMENTO SECUNDÁRIO, PARTE 2

INTRODUÇÃO À ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES. Função e Estrutura. Introdução Organização e Arquitetura. Organização e Arquitetura

Estados dos processos. Infra Estruturas Computacionais. A troca de contexto. Escalonamento de Processos. Escalonamento de Processos

Gerência do Sistema de Arquivos. Adão de Melo Neto

Sistemas Operacionais

SSC0611 Arquitetura de Computadores

Gerência do Sistema de Arquivos. Adão de Melo Neto

Informática I. Aula 2. Ementa

Técnico Subsequente em Redes de Computadores Introdução a Sistemas Abertos (ISA)

Gerência de Dispositivos. Adão de Melo Neto

Fundamentos de Sistemas Operacionais

Sistemas Operacionais Gerenciamento de Memória. Carlos Ferraz Jorge Cavalcanti Fonsêca

FUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES MEMÓRIA CACHE CAPÍTULO 5. Cristina Boeres

SISTEMAS OPERACIONAIS. 2ª. Lista de Exercícios Parte 2

Fundamentos de Sistemas Operacionais

Instalação e Configuração de Servidores Linux Server Partições e Sist. de Arquivos. Prof. Alex Furtunato

Prof. Adriano Maranhão

SSC0640 Sistemas Operacionais I

Gerência de Memória. Gerência de Memória Introdução e Particionamento. Novo capítulo. Aulas anteriores. Plano da aula. Memória lógica & física

Sistemas Operacionais

Sistemas Operacionais

Sistema de Arquivos. Introdução

William Stallings Arquitetura e Organização de Computadores 8 a Edição

Funções de um SO. Gerência de processos Gerência de memória Gerência de Arquivos Gerência de I/O Sistema de Proteção

SOP - TADS Fundamentos de Sistemas Operacionais

Gerência de Memória. Execução de um Programa (1) Introdução. Introdução

Organização e Arquitetura de Computadores INTRODUÇÃO

Sistemas Operacionais

Sistemas Opera r cionais Gerência de Memória

Transcriçã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

Sumário 1 Introdução 2 Implementação Visão do usuário Visão do Sistema Operacional 3 Alocação 2 / 44

Introdução 1 Introdução 2 Implementação Visão do usuário Visão do Sistema Operacional 3 Alocação 3 / 44

Introdução Deniçõ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 pelo término do processo. 4 / 44

Introdução Mecanismo do disco Figura 1.1: Movimento da cabeça do disco [Galvin et al., 2013] 5 / 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 o mecanismo do hardware; Abstração: ao solicitar um arquivo, você não está preocupado onde ele está armazenado dentro do disco; Organização dos arquivos no sistema operacional: facilidade/diculdade de acesso. 6 / 44

Introdução Gerenciador de arquivos Quando salvamos o arquivo no disco, estamos executando as seguintes tarefas: 1 O programa pede ao sistema operacional para escrever o conteúdo de uma 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 o arquivo; 4 O gerenciador de arquivos busca em uma tabela a localização física do setor que deve conter o byte (cilindro, trilha, setor); 5 O gerenciador de arquivos instrui o processador de I/O (que libera a CPU de cuidar do processo de transferência) sobre a posição do byte na RAM, e onde ele deve ser colocado no disco; 6 O processador de I/O formata o dado apropriadamente, e decide o melhor momento de escrevê-lo no disco. 7 / 44

1 Introdução 2 Implementação Visão do usuário Visão do Sistema Operacional 3 Alocação 8 / 44

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 das informações; O funcionamento dos discos é irrelevante; Identicar 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; Conabilidade e funcionamento. Ambas as visões precisam ser abordadas pelo Sistema Operacional. 9 / 44

Visão do usuário 1 Introdução 2 Implementação Visão do usuário Visão do Sistema Operacional 3 Alocação 10 / 44

Visão do usuário Nomeação Principal regra de identicação para o usuário: nome do arquivo; O nome pode utilizar letras maiúsculas e minúsculas; Extensão: identicação do tipo de arquivo; Unix/Linux: a extensão do arquivo não importa tanto assim. Saída do comando 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

Visão do usuário Arquivos regulares Denição: sequência de bits contendo unidades lógicas criadas pelos usuários; As sequências de bits precisam ser decodicadas em palavras visíveis ao usuário. Figura 2.1: ASCII e Unicode 1 1 http://paginaspersonales.deusto.es/abaitua/konzeptu/unicode/uc20ch1.html 12 / 44

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 Identica o arquivo e seus componentes. Ex.: tamanho das partes, endereço inicial de execução, etc. Texto Pode possuir um conteúdo de texto codicado; 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

Visão do usuário Métodos de acesso Sequencial Acesso sequencial Informaçõ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 o próximo registro; A escrita é feita adicionando o novo registro ao nal do arquivo; Figura 2.2: Acesso sequencial [Galvin et al., 2013] 14 / 44

Visão do usuário Direto Acesso direto Modelo de discos: o arquivo é visto como uma sequência de 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

Visão do usuário Exemplos de acesso r e a d n e x t w r i t e n e x t r e s e t Listing 1: Acesso sequencial n r e a d w r i t e n p o s i t i o n t o n r e a d n e x t w r i t e n e x t r e w r i t e n Listing 2: Acesso direto 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 armazenar o arquivo. 16 / 44

Visão do usuário Métodos de acesso Figura 2.3: Métodos de acesso [Galvin et al., 2013] 17 / 44

Visão do usuário Acesso pelo índice Figura 2.4: Acesso através do índice [Galvin et al., 2013] 18 / 44

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 suciente; 2 Identicar 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 atual do arquivo; Abrir Coloca na memória principal os principais atributos e a lista de endereços; Fechar Libera o espaço de memória alocado. 19 / 44

Visão do usuário Arquivos abertos É muito importante manter a gestão sobre todos os arquivos que estão abertos; Várias estruturas de dados diferentes são necessárias para manter o controle: Tabela de arquivos abertos: controla todos os arquivos que estão abertos; Ponteiro do arquivo: ponteiro que aponta para a última posição de leitura/escrita, em cada processo, que mantém um arquivo aberto; Contador de arquivos abertos: mantém um contador de todas as vezes que o arquivo é aberto para permitir a remoção da tabela de arquivos abertos quando ele for fechado; Localização do arquivo no disco Permissões de acesso: informação armazenada por processo. 20 / 44

Visão do usuário Sistema de travas Em alguns sistemas operacionais e sistemas de arquivos um sistema de travas (locks) é utilizado para controlar o acesso do sistema operacional; Shared lock Similar à trava de leitura: vários arquivos podem obter ao mesmo tempo Exclusive lock Similar à trava de escrita Organiza o acesso aos arquivos. 21 / 44

Visão do usuário Diretórios Denição [Favacho, 2009]: tabela de símbolos que traduz os nomes de arquivos 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

Visão do usuário Particionamento Figura 2.5: Particionamento e sistema de arquivos [Galvin et al., 2013] 23 / 44

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 e temporá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

Visão do Sistema Operacional 1 Introdução 2 Implementação Visão do usuário Visão do Sistema Operacional 3 Alocação 25 / 44

Visão do Sistema Operacional Atributos Organizamos os arquivos no sistema operacional utilizando um conjunto de atributos: Nome Única informação legível disponibilizada para os usuários. Identicador Número de identicação (tag) que identica 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

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ços lógicos e físicos; Meio de armazenar e recuperar a informação. Os sistemas de arquivos são organizados em camadas. 27 / 44

Visão do Sistema Operacional Camadas Figura 2.6: Camadas do sistema de arquivos [Galvin et al., 2013] 28 / 44

Visão do Sistema Operacional Organização em camadas A controladora do disco coordena as ações entre o os dispositivos e a camada de I/O; O sistema de arquivos recebe o comando de recuperar o arquivo e manda para o dispositivo; Também realiza a gerência de buers e cache; Buer Dados em trânsito para o disco; Cache Dados muito utilizados. Módulo de organização de arquivos compreende os arquivos e seus endereços lógicos e físicos; o sistema de arquivos lógico controla os metadados; 29 / 44

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 iniciar o 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 do bloco, 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 no formato relacional. 30 / 44

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ção Visão do usuário Visão do Sistema Operacional 3 Alocação 32 / 44

Alocação Alocação contígua Um método de alocação dene como os blocos de dados são alocados no disco. Método de alocação contígua: cada arquivo ocupa um conjunto contí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 identicada pelo número; Parecida com a lista encadeada, mais eciente 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 blocos de 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 de tamanho 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 de tamanho; 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 para o í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 Mapeamento por índices IV Figura 3.8: Exemplo de alocação em inodes [Hirata, 2002] 40 / 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 mais uma leitura do bloco; A utilização de clustering pode aumentar o throughput e diminir o consumo de CPU. 41 / 44

Alocação IOPS Adicionar instruções no uxo de execução que economizam uma operação de disco parece razoável; Intel Core i7 Extreme Edition 990x (2011) at 3.46Ghz = 159,000 MIPS 2 Typical disk drive at 250 I/Os per second; 159,000 MIPS / 250 = 630 million instructions during one disk I/O; Fast SSD drives provide 60,000 IOPS; 159,000 MIPS / 60,000 = 2.65 millions instructions during one disk I/O 2 Fonte: http://en.wikipedia.org/wiki/instructions_per_second 42 / 44

Alocação OBRIGADO!!! PERGUNTAS??? 43 / 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