Diretório
Transcrição
Diretório
Introdução • • • • O sistema de arquivos é a parte mais vísivel do sistema operacional Cria um recurso lógico a partir de recursos físicos através de uma interface coerente e simples, fácil de usar Mecanismo para armazenamento e acesso a dados e a programas Duas partes básicas: • Arquivos • Armazenamento de dados e de programas • Diretórios • Organização e informações sobre arquivos Sistemas Operacionais 1 Objetivos do sistema de arquivos • • • • • Fornecer mecanismos para usuários manipular arquivos e diretórios Garantir a validade e coerência de dados • Minimizar ou eliminar o risco de perda/alteração de dados Otimizar o acesso Fornecer suporte a outros sistemas de arquivos Suporte a vários usuários (multiprogramação) • Uso compartilhado (proteção e acesso concorrente) Sistemas Operacionais 2 Requisitos mínimos: ponto de vista do usuário • Cada usuário deve ser capaz de: • Criar, apagar, ler e alterar arquivos • Controlar as permissões de acesso a seus arquivos • Nomear arquivos de forma simbólica • Estruturar os arquivos de forma a adequá-los a suas necessidades específicas • Criação de diretórios e subdiretórios • Realizar back-ups e recuperar arquivos em caso de problemas Sistemas Operacionais 3 Requisitos mínimos: ponto de vista do sistema • O sistema operacional deve ser capaz: • Descrever a localização de todos os arquivos e de seus atributos • Via diretório • Gerenciar espaço físico do disco • Alocar blocos livres a arquivos em criação/expansão • Liberar blocos de arquivos removidos • Mecanismos para localizar eficientemente blocos (setores) que compõem arquivos Sistemas Operacionais 4 Conceitos básicos • • • Arquivos • Recipientes que contêm dados Diretórios • Conjuntos de referências a arquivos Partição • Abstração que permite a partir do disco físico criar discos lógicos Sistemas Operacionais 5 Conceito de arquivo • • • Informação pode ser armazenada em diferentes tipos de mídia • O sistema operacional deve oferecer uma visão uniforme da informação independente do dispositivo físico de armazenamento • Visão lógica é o arquivo Arquivos são mapeados para dispositivos físicos Arquivos possuem: • Nome • Atributos • Estrutura interna • Tipo • Método de acesso • Operações Sistemas Operacionais 6 Nomes de arquivos • • O sistema de arquivos define um espaço de nomes • Conjunto de regras e convenções para identificar simbolicamente um arquivo Variam de sistema para sistema • Distinção entre letras maiúsculas e minúsculas • Obrigatoriedade ou não de uma extensão • As vezes extensões são apenas convenções • Tamanho máximo de nome e da extensão (se houver) Sistemas Operacionais 7 Atributos de um arquivo • • • Informações sobre arquivos • Nome: informação simbólica empregada para referenciar o arquivo • Tipo: binário, texto, executável, caracter, bloco • Localização: posição do arquivo em um determinado dispositivo E/S • Tamanho: número de bytes que compõem o arquivo • Proteção: controla acesso de leitura, escrita e execução ao arquivo • Hora e data de criação, identificação do usuário: informações destinadas à proteção, segurança e monitoração Varia de sistema operacional a sistema operacional Atributos são mantidos em uma estrutura a parte • Diretório Sistemas Operacionais 8 Estruturas de arquivos • • • Sequência de bytes Sequência de registros Árvore Sistemas Operacionais 9 Seqüência de bytes • • • Sistema operacional não “interpreta” o conteúdo do arquivo • Enxerga apenas bytes Interpretação é a nível do programa de usuário Vantagem: • Flexibilidade Sistemas Operacionais byte 10 Seqüência de registros • • • Arquivo é “interpretado” como uma sequência de registros, isto é • Tamanho fixo • Estrutura interna Operações leem/escrevem registros Emprego raro Sistemas Operacionais registro 11 Árvore • • Conjunto de registros não necessariamente de mesmo tamanho • Possuem um campo de acesso (chave) Comum em mainframes • Método ISAM (Indexed Sequential Access Method) C C D H Sistemas Operacionais I A F P G L O P R W L 12 Tipos de arquivo • • Sistema operacional suporta vários tipos de arquivos Tipos comuns: • Regular • Arquivos de dados em ASCII e binário • Diretório • Arquivos que mantém a estrutura (organização) do sistema de arquivos • Arquivos especiais de caracter/bloco • Vinculados a dispositivos de entrada e saída Sistemas Operacionais 13 Exemplos de arquivos UNIX executável (formato a.out) Sistemas Operacionais biblioteca 14 Métodos de acesso • • Forma pela qual o conteúdo de um arquivo é acessado Métodos elementares de acesso: • Acesso sequencial • Acesso relativo Sistemas Operacionais 15 Acesso sequencial • • • Acesso a um arquivo é feito através de primitivas (chamadas de sistema) do tipo read e write Cada chamada de sistema read retorna ao processo os dados seguintes àqueles que foram lidos na chamada anterior Método não adequado a todas aplicações • e.g.: acesso e atualização a cadastros de funcionários Sistemas Operacionais 16 Acesso relativo • • Provê uma chamada de sistema específica para indicar o ponto em que um arquivo deve ser lido/escrito Implementado através da abstração de “posição corrente no arquivo” Sistemas Operacionais 17 Outros tipos de acesso • • Os métodos sequencias e relativos não resolvem todos os tipos de acesso • e.g.: localizar um registro a partir do conteúdo Necessidades de métodos de acesso mais sofisticados, tais como sequencial indexado, indexado, direto, hash, etc. • Normalmente implementados por programas específicos • Baseados nos métodos de acesso sequencial e relativo Sistemas Operacionais 18 Operações básicas sobre arquivos • • Arquivo é um tipo abstrato de dados sobre o qual se pode efetuar uma série de operações • Criação (create) • Escrita (write) e leitura (read) • Reposicionamento em um ponto qualquer do arquivo (file seek) • Remoção (delete) • Abertura (open) e encerramento (close) • Adicionalmente: truncagem (truncate); renomeação (rename); appending, etc. Geralmente correspondem a chamadas de sistema • Operações mais complexas podem ser criadas utilizando-se das operações básicas Sistemas Operacionais 19 Controle de acesso • • • • Importante controlar o acesso aos arquivos devido a questões de segurança e de confidencialidade Objetivo é evitar acessos indevidos a arquivos Baseado na identificação dos usuários • Sistema de autenticação padrão (login name + senha) • Usuários possuem direitos de acessos Solução típica: • Lista de acesso e grupo Sistemas Operacionais 20 Listas de acesso • • • Consiste em associar a cada arquivo e/ou diretório uma lista de acesso que determina que tipos de acessos são permitidos para cada usuário Maior inconveniente é o tamanho da lista Uma solução consiste em: • Criar classes de usuários • e.g.: proprietário, grupo, universo • Tipos de acessos • e.g: read, write, modify, execute Sistemas Operacionais 21 Exemplo: UNIX • • Cada objeto oferece 3 bits (rwx) para três domínios diferentes: proprietário, grupo e outros Problema de flexibilidade • Quando um usuário pertence a vários grupos ele é identificado por um grupo primário e o arquivo (/etc/groups) mantém todos os grupos a que ele pertence r w x r- - r - - Sistemas Operacionais 1 mary staff 214056 May 30 22:19 windbind.pdf 22 Outra abordagem: senhas • • Associar uma senha a cada arquivo • A grande desvantagem é o número de senhas Declaração de compartilhamento de arquivo e/ou subdiretório • Esquema utilizado pelo Macintosh e pelo Windows Sistemas Operacionais 23 Implementação de arquivos • • • Arquivos são implementados através da criação, para cada arquivo no sistema, de uma estrutura de dados Descritor de arquivo é um registro que mantém informações sobre o arquivo Informações típicas (atributos): • Nome do arquivo • Tamanho em bytes • Data e hora da criação, do último acesso, da última modificação • Identificação do usuário que criou o arquivo • Listas de controle de acesso • Local do disco físico onde o conteúdo do arquivo foi colocado • Etc. Sistemas Operacionais 24 Tabelas de descritores de arquivos • • • Descritores de arquivos são armazenados no próprio disco • Na realidade no mesmo disco lógico (partição) Problema de desempenho • Acesso ao disco para ler o descritor de arquivos é lento • Solução é manter descritor em memória enquanto o arquivo estiver em uso • Indicação se arquivo está em uso normalmente é feito pelo próprio usuário (aplicação) através de chamadas do tipo open e close Sistema de arquivos mantém os descritores de arquivos em memória em uma estrutura de dados do sistema operacional • Tabela de descritores de arquivos abertos (TDAA) Sistemas Operacionais 25 Tabelas de arquivos abertos por processo • • • Informações relacionadas com arquivos são de dois tipos: • Não variam conforme o processo que está acessando o arquivo • e.g.: tamanho do arquivo • Dependem do processo que está acessando o arquivo • e.g.: posição corrente Informações dependentes do processo são armazenadas em uma tabela à parte mantida pelo processo (TAAP) • e.g.: posição corrente no arquivo, tipo de acesso e apontador para a entrada correspondente na TDAA Entrada na TAAP serve para referenciar o arquivo • File handle Sistemas Operacionais 26 Emprego conjunto das tabelas TAAP e TDAA FileHandle PosCor=12 Leitura FileHandle PosCor=55 Leitura & esc Arquivo B Tabela de arquivos abertos processo 0 Arquivo A Descritor Arquivo A Descritor Arquivo B FileHandle PosCor=10 Leitura Tabela de arquivos abertos por processo 1 Sistemas Operacionais Tabela de Arquivos Abertos 27 Leituras complementares • • R. Oliveira, A. Carissimi, S. Toscani; Sistemas Operacionais. Editora Bookman, 2010. • Capítulo 8, seções 8.1, 8.2, e 8.3 A. Silberchatz, P. Galvin; Operating System Concepts. Addison-Wesley, (4th edition). • Capítulo 10, seções 10.1, 10.2,10.4, e 10.5 Sistemas Operacionais 28 Gerenciamento do dispositivo de armazenamento • • • Problema: arquivos devem ser armazenados no disco!! • Unidade de manipulação dos dados no dispositivo físico (bloco) Pontos a serem tratados: • Relação número de setores do disco que compõem um bloco • Não necessita ser 1:1 • Alocação de blocos no disco • Recuperação de blocos liberados • Localização de dados no disco Existe uma relação entre a política de alocação com a política de gerência de espaço livre Sistemas Operacionais 29 Alocação do espaço em disco • • Como alocar espaço em disco de forma que os arquivos sejam armazenados de forma eficiente e que permita acesso rápido • Alocar blocos livres suficientes para armazenar o arquivo • Blocos lógicos do disco são numerados sequencialmente Duas formas básicas: • Contígua (alocação contigua) • Não contígua (alocação encadeada e alocação indexada) Sistemas Operacionais 00 01 02 03 04 05 06 .... 53 54 55 .... 72 73 74 ... 96 97 98 .... 30 Alocação contígua • • • Arquivo é uma sequência de blocos lógicos contíguos alocados no momento da criação Endereços no disco são lineares • bloco lógico i e i+1 são armazenados fisicamente em sequência • Reduz a necessidade de seek já que blocos estão na mesma trilha • No pior caso necessita apenas a troca de cilindro Arquivo é descrito através de uma entrada na forma: • Bloco físico inicial • Tamanho do arquivo em blocos Sistemas Operacionais 31 Esquema alocação contígua Sistemas Operacionais 32 Problemas com alocação contígua • • Problema 1: encontrar espaço para um novo arquivo • Técnicas de gerência de memória • e.g.; first-fit, best-fit, worst-fit • Gera fragmentação externa • Necessidade de compactação Problema 2: determinar o espaço necessário a um arquivo • Arquivos tendem a crescer, e se não há espaço contíguo disponível? • Aborta execução do programa com erro • Recopia o programa para uma zona maior • Pré-alocar um espaço máximo para o arquivo • Fragmentação interna Sistemas Operacionais 33 Alocação encadeada • • • • Soluciona os problemas da alocação contígua • Relação a dimensionamento do tamanho e crescimento de arquivos Alocação é baseada em uma unidade de tamanho fixo (bloco lógico) • Análogo à paginação Arquivo é uma lista encadeada de blocos • Cada bloco contém um ponteiro para o próximo bloco Arquivo é descrito em uma entrada na forma: • Bloco inicial do arquivo • Bloco final do arquivo ou tamanho do arquivo em blocos Sistemas Operacionais 34 Esquema de alocação encadeada Sistemas Operacionais 35 Prós e contras da alocação encadeada • • • • Elimina a fragmentação externa Arquivos podem crescer indefinidamente • Não há necessidade de compactar o disco O acesso a um bloco i implica em percorrer a lista encadeada • Afeta o desempenho • Adequado para acesso sequêncial a arquivos Confiabilidade • Erro provoca a leitura/escrita em bloco pertencente a outro arquivo Sistemas Operacionais 36 Exemplo: File Allocation Table (FAT) • • Variação de alocação encadeada FAT é uma tabela de encadeamento de blocos lógicos • Uma entrada na FAT para cada bloco lógico do disco (sistema de arquivos) • Composta por um ponteiro (endereço do bloco lógico) • Arquivo é descrito por uma sequência de entradas na FAT, cada entrada apontando para a próxima entrada Sistemas Operacionais 37 Sistema de arquivos FAT (MS-DOS) • Organização lógica do disco: Setor 0 Área reservada FAT Diretório raiz Setor n • • • Arquivos Diretório raiz possui tamanho fixo em função da capacidade do disco • Cada entrada possui 32 bytes Tamanho da File Allocation Table (FAT) é proporcional a capacidade do disco Alocação é baseada em clusters (bloco lógico) • 2n setores (depende da capacidade do disco) Sistemas Operacionais 38 Esquema de funcionamento da FAT • Desvantagem principal é o tempo de seek FAT Diretório 0 jeep 217 Primeiro setor do arquivo (start block) 618 217 400 EOF 399 400 399 Sistemas Operacionais 618 39 Alocação indexada • • • • Busca 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õe O índice é mantido em um bloco Diretório possui um ponteiro para o bloco onde está o índice associado a um determinado arquivo Sistemas Operacionais 40 Esquema de alocação indexada Sistemas Operacionais 41 Prós e contras da alocação indexada • • • Permite o acesso randômico a blocos independentes de sua posição relativa no arquivo Tamanho máximo do arquivo é limitado pela quantidade de entradas suportadas pelo bloco • Muito pequeno (limita tamanho do arquivo) • Muito grande (desperdiça espaço em disco) Solução é utilizar dois tamanhos de blocos, um para índice e outro para dados • e.g.: i-nodes e bloco de dados em sistemas UNIX Sistemas Operacionais 42 Variações em alocação indexada • • Buscam resolver o problema do tamanho do bloco de índices Três métodos básicos: • Encadeado • Multinível • Combinado Sistemas Operacionais 43 Método encadeado • O índice mantém ponteiros para os blocos que compõem o arquivo com exceção da última entrada • Mantém um ponteiro para outro bloco onde o índice continua Bloco de índices (0) Bloco de dados (618) 0 k k+1 n-1 n Bloco de índices (300) 618 400 300 k k+1 n-1 n Sistemas Operacionais Bloco de dados (500) 500 NULL NULL 44 Método multinível • Mantém um índice de índices • Não resolve completamente o problema de limite Bloco de índices (310) 0 Bloco de índice de índices (0) 0 310 n-1 n Bloco de dados (10) n-1 n 10 Bloco de índices (700) 0 442 530 700 Bloco de dados (442) n-1 n Sistemas Operacionais 45 Método combinado • • Métodos encadeado e multinível em uma única estrutura de dados O que justifica essa combinação? • Acesso otimizado a blocos de dados: método indexado • Limite de arquivos: multinível Bloco de dados (310) Bloco combinado (0) Ponteiros p/ bloco de dados 0 Ponteiros p/ bloco de índices n-1 n Sistemas Operacionais Bloco de índices (700) 0 442 310 530 700 Bloco de dados (442) n-1 n 46 Exemplo: estrutura de i-nodes (UNIX) 128 bytes Sistemas Operacionais 10 47 Problema com os métodos de alocação não contígua • • Necessidade de acessar áreas específicas do disco para ler as informações de encadeamento • Quantidade de seeks depende do tipo da estrutura (FAT ou descritores) Solução é manter em memória • Tradicionais problemas de área de memória ocupada e de confiabilidade Sistemas Operacionais 48 Resumo dos tipos de alocação • • • Alocação contígua • Só armazena endereço do primeiro bloco • Acesso randômico é possível (bloco inicial + deslocamento) • Gera fragmentação externa no disco Alocação encadeada • Armazena endereço do primeiro bloco • Problema de desempenho (seek) • Não recomendado para acesso randômico Alocação indexada • Visa solucionar problemas dos tipos anteriores • Análise de desempenho (tamanho + tempo de acesso ) é complexa • Depende da estrutura de índice e do tamanho de arquivo Sistemas Operacionais 49 Conclusão: qual o melhor método de alocação? • • • Depende do tipo de acesso que o sistema faz a seus arquivos • Sequêncial versus randômico Fator adicional: • Evolução tecnológica (novos hardwares) e de desempenho forçam a coexistência de diferentes sistemas de arquivos Necessidade de “fazer conviver” diferentes sistemas de arquivos em um mesmo computador • Suporte a múltiplos sistemas de arquivos Sistemas Operacionais 50 Suporte a múltiplos sistemas de arquivos • • Fazer com que o sistema operacional suporte diversos sistemas de arquivos diferentes simultaneamente Solução inspirada na gerência de periféricos • Parte independente do dispositivo • Serviços idênticos independente do tipo de sistema de arquivos • Parte dependente do dispositivo • Interface padrão Virtual File System (VFS) CD-ROM Sistemas Operacionais Partição raw Disquete 51 Implementação de múltiplos sistemas de arquivos • • • Cada partição possui um único sistema de arquivos Tabela com descritores virtuais de arquivos abertos • Parte independente do sistema de arquivos • Uma entrada ocupada para cada arquivo aberto (descritor virtual) Descritor virtual • Informações comuns a todo sistema de arquivo (proteção, nro de acessos, ...) • Apontador para uma estrutura “Tipo do sistema de arquivos” • Apontador para o descritor do sistema de arquivos real • Lista de ponteiros para rotinas que implementam o código necessário à execução de uma dada chamada de sistema (read, write, close,...) • Informações sobre a gerência desse sistema de arquivos (blocos livres, ocupados, estrutura de diretórios, ...) Sistemas Operacionais 52 Múltiplos sistemas de arquivos: estrutura de dados Tabela com descritores virtuais dos arquivos abertos ... tipo contador de uso dados dependentes ... tipo contador de uso dados dependentes Tab. descritores Sist. Arq. 1 tamanho localização direitos etc Descritor do S.A. 1 open read write ... tab. descritores dados ... ... ... Tab. descritores Sist. Arq. 2 tamanho localização direitos etc Descritor do S.A. 2 open read write ... tab. descritores dados ... ... Sistemas Operacionais 53 Organização da cache de disco • • • • Objetivo é manter na memória principal uma certa quantidade de blocos do disco Não adiciona nem elimina funcionalidades ao sistema de arquivos • Função é melhorar o desempenho do sistema de arquivos Não confundir com a cache do processador Normalmente a cache de disco é mantida em uma área da memória principal e é controlada pelo sistema operacional • Pode ser global ou exclusiva (uma por sistema de arquivo suportado) Sistemas Operacionais 54 Funcionamento da cache de disco • • • Em uma requisição de E/S verifica se o bloco está na cache • Sim: realiza o acesso a partir dessa cópia em memória • Não: realiza o acesso a partir do disco e carrega o bloco para a cache A modificação de valores é feito em blocos na cache • Problema de quando atualizar o disco após um bloco ter sido alterado Problema da perda de informações e da consistência do sistema de arquivos em caso de pane do sistema (falta de energia) Sistemas Operacionais 55 Políticas de atualização da cache • • • • Posterga ao máximo Atualiza a cada intervalo de tempo Atualiza imediatamente no disco Atualiza imediatamente apenas informações sensíveis a consistência do sistema do arquivo Sistemas Operacionais 56 Política de substituição • • • A cache de disco é um recurso limitado O que fazer quando um novo bloco deve ser inserido na cache e não há espaço livre ? • Problema similar à gerência de memória virtual (substituição de páginas) Tipicamente a política Least-Recently-Used (LRU) é empregada Sistemas Operacionais 57 Implementação da política LRU • • Facilmente implementada através de uma lista duplamente encadeada • Quando o bloco é acessado ele é removido de sua posição na lista e colocado no início da lista • Todo bloco novo (acessado pela primeira vez) também é inserido no início da lista • O bloco menos recentemente acessado é o último da lista Existe o problema de localizar rapidamente um bloco na lista • Emprego de função hash Sistemas Operacionais 58 Implementação da cache do sistema de arquivos HASH( partição, número do bloco ) LRU - início LRU - fim conteúdo do bloco informações adicionais Sistemas Operacionais 59 Gerenciamento do espaço livre • • • Necessário manter a informação de blocos livres e ocupados Métodos básicos: • Mapa de bits (bitmap) • Lista de blocos livres Ambos métodos consideram que os blocos no disco são numerados sequencialmente Sistemas Operacionais 00 01 02 03 .... 25 26 .... 53 54 55 .... 72 73 74 ... 96 97 98 .... 60 Mapa de bits (bit map) • • Forma simples de gerenciar o espaço em disco Cada bloco do disco possui um bit indicando se o bloco está livre ou ocupado Disco Bloco 0 Físico 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Sistemas Operacionais Mapa de Bits. 0 0 1 0 1 0 1 0 0 0 1 1 0 0 0 0 tamanho_ bit _ map Capacidade_ disco(bytes) 8 tamanho_ bloco(bytes) 61 Lista de blocos livres • • • Os blocos livres são organizados em uma lista Lista é mantida no próprio disco • Problema é o tamanho da lista • Paliativo: a medida que o espaço em disco é ocupado a lista diminui de tamanho liberando espaço do disco Solução alternativa é manter uma lista de áreas livres ao invés de uma lista de blocos livres • Endereço do bloco inicial da área livre e o seu tamanho Sistemas Operacionais 62 Gerência de espaço livre através de blocos livres lógico Sistemas Operacionais Bloco Físico 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Disco 2 4 6 7 8 9 10 11 14 15 63 Leituras complementares • • R. Oliveira, A. Carissimi, S. Toscani; Sistemas Operacionais. Editora Bookman, 2010. • Capítulo 8, seções 8.5 e 8.6 A. Silberchatz, P. Galvin; Operating System Concepts. Addison-Wesley, 4th edition. • Capítulo 11 seção 11.3 Sistemas Operacionais 64 Diretório • • • Problema: • Quantidade (grande) de arquivos implica na necessidade de organizá-los Sistema de arquivos oferece duas formas de organização • Partição • Diretório Partição divide um disco em discos lógicos (virtuais), mas não resolve a organização de arquivos dentro desse disco lógico • No mínimo uma em um sistema • Onde “residem” os arquivos e os diretórios Sistemas Operacionais 65 O conceito de diretório • • • Estrutura de dados que contém informações sobre arquivos • Atributos básicos: nome, tipo, ... • Localização: dispositivo físico, end. Início, tamanho,... • Controle de acesso: proprietário, informações de acesso, ações permitidas,... • Utilização: data criação/modificação, nro. de processos que o usam, locking,... Diretório é um arquivo pertencente ao sistema operacional • Acesso é feito via serviços do sistema operacional Tipos de operações em um diretório • Pesquisar • Criar e remover arquivos • Listar diretório • Atualizar diretório Sistemas Operacionais 66 Organização de diretório • • Cada entrada do diretório é um arquivo Existem duas formas básicas para se organizar um diretório • Linear • Em árvore Sistemas Operacionais 67 Diretório linear • • • Mais simples O diretório corresponde a uma lista de todos os arquivos do disco Desvantagem: • Problema de nomeação e agrupamento • 2 ou mais usuários não podem ter arquivos com o mesmo nome (colisão) Silberchatz, Galvin, Gagne. Applied Operating System Concepts (1st Ed.) John Wiley & Sons, 2000. Sistemas Operacionais 68 Diretório linear a dois níveis • • Cada usuário possui o seu próprio diretório • Informação mantida na raiz (master directory) • Cada entrada corresponde a um subdiretório (usuário) Resolve parcialmente o problema de “colisão” de nomes e mas não resolve o problema de organização dos arquivos Silberchatz, Galvin, Gagne. Applied Operating System Concepts (1st Ed.) John Wiley & Sons, 2000. Sistemas Operacionais 69 Diretório em arvóre • • Generalização do diretório linear a dois níveis • Permite aos usuários criar subdiretórios e organizar seus arquivos Possui um diretório raiz (master) Silberchatz, Galvin, Gagne. Applied Operating System Concepts (1st Ed.) John Wiley & Sons, 2000. Sistemas Operacionais 70 Conceitos associados a um diretório em árvore • • • • Qualquer arquivo (ou subdiretório) pode ser identificado de forma não ambígua através de seu caminho (pathname) • Conceito de diretório corrente, caminho absoluto e caminho relativo Diretório corrente (diretório de trabalho): • Qualquer nó da árvore Caminho absoluto • Quando se referencia um arquivo a partir da raiz da arvóre • e.g.: /spell/mail/prt/first Caminho relativo • Quando se referencia um arquivo a partir do diretório corrente • e.g.: prt/first Sistemas Operacionais 71 Prós e contras da estrutura em árvore • • • Vantagem: • Procura eficiente por arquivos • Possibilidade de agrupamento de arquivos Desvantagem: • Compartilhamento de arquivos Questão é: copiar ou não arquivos a compartilhar? • Conceito de search path • Lista de diretórios (caminhos absolutos) a pesquisar um arquivo Sistemas Operacionais 72 Diretório estruturado em grafos acíclicos • Generalização da estrutura em árvore • Provê compartilhamento através de caminhos alternativos para um arquivo Silberchatz, Galvin, Gagne. Applied Operating System Concepts (1st Ed.) John Wiley & Sons, 2000. Sistemas Operacionais 73 Aliases • • • • Compartilhamento pode ser obtido através de aliases Link é uma forma comum de alias • Ponteiro para outro arquivo ou subdiretório Link é uma entrada na estrutura de diretório • Soft link (simbólico): fornece o caminho do arquivo • Hard link: fornece a localização (bloco) do arquivo no disco Remover um link implica em remover apenas a sua entrada na estrutura de diretório, não o arquivo que aponta Sistemas Operacionais 74 Problema da remoção de arquivos • • • Solução 1: • Acesso a um link simbólico dangling é detectado no momento do acesso ao arquivo (não resolvido para nome válido) Solução 2: • Preservar o arquivo enquanto houver referências a ele • Contador de links ativos • Lista de links Solução 3: • Não permitir compartilhamento Sistemas Operacionais 75 Prós e contras de diretórios estruturados em grafos • • Vantagem: • Compartilhamento de arquivos Desvantagem: • Estrutura mais complexa de manter • Um arquivo pode possuir mais de um caminho de acesso • e.g.: Problemas para contabilização de acessos, back-ups, etc... • Remoção de um arquivo compartilhado • Problema de dangling pointer • Criação de laços através de aliases • Necessita algoritmo para verificar se não cria um laço (desempenho) Sistemas Operacionais 76 Exemplos de aliases: UNIX %ln index hlink %ln -s index slinl %ls -l -rw- - - - - - -rw- - - - - - lrwx rwx rwx Contador de referências 2 2 1 chavez chavez chavez chem chem chem Diretório 5228 5228 5 Mar 12 11:36 index Mar 12 11:36 hlink Mar 12 11:36 slinkindex bloco arquivo index index hlink slink Sistemas Operacionais bloco slink 77 Exemplos de aliases: UNIX %ln index hlink %ln -s index slinl %ls -l -rw- - - - - - -rw- - - - - - lrwx rwx rwx Contador de referências 2 2 1 chavez chavez chavez chem chem chem Diretório 5228 5228 5 Mar 12 11:36 index Mar 12 11:36 hlink Mar 12 11:36 slinkindex bloco arquivo index index hlink slink Sistemas Operacionais bloco slink 78 Organização de diretórios do UNIX • • • • Baseado em partições Diretório raiz do sistema de arquivos corresponde a uma partição especial (root) Conceito de ponto de montagem Pontos importantes: • Cada partição possui seu próprio sistema de arquivos • Capacidade de integrar diferentes sistemas de arquivos em uma mesma hierarquia • Sistemas de arquivos podem ser diferentes • e.g.: ext2, FAT12, FAT32, NTFS, etc... Sistemas Operacionais 79 Montagem de partições em um subdiretório Partição 1 etc usr passwd Partição 2 bin joão Partição 3 maria ls who Mail hosts so trab1 teste teste trab trab2 Pontos de montagem etc passwd hosts joao so trab1 Sistemas Operacionais usr teste bin maria teste ls who Mail trab trab2 80 Implementação de diretórios • • • Diretórios são arquivos especiais cujo contéudo é manipulado pelo sistema operacional Sendo um arquivo: • Utiliza os mesmos mecanismos de alocação, liberação e localização de blocos do disco que arquivos “comuns” • Possuem um descritor de arquivo Duas formas básicas de implementação de diretórios: • Conjunto de arquivos de descritores de arquivos • Vetor de descritores Sistemas Operacionais 81 Conjunto de arquivos de descritores de arquivos • Estrutura de diretório corresponde a um conjunto de arquivos do tipo diretório • Cada arquivo diretório possui descritores de arquivos raiz etc passwd usr hosts Sistemas Operacionais bin Descritores de arquivo Arquivo diretório raiz “etc” Arquivo diretório etc Arquivo passwd “passwd” “hosts” Arquivo hosts 82 Vetor de descritores • • • Uma parte do disco é reservada para o armazenamento de descritores de arquivos (diretórios”, regulares, etc...) Forma um diretório único (o vetor) • Arquivos e diretórios são identificados por sua posição nesse vetor Supõem-se que o primeiro descritor descreve o diretório raiz (“/”) / raiz etc passwd usr hosts etc bin usr bin passwd hosts Sistemas Operacionais 83 Implementação de diretórios como tabelas • • • Um diretório nada mais é que uma tabela Três implementações mais utilizadas: • Lista não ordenada • Lista ordenada • Tabela de dispersão (tabela hash) Vantages e desvantagens dessas implementações são as “tradicionais”: • Simplicidade versus desempenho Sistemas Operacionais 84 Organização interna de uma partição • • • • Uma partição é um disco lógico Cada partição é autocontida, isto é, todas as informações para acesso aos arquivos da partição estão contidas na própria partição • Diretórios e subdiretórios • Descritores de arquivos da partição • Blocos de dados • Lista de blocos livres da partição Formatação lógica corresponde à inicialização dessas estruturas de dados Normalmente um setor (bloco) especial do disco informa quais são as partições e quais parcelas do disco a partição ocupa Sistemas Operacionais 85 Partições primárias em um disco IDE MBR Master Boot Record Tabela de partições Pré-boot Setor de boot Partição primária /dev/hda1 Partição primária /dev/hda2 Setor de boot Partição primária /dev/hda3 Setor de boot Partição primária /dev/hda4 Sistemas Operacionais Setor de boot 86 Leituras complementares • • • R. Oliveira, A. Carissimi, S. Toscani; Sistemas Operacionais. Editora Bookman, 2010. • Capítulo 8, seções 8.7, 8.8 e 8.9 A. Silberchatz, P. Galvin, G. Gagne; Applied Operating System Concepts. Addison-Wesley, 2000, (1st edition). • Capítulo 11 W. Stallings; Operating Systems. (4th edition). Prentice Hall, 2001. • Capítulo 12 Sistemas Operacionais 87 Sumário • • • Princípios básicos de hardware • Arquitetura de computadores Gerência de entrada e saída • Software de entrada e saída Disco magnético Sistemas Operacionais 88 Dispositivos periféricos típicos • • • Dispositivos de E/S são fundamentais para que um sistema seja utilizável Existe uma grande gama de dispositivos de E/S • Impossível de analisar todos • Princípio de funcionamento tem uma base comum Periférico mais importante é o disco por desempenhar um papel fundamental em diversos aspectos do sistema operacional • Armazenamento de dados • Suporte a implementação de memória virtual • Aspectos relacionados com tolerância a falhas e segurança de dados (RAID) Sistemas Operacionais 89 Disco magnético • • Um disco de plástico, ou metal, recoberto de material magnético • Pratos (platters) Dados são gravados e, posteriormente, recuperados através de um "mola" condutora (cabeçote de leitura e gravação) • Escrita: o cabeçote é submetido a uma tensão que gera um campo magnético o qual magnetiza o disco com diferentes padrões de polaridades • Leitura: a variação do campo magnético gerado pela rotação do disco induz uma corrente no cabeçote de leitura Sistemas Operacionais 90 Organização e formatação (1) • • • Disco é organizado em uma seqüência de circulos concêntricos • Trilhas • Largura da trilha corresponde a largura do cabeçote de leitura/escrita Trilhas são separadas por gaps • Evitar problemas de alinhamentos Duas tecnologias definem o número de bits por trilhas • O número de bits por trilha é constante • Trilhas mais internas possuem uma densidade maior bits/polegada • Discos com tecnologia CAV (Constant Angular Velocity) • O número de bits por trilha depende se ela é mais interna ou mais externa • Discos com tecnologia CLV (Constant Linear Velocity) e.g.; CDROM • Sistemas Operacionais 91 Organização e formatação (2) W. Stallings. Operating Systems (4th Ed.), Prentice Hall, 2001. Sistemas Operacionais 92 Organização e formatação (3) • • • • Transferência de dados para o disco é feito em blocos • Tipicamente, bloco é menor que a capacidade de uma trilha Trilha é subdividida em unidades de tamanho fixo (setores) Setor: • Armazenamento de informações • Informações de controle • e.g.; início e final do setor, ECC (Error Correcting Code) A definição de trilhas e setores é feita pela formatação física • Feita na fábrica Sistemas Operacionais 93 Organização e formatação (4) Inf. de controle Zona de dados ECC W. Stallings. Operating Systems (4th Ed.), Prentice Hall, 2001. Sistemas Operacionais 94 Características físicas (1) • • • Cabeçote de leitura/escrita são montados sobre um braço • Fixo: um cabeçote por trilha • Móvel: cabeçote se desloca sobre as trilhas Removível versus não removível • Meio magnético (pratos) são montados fisicamente no braço ou não • e.g.; disquete Densidade dupla versus densidade simples • Filme magnético é posto, ou não, nas duas superficies do prato Sistemas Operacionais 95 Características físicas (2) • • Múltiplos pratos (disk pack) • Vários pratos empilhados e centrados • Cada prato um cabeçote de leitura/escrita (braço móvel) • Cilindro: conjunto de trilhas de mesmo número em pratos diferentes Mecanismo do cabeçote leitura/escrita • Contato físico entre a superfície magnética e o cabeçote (floppy) • Distância fixa (air gap) da superfície magnética • Distância fixa (air gap) da superfície magnética quando o disco entra em rotação (disco rígido) Sistemas Operacionais 96 Características físicas (3) Cabeçote R/W (1 por superfície) Cilindro Imaginário Prato Superfície Trilha Setor Braço mecânico Sistemas Operacionais 97 Exemplo de especificações de disco • • • Disco 4.1 Gigabytes • 255 cabeças • 63 setores de 512 bytes • 525 cilindros • Capacidade: 255 x 63 x 512 x 525 Sexagésimo quarto setor mantém um mapa de setores na trilha Tecnologia atual permite até 8 pratos com 16 cabeçotes • Diferença no número de cabeçotes é lógico Sistemas Operacionais 98 Acesso a dados • • • • Menor unidade de transferência é um bloco lógico • Composto por um ou mais setores físicos Acessar dado implica em localizar trilha, superfície e setor Dois métodos: • Método CHS (Cylinder, Head, Sector) • Método LBA (Linear Block Addressage) • Tradução do L-CHS (Logical) para P-CHS (Physical) Discos modernos endereçam blocos lógicos sequencialmente • Conversão de um bloco lógico para sua localização física • Não é um mapeamento direto por haver setores fisicamente defeituosos e pelo número de setores por trilha não ser constante Cilindros que possuem mesmo número de setores (zonas) • Sistemas Operacionais 99 Desempenho do disco • • Para ler/escrever dados é necessário que o cabeçote de leitura e escrita esteja posicionada na trilha e no ínicio do setor desejados Três tempos envolvidos: • Tempo de posicionamento (seek time) • Tempo necessário para posicionar o cabeçote de leitura/escrita na trilha desejada • Tempo de latência rotacional • Tempo necessário para atingir o início do setor a ser lido/escrito • Tempo de transferência • Tempo para escrita/leitura efetiva dos dados Sistemas Operacionais 100 Temporização de acesso ao disco Transfer time Trilha Seek time Setor Cabeçote leitura/escrita Latency time tacesso t seek tlatência ttrasnf . Sistemas Operacionais 101 Tempo de posicionamento (seek) • • • Possui duas componentes: • Tempo de acionamento e aceleração do braço do cabeçote • Tempo de deslocamento até a trilha desejada Não é linear em função do número do trilhas • Tempo de identificação da trilha (confirmação) Tempo médio de seek • Dado fornecido pelo fabricante • e.g.; 5 a 10 ms (tecnologia ano 2000) Sistemas Operacionais 102 Tempo de latência rotacional • • Definido pela velocidade de rotação do motor • e.g. (ano 2000): • discos rígidos (5400 rpm a 10000 rpm) • unidades de floppy (300 rpm a 600 rpm) Considera-se o tempo médio • Nào se sabe a posição relativa do cabeçote com a do setor a ser lido • Metade do tempo de uma rotação • e.g.; 3 ms para um disco de 10000 rpm ( 6 ms uma rotação ) Sistemas Operacionais 103 Tempo de transferência • Tempo de transferência de dados de/para disco depende da velocidade de rotação b T rN • T = tempo de transferência b = número de bytes a serem transferidos N = número de bytes em uma trilha r = velocidade de rotação, nro de rotações por segundo Tempo médio de acesso é dado por: Tacesso Sistemas Operacionais 1 b t seek _ médio 2r rN 104 Exemplo • Acessar um arquivo de dados de 1.3 Mbytes armazenado em disco com as seguintes características: Tseek_médio = 10 ms, 10000 rpms, 512 bytes por setor, 320 setores por trilha Caso I: Acesso seqüêncial (2560 setores = 8 trilhas x 320 setores) Tacesso = 10 ms + 8 x (3 + 6) ms = 0.082 s (Obs: supondo trilhas vizinhas, despreza-se o tempo de seek) Caso II: Acesso randômico (leitura na base um setor por vez) Tacesso = 2560 x (10 ms + 3 ms + 0.01875 ms) = 33.328 s Sistemas Operacionais 105 Entrelaçamento (interleaving) • • • Forma de aumentar o desempenho no acesso ao disco Objetivo é evitar a latência rotacional em setores adjacentes Técnica consiste em numerar os setores não mais de forma contígua mas sim com um espaço entre eles Disco 1 Disco 2 Fator de entrelaçamento = 0 Fator de entrelaçamento = 2 15 0 14 5 1 13 2 12 11 10 6 8 Sistemas Operacionais 7 11 15 6 3 4 1 4 9 12 5 9 0 10 14 7 3 2 8 13 106 Escalonamento do disco (1) • • Tratar E/S em disco de forma eficiente se traduz em obter um tempo de acesso rápido e explorar ao máximo a largura de banda do disco • Se traduz em minimizar o tempo de posicionamento (seek) Largura de banda do disco é definida como sendo o número total de bytes transferidos, divididos pelo tempo decorrido entre o primeiro acesso e a conclusão da transferência. Sistemas Operacionais 107 Escalonamento do disco (2) • Algoritmos para reduzir o tempo de seek • Algoritmos de escalonamento do disco • Forma de organizar o atendimento a requisições FCFS, SSTF, SCAN, C-SCAN, etc Exemplo para análise • Disco organizado em 200 trilhas (0-199) • Posição inicial do cabeçote: trilha 53 • Atender a seguinte fila de requisições: 98, 183, 37, 122, 14, 124, 65, 67 • • Sistemas Operacionais 108 FCFS - First Come First Served (1) • • Acessa na ordem em que as requisições são solicitadas Para análise em questão obtem-se um deslocamento equivalente a 640 trilhas Silberchatz, Galvin, Gagne. Applied Operating System Concepts (1st Ed.) John Wiley & Sons, 2000. Sistemas Operacionais 109 SSTF - Shortest Seek Time First (1) • • Seleciona a requisição com o menor tempo de seek em relação a posição atual do cabeçote de leitura/escrita Análogo ao escalonamento SJF (Shortest Job First) • Pode provocar postergação de uma requisição Sistemas Operacionais 110 SSTF - Shortest Seek Time First (2) • Deslocamento equivalente a 236 trilhas Silberchatz, Galvin, Gagne. Applied Operating System Concepts (1st Ed.) John Wiley & Sons, 2000. Sistemas Operacionais 111 SCAN (1) • • O movimento do cabeçote inicia em uma extremidade do disco e se movimenta em direção a outra extremidade • Executa as requisições na ordem desta varredura • Ao chegar no outro extremo, inverte o sentido e repete o procedimento Conhecido como algoritmo do elevador Sistemas Operacionais 112 SCAN (2) • Deslocamento equivalente a 208 trilhas Silberchatz, Galvin, Gagne. Applied Operating System Concepts (1st Ed.) John Wiley & Sons, 2000. Sistemas Operacionais 113 C-SCAN (1) • • • Variação do algoritmo de SCAN Procedimento é idêntico ao do algoritmo SCAN porém as requisições são atendidas apenas em um sentido da varredura • Ao final da varredura o cabeçote é reposiconado no início do disco Fornece uma visão lógica onde o disco é tratado como uma fila circular • Oferece um tempo médio de acesso mais uniforme que o algoritmo SCAN Sistemas Operacionais 114 C-SCAN (2) Silberchatz, Galvin, Gagne. Applied Operating System Concepts (1st Ed.) John Wiley & Sons, 2000. Sistemas Operacionais 115 C-LOOK • • Versão do C-SCAN O cabeçote de leitura/escrita não necessita atingir o extremo do disco para voltar ao início do disco Sistemas Operacionais 116 Outras variações de SCAN • • N-step-SCAN • Divide a fila de requisições em um certo número de filas de tamanho N • Cada fila é atendida separadamente utilizando SCAN • Novas requisições são inseridas em filas diferentes da que está sendo atendida no momento da chegada destas requisições FSCAN • Baseada em duas filas • Um fila recebe todas as novas requisições enquanto a outra é empregada para atender as requisições já feitas Sistemas Operacionais 117 Qual algoritmo de escalonamento é melhor? • • • • SSTF é o método comumente empregado SCAN e C-SCAN apresentam um melhor desempenho em discos que possuem um grande número de acesso Fatores importantes • Quantidade e tipo de requisições • Organização de arquivos e diretórios no disco (sistema de arquivos) O algoritmo de escalonamento deve ser escrito como um módulo separado do sistema operacional para permitir sua substituição de forma fácil Sistemas Operacionais 118 RAID: Redundant Array of Inexpensive Disks • • • • Conjunto de discos rigídos visto pelo sistema operacional como um único disco lógico Dados são distribuídos entre os diferentes discos físicos • Permite o acesso paralelo a dados aumentando o desempenho Possibilita o armazenamento de informações de paridade para permitir a recuperação de dados em caso de problemas no disco • Aumento de possibilidade de falhas já que existem mais dispositivos envolvidos Diferentes níveis Sistemas Operacionais 119 RAID nível 0 • • Dados são distribuídos nos diferentes discos do array • Requisições a blocos de dados armazenados em discos distintos podem ser efetuados em paralelo O disco lógico é dividido em unidade de distribuição (strips) • Strip pode ser blocos físicos, setores, etc... • Strip são mapeados de forma round-robin em n discos (stripes) • Técnica conhecida como stripping W. Stallings. Operating Systems (4th Ed.), Prentice Hall, 2001. Sistemas Operacionais 120 RAID nível 1 • • Objetivo de RAID é fornecer uma redudância de dados para fornecer um certo grau de tolerância a falhas RAID 1 a redundância é obtida através da replicação dos dados • Strips são armazenados em 2 conjuntos distintos de discos físicos • Denominado de espelhamento (mirroring) Sistemas Operacionais 121 RAID nível 1: vantagens e desvantagens • • Vantagens: • Leitura de um dado pode ser feito privilegiando-se o disco que oferece o menor tempo de seek e atraso rotacional • Recuperação em caso de erro é simples • Acessa dados do disco não danificado Desvantagem: • Custo: necessita o dobro do espaço do disco lógico em discos físicos Sistemas Operacionais 122 RAID nível 2 • • • • O conjunto de discos é sincronizado, isto é, todos os cabeçotes estão posicionados no mesmo ponto (trilha e setor) Todos discos são acessados na realização de uma requisição E/S A unidade de stripping é byte ou palavra Executa o cálculo de código de correção de erros considerando um certo número de bits e armazena o resultado em discos separados W. Stallings. Operating Systems (4th Ed.), Prentice Hall, 2001. Sistemas Operacionais 123 RAID nível 2 • • O número de discos redundantes é proporcional ao logaritmo da quantidade de dados armazenados no disco Requisição de E/S • Leitura: código de correção é calculado para os dados lidos e comparado com o código de correção lido • Escrita: cálculo e gravação do código de correção Sistemas Operacionais 124 RAID nível 3 • • • Similar ao RAID 2 Diferença é que existe apenas um disco de redundância independente do número de discos para armazenamento de dados Cálculo de um código de detecção de erro (paridade) • Possível reconstruir dados de um disco falho a partir desta informação W. Stallings. Operating Systems (4th Ed.), Prentice Hall, 2001. Sistemas Operacionais 125 RAID nível 3: reconstrução de dados • Exemplo: • Array composto por 5 discos físicos, onde discos 0 a 3 servem ao armazenamento de dados e o disco 4 a paridade (redundância) Paridade para o bit i de cada disco é calculado da seguinte forma: x4(i) x3(i) x2(i) x1(i) x0(i) Em caso de erro do disco 1, se pode reconstruir seus dados (bit a bit) realizando o seguinte cálculo: x1(i) x4(i) x3(i) x2(i) x0(i) Sistemas Operacionais 126 RAID nível 4 • • Diferença em relação aos níveis 2 e 3 é que os discos são independentes podendo então satisfazer requisições em paralelo Redundância é obtida calculado-se a paridade bit a bit de cada strip e armazenando o resultado em disco de paridade W. Stallings. Operating Systems (4th Ed.), Prentice Hall, 2001. Sistemas Operacionais 127 RAID nível 5 • • Organização é similar ao RAID 4 A informação de paridade é distribuída em todos os discos do array de forma round-robin W. Stallings. Operating Systems (4th Ed.), Prentice Hall, 2001. Sistemas Operacionais 128 RAID nível 6 • • Introduz um segundo cálculo de paridade para o mesmo conjunto de dados: • Paridade é calculada utilizando o esquema de OU exclusivo de RAID 4 e5 • Algoritmo adicional de verificação de dados Vantagem sobre demais esquemas de RAID é que dois discos podem falhar simultâneamente W. Stallings. Operating Systems (4th Ed.), Prentice Hall, 2001. Sistemas Operacionais 129
Documentos relacionados
Descritor de Arquivo
Informações relacionadas com arquivos são de dois tipos: Não variam conforme o processo que está acessando o arquivo – tamanho do arquivo Dependem do processo que está acessando o arquivo – posição...
Leia mais