Luís F. Faina - 2013 Pg. 1/65
Cap. 12 – Gerenciamento de Arquivos
12.1 – Visão Geral12.1.1 - Arquivos e Sistemas de Arquivos12.1.2 - Estrutura de Arquivos12.1.3 - Gerenciamento de Arquivos12.1.4 – Arquitetura do Sistema de Arquivo
12.2 – Organização e Acesso a Arquivo12.2.1 - Pile 12.2.2 - Arquivo Sequencial 12.2.3 - Arquivo Sequencial Indexado12.2.4 - Arquivo Indexado12.2.5 - Arquivo Hashed ou Direto
Luís F. Faina - 2013 Pg. 2/65
… Cap. 12 – Gerenciamento de Arquivos
12.3 – Diretório de Arquivo12.3.1 – Conteúdo do Diretório de Arquivo
12.3.2 – Estrutura do Diretório de Arquivo
12.3.3 – Nomeação do Diretório de Arquivo
12.4 – Compartilhamento de Arquivo12.4.1 - Permissões de Acesso
12.4.2 - Acesso Simultâneo
12.5 – Record Blocking
Luís F. Faina - 2013 Pg. 3/65
… Cap. 12 – Gerenciamento de Arquivos
12.6 – Gerenciamento em Memória Secundária12.6.1 - Alocação de Arquivo
12.6.2 - Métodos de Alocação de Arquivo
12.7 – Gerenciamento de Arquivo no UNIX
12.7.1 – Index Node
12.7.2 – Alocação de Arquivo e Diretório
12.7.3 – Estrutura de Volume
12.7.4 – Controle de Acesso Tradicional
Luís F. Faina - 2013 Pg. 4/65
Referências Bibliográficas
● William Stallings - Operating Systems: Internals and Design Principles, Pearson / Prentice-Hall, 2005, ISBN-10: 0-13-147954-7
… Lectures do autor William Stallings - http://williamstallings.com/ OperatingSystems/allings.
Luís F. Faina - 2013 Pg. 5/65
12. Gerencimento de Arquivo
12 – Gerenciamento de Arquivo
● Sistema ou Subsistema de Gerenciamento de Arquivo – consiste de programas utilitários do sistema operacional que executam como aplicações com privilégios.
● … em muitas aplicações, o “arquivo” é o elemento central, com exceção das aplicações de tempo real e algumas outras específi- cas, a entrada de uma aplicação se dá por meio de um arquivo;
● … em virtualmente todas as aplicações, a saída é armazenada em arquivos de longa duração (e.g., disco magnétivo; pen drive) para acesso futuro pelo usuário e por outros programas.
● usuários – necessitam acessar, salvar e manter a integridade dos seus arquivos, assim, é necessário que o sistema operacional proporcione meios para gerenciar os arquivos.
Luís F. Faina - 2013 Pg. 6/65
12. Gerencimento de Arquivo - 12.1 Visão Geral
12.1.1 – Arquivo e Sistema de Arquivo
● Arquivo e Sistema de Arquivo – … uma das mais importantes partes do sistema operacional sob a perspectiva do usuário;
● …. arquivo provê a abstração do recurso tipicamente associada ao armazenamento secundáriote
● Sistema de Arquivo possibilita aos usuários a criação de coleção de dados ou arquivos com propriedades tais como:
● “long-term existence” - arquivos são armazenados em unidades de armazenamento secundárias por longos períodos;
● “sharable between processes” - arquivos possibilitam o compartilhamento controlado através das permissões de acesso;
● “structure” - arquivos podem ser organizados em estruturas hierárquicas ou estruturas mais complexas para refletir relações entre os arquivos.
Luís F. Faina - 2013 Pg. 7/65
12. Gerencimento de Arquivo - 12.1 Visão Geral
… 12.1.1 – Arquivo e Sistema de Arquivo
● Sistema de Arquivo não oferece apenas um meio para armazenar dados como arquivos, mas uma coleção de funções que podem ser executadas nos arquivos:
● “create” - define um novo arquivo e o possiciona na estrutura do sistema de arquivos;
● “delete” - remove-se um arquivo da estrutura;
● “open” - operação que uma vez concluída, permite que o processo que a executou execute funções sobre o arquivo;
● “close” - fecha-se o arquivo com respeito ao processo, de modo que não mais realize funções sobre o mesmo;
● “read/write” - operações de leitura/escrita podem ser executadas no arquivo, com adição de novos dados ou modificações de valores da dados existentes no caso de escrita.
Luís F. Faina - 2013 Pg. 8/65
12. Gerencimento de Arquivo - 12.1 Visão Geral
12.1.2 – Estrutura de Arquivo
● Estrutura de Arquivos – 04 termos são comuns quando se discute arquivos ou a estrutura que os mantém:
● “field” - elemento básico de dados que contém um único valor e é caracterizado por definir o tipo de dado e o seu comprimentos p.ex. em bits ou bytes
● “record” - coleção de “fields” relacionados e tratado como uma unidade, p.ex., registro de dados pessoais de um funcionário;
● “file” - coleção de registros similares tratado com uma unidade, possui nome e pode acomodar permissões de acesso;
● “database” - coleção de dados relacionados que normalmente contemplam relações entre os seus elementos.
Luís F. Faina - 2013 Pg. 9/65
12. Gerencimento de Arquivo - 12.1 Visão Geral
… 12.1.2 – Estrutura de Arquivo
● Operações típicas que devem ser suportadas pelos Subsistema de Arquivos bem como pelos arquivos incluem as seguintes:
● “retrieve_all” - recupera todos os registros de um arquivo;
● “retrieve_one” - recupera um único registro e, normalmente, é utilizada por aplicações orientadas a transação;
● “retrieve_next” - recupera o registro que é o próximo em alguma sequência lógica em relação ao mais recente registro recuperado;
● “retrieve_previous” - similar ao anterior, exceto que neste caso o registro precede o registro mais recentemente recuperado;
● “insert_one” - inseri um novo registro no arquivo em uma possição que preserve o sequenciamento do arquivo;
Luís F. Faina - 2013 Pg. 10/65
12. Gerencimento de Arquivo - 12.1 Visão Geral
… 12.1.2 – Estrutura de Arquivo
● Operações típicas que devem ser suportadas pelos Subsistema de Arquivos bem como pelos arquivos incluem as seguintes:
● …
● “delete_one” - remove um registro existente bem como atualiza a estrutura para preservar o sequenciamento do arquivo;
● “update_one” - recupera um registro, atualiza um ou mais campos do mesmo e reescreve o registro atualizado no arquivo;
● “retrieve_few” - recupera um nro de registros, p.ex., uma aplicação pode requerer um conjunto de registros que satisfaça um certo conjunto de critérios de seleção.
Luís F. Faina - 2013 Pg. 11/65
12. Gerencimento de Arquivo - 12.1 Visão Geral
… 12.1.2 – Estrutura de Arquivo
● … natureza das operações que são mais comuns em um arquivo influencia o modo que o arquivo é organizado;
● … nem todos os sistemas de arquivos contemplam o tipo de estrutura discutido nesta seção;
● e.g., Sistemas UNIX e UNIX-like contemplam como estrutura básica de arquivo apenas um fluxo de bytes;
● … p.ex., programa em Linguagem C é armazenado em um arquivo não contém “fields”, “records” ou algo mais, ou seja, ele é apenas um conjunto de bytes.
Luís F. Faina - 2013 Pg. 12/65
12. Gerencimento de Arquivo - 12.1 Visão Geral
12.1.3 – Sistema de Gerenciamento de Arquivo
● Sistema de Gerenciamento de Arquivo – conjunto de softwares do sistema responsáveis por prover serviços para os usuários e aplicações que operam sobre os arquivos;
● … tipicamente, o único caminho pelo qual usuários e aplicações acessam os arquivos é através do sistema de gerenciamento.
● … esta abordagem livra o usuário ou o programador da necessi- dade de desenvolver software de propósito específico, oferecendo assim um sistema bem definido e consistente.
● Grosshans, D. (1986) sugeriu os seguintes objetivos para um sistema de gerenciamento de arquivo:
● suportar o necessidades de gerenciamento de dados e requisitos do usuário, o que inclui armazenamento de dados e abilidade de realizar operações como as citadas anteriormente;
Luís F. Faina - 2013 Pg. 13/65
12. Gerencimento de Arquivo - 12.1 Visão Geral
… 12.1.3 – Sistema de Gerenciamento de Arquivo
● Grosshans, D. (1986) sugeriu os seguintes objetivos para um sistema de gerenciamento de arquivo:
● garantir na extensão possível que os dados sejam válidos;
● otimizar o desempenho tanto do ponto de vista do sistema em termos de vazão geral do sistema, quanto do ponto de vista do usuário em termos de tempo de resposta das aplicações;
● prover suporte de entrada/saída para uma variedade de tipos de dispositivos de armazenamento;
● minimizar ou eliminar a possibilidade de perda de dados;
● prover suporte de entrada/saída para múltiplos usuários quando em sistema de múltiplos usuários;
● prover um conjunto padronizado de rotinas para a interface de entrada/saída para processos dos usuários.
Luís F. Faina - 2013 Pg. 14/65
12. Gerencimento de Arquivo - 12.1 Visão Geral
… 12.1.3 – Sistema de Gerenciamento de Arquivo
● Com respeito ao primeito ponto, atender aos requisitos do usuário, a extensão de tais requisitos depende da variedade de aplicações e do ambiente no qual o sistema computacional será usado;
● … para sistemas de propósito geral e interativos, o conjunto mínimo de requisitos a ser contemplado é:
● capacidade de criar, remover, ler, escrever e modificar arquivos;
● cada usuário deve ter acesso controlado em arquivos de outros usuários;
● cada usuário deve controlar que tipos de acessos são permitidos para arquivos de usuários;
● cada usuário deve ser capaz de reestruturar arquivos do usuário na forma mais apropriada ao seu problema;
Luís F. Faina - 2013 Pg. 15/65
12. Gerencimento de Arquivo - 12.1 Visão Geral
… 12.1.3 – Sistema de Gerenciamento de Arquivo
● (cont.) … para sistemas de propósito geral e interativos, o conjunto mínimo de requisitos a ser contemplado é:
● cada usuário deve ser capaz de mover dados entre arquivos;
● cada usuário deve ser capaz de voltar e recuperar arquivos de usuário em caso de danos ou corrupção de dados;
● cada usuário dever ser capaz de acessar seus arquivos pelo nome ou até mesmo por um identificador numérico.
Luís F. Faina - 2013 Pg. 16/65
12. Gerencimento de Arquivo - 12.1 Visão Geral
12.1.4 – Arquitetura do Sistema de Arquivo
● Percepção de escopo do gerenciamento de arquivo pode ser obtida através de uma organização de software típica;
● … embora diferentes sistemas sejam organizados diferentemente, a organização é razoavelmente representada.
Luís F. Faina - 2013 Pg. 17/65
12. Gerencimento de Arquivo - 12.1 Org. e Acesso a Arquivo
… 12.2 – Organização e Acesso a Arquivo
● … consultar material disponibilizado pelo autor do Livro Texto:
● William Stallings - Operating Systems: Internals and Design Principles, Pearson / Prentice-Hall, 2005, ISBN-10: 0-13-147954-7
● Lectures do autor William Stallings - http://williamstallings.com/ OperatingSystems/allings.l
Luís F. Faina - 2013 Pg. 18/65
12. Gerencimento de Arquivo - 12.3 Diretório de Arquivo
12.3.1 – Conteúdo do Diretório de Arquivo
● “file directory” - contém informações sobre os arquivos, incluindo atributos, localização e proprietário;
● … muitas destas informações, especialmente as relacionadas com o armazenamento são gerenciadas pelo sistema operacional.
● … diretório de arquivo é por si só um arquivo, acessível através de muitas das rotinas do sistema de gerenciamento de arquivo.
● Dentre as informações típicas armazenadas em um diretório para cada arquivo no sistema, destacam-se: informações básicas; de armazenamento; de controle de acesso; e de uso.
● … do ponto de vista do usuário, o diretório provê o mapeamento entre nomes de arquivos, ou seja, entre aqueles conhecidos pelos usuários e aplicações e os arquivos propriamente ditos.
Luís F. Faina - 2013 Pg. 19/65
12. Gerencimento de Arquivo - 12.3 Diretório de Arquivo
… 12.3.1 – Conteúdo do Diretório de Arquivo
● Dentre as informações típicas armazenadas em um diretório para cada arquivo no sistema, destacam-se: informações básicas; de endereço; de controle de acesso; e de uso.
Luís F. Faina - 2013 Pg. 20/65
12. Gerencimento de Arquivo - 12.3 Diretório de Arquivo
… 12.3.1 – Conteúdo do Diretório de Arquivo
● … informações de controle de acesso e de uso.
Luís F. Faina - 2013 Pg. 21/65
12. Gerencimento de Arquivo - 12.3 Diretório de Arquivo
12.3.2 – Estrutura do Diretório de Arquivo
● Maneira pela qual as informações discutidas anteriormente são armazenadas varia bastante entre os diversos sistemas;
● … algumas podem ser armazenadas no registro cabeçalho asso- ciado ao arquivo, reduzindo a quantidade de espaço exigido bem como facilitando a manutenção do dado na memória principal;
● … estrutura mais simples para um diretório é a lista de entradas, uma para cada arquivo contido no diretório;
● … tal estrutura pode ser representada por um arquivo sequencial, cujo nome pode servir como chave de busca.
● Para o completo entendimento da estrutura de um arquivo, é necessário considerar os tipos de operações de diretório.
Luís F. Faina - 2013 Pg. 22/65
12. Gerencimento de Arquivo - 12.3 Diretório de Arquivo
… 12.3.2 – Estrutura do Diretório de Arquivo
● Para o completo entendimento da estrutura de um arquivo, é necessário considerar os tipos de operações de diretório:
● “search” - quando se referencia um arquivo, a busca para encon- trar a entrada daquele arquivo acontece no diretório;
● “create” - quando um arquivo é criado, uma entrada deve ser adicionada ao arquivo diretório que conterá o dado arquivo;
● “delete” - quando um arquivo é removido, uma entrada deve ser removida do arquivo diretório que contém o dado arquivo;
● “list” - normalmente retorna a lista de todos os arquivos de um dado usuário e alguns atributos de cada arquivo (p.ex., tipo, infomação de controle de acesso; informação de uso);
● “update” - em razão de alguns atributos de arquivo serem armazenados no diretório, a mudança em um destes atributos requer a mudança na correspondente entrada do diretório.
Luís F. Faina - 2013 Pg. 23/65
12. Gerencimento de Arquivo - 12.3 Diretório de Arquivo
… 12.3.2 – Estrutura do Diretório de Arquivo
● “análise” - lista simples não é suficiente para suportar estas operações e, além do mais, o usuário pode ter a necessidade de manter diferentes tipos de arquivos;
● … adicionalmente, é difícil esconder parte das informações do diretório quando não se tem estrutura com herança.
● Podemos iniciar a discussão partindo-se do esquema de 02 níveis: 01 diretório principal e um 01 diretório para cada usuário;
● … uma análise mas refinada mostra que este esquema não auxilia os usuários na estruturação de seus arquivos;
● … uma abordagem mais forte e flexível é a estrutura hierárquica ou estrutura em árvore universalmente adotada.
Luís F. Faina - 2013 Pg. 24/65
12. Gerencimento de Arquivo - 12.3 Diretório de Arquivo
… 12.3.2 – Estrutura do Diretório de Arquivo
● … uma abordagem mais forte e flexível é a estrutura hierárquica ou estrutura em árvore universalmente adotada.
Luís F. Faina - 2013 Pg. 25/65
12. Gerencimento de Arquivo - 12.3 Diretório de Arquivo
12.3.3 – Nomeação do Diretório de Arquivo
● Usuários devem ser capazes de referenciar um arquivo pelo seu nome simbólico e, assim, cada arquivo é identificado por um único nome garantido-se que a referência não seja ambígua;
● … por outro lado, é um fardo inaceitável exigir que usuários tenham que prover nomes únicos em um sistema compartilhado.
● … uso de diretório em árvore minimiza esta dificuldade de atribui- ção de nomes únicos, pois a exigência passa a ser aplicada para o “path name” e não apenas para a parte final do nome.
Luís F. Faina - 2013 Pg. 26/65
12. Gerencimento de Arquivo - 12.3 Diretório de Arquivo
… 12.3.3 – Nomeação do Diretório de Arquivo
Luís F. Faina - 2013 Pg. 27/65
12. Gerencimento de Arquivo - 12.3 Diretório de Arquivo
… 12.3.3 – Nomeação do Diretório de Arquivo
● e.g., considere o “path name” “User_B/Word/Unit_A/ABC”;
● … caracter “/” é usado para separar os nomes na sequência de nomes ou “path name”;
● … nome do diretório raiz está implícito, pois todos os caminhos - “paths” - iniciam-se neste diretório raiz;
● … note que é perfeitamente aceitável ter vários arquivos com o mesmo nome desde que o “path name” seja único.
● … embora o “pathname” facilite a seleção dos nomes do arquivo, é estranho que o usuário tenha que referenciar o caminho completo sempre que referenciar o arquivo;
● … é possível referenciar um caminho a partir do diretório em que se está, ou seja, referência relativa ao diretório corrente ou também chamado “working directory”.
Luís F. Faina - 2013 Pg. 28/65
12. Gerencimento de Arquivo - 12.4 Compartilhamento de Arquivo
12.4 – Compartilhamento de Arquivo
● Em Sistemas Multiusuários, há a necessidade de que os arquivos possam ser compartilhados entre os usuários;
● … nestes sistemas, 02 questões aparecem: permissões de acesso e gerenciamento de acesso simultâneo.
● “permissões de acesso” – necessário prover ferramentas flexíveis que possibilitem o compartilhamento de arquivo entre usuários;
● “acesso simultâneo” – quando o acesso para realizar modifica- ções em um arquivo é concedido a mais de um usuário, cabe ao sistema de gerenciamento de arquivo coordenar as operações.
Luís F. Faina - 2013 Pg. 29/65
12. Gerencimento de Arquivo - 12.4 Compartilhamento de Arquivo
12.4.1 – Permissões de Acesso
● Tipicamente, usuários e grupos de usuários tem a concessão para algumas permissões de acesso de um arquivo;
● … em princípio, pressupõe-se que um grande conjunto de permissões de acesso possa ser utilizado:
● “none” - usuário pode até não ter conhecimento da existência do arquivo, muito menos acessar o arquivo;
● “knowledge” - usuário pode determinar que o arquivo existe e quem é o dono e, na sequência, solicitar permissões adicionais;
● “execution” - permissão normalmente presente em programas proprietários, permite que o usuário carregue e execute o programa, mas restringe a operação de cópia;
● … …
Luís F. Faina - 2013 Pg. 30/65
12. Gerencimento de Arquivo - 12.4 Compartilhamento de Arquivo
… 12.4.1 – Permissões de Acesso
● … …
● “reading” - usuário pode ler o arquivo para qualquer que seja o propósito, incluindo cópia simples ou mesmo execução.
● “appending” - usuário pode adicionar dados ao arquivo, mas não pode modificar ou remover qualquer conteúdo do arquivo;
● “updating” - usuário pode modificar, remover e adicionar dados ao arquivo, ou seja, escrita inicial no arquivo, reescrita completa ou parcial do arquivo e remoção de parte ou de todo o conteúdo;
● “changing protection” - usuário pode alterar as permissões de acesso concedidadas aos demais usuários;
● “deletion” - usuário pode remover o arquivo do sistema.
Luís F. Faina - 2013 Pg. 31/65
12. Gerencimento de Arquivo - 12.4 Compartilhamento de Arquivo
… 12.4.1 – Permissões de Acesso
● Normalmente, as permissões estão organizadas hierarquicamente de modo que a concessão de uma permissão tenha como implicação a concessão da permissão precedente.
● Um usuário é designado para ser o proprietário de um dado arquivo, usualmente aquele que criou o arquivo;
● … o proprietário do arquivo tem todas as permissões de acesso listadas anteriormente e pode conceder permissões para outros.
Luís F. Faina - 2013 Pg. 32/65
12. Gerencimento de Arquivo - 12.4 Compartilhamento de Arquivo
… 12.4.1 – Permissões de Acesso
● Permissões para diferentes classes de usuários:
● “specific user” - usuários individuais designados pelos seus IDs;
● “user group” - conjunto de usuários definidos conjuntamente e não individualmente, neste caso, cabe ao sistema rastrear quais são os membros para cada grupo de usuários;
● “all” - todos os usuários que acessam o sistema, ou seja, são arquivos públicos cujo acesso é livre para qualquer usuário.
Luís F. Faina - 2013 Pg. 33/65
12. Gerencimento de Arquivo - 12.4 Compartilhamento de Arquivo
12.4.2 – Acesso Simultâneo
● Quando o acesso para realizar modificações em um arquivo é concedido a mais de um usuário, cabe ao sistema de gerencia- mento de arquivo coordenar as operações.
● … abordagem de força bruta deve permitir ao usuário o bloqueio de todo o arquivo enquanto a operação é executada;
● … um controle mais refinado permitirá que o bloqueio se dê em registros individuais enquanto a operação é executada.
● Em essência, o acesso simutâneto é um problema do tipo leitores/escritores – discutido no Cap. 05, o que sugere:
● … para prover capacidade de acesso simultâneo, questões como exclusão mútua e deadlock devem ser consideradas.
Luís F. Faina - 2013 Pg. 34/65
12. Gerencimento de Arquivo - 12.5 Record Blocking
12.5 – Record Blocking
● Como discutido anteriormente, registros são unidades lógicas de acesso na estrutura do arquivo, enquanto que blocos são unidades de entrada/saída da memória secundária;
● … há várias questões para considerar: blocos fixos ou variáveis; tamanho do bloco comparado com o tamanho do registro; acesso de registro randômico ou determinado por uma referência; etc.
● … em resumo e em razão de interesses conflitantes, quanto maior o bloco, maiores são os buffers em memória principal o que por sua vez exige maior esforço de gerenciamento.
Luís F. Faina - 2013 Pg. 35/65
12. Gerencimento de Arquivo - 12.5 Record Blocking
… 12.5 – Record Blocking
● Dado um tamanho de bloco, há 03 métodos para o mapeamento:
● “fixed blocking” - registros de tamanho fixo são utilizados e um nro fixo de registros é armazenado em um bloco, o que por sua vez gera a fragmentação interna no bloco;
Luís F. Faina - 2013 Pg. 36/65
12. Gerencimento de Arquivo - 12.5 Record Blocking
… 12.5 – Record Blocking
● “variable-length spanned blocking” - registros de tamanho variáveis são utilizados e empacotados em blocos de modo que não sobre espaço sem ser utilizado;
● … assim, alguns registros devem transpor 02 blocos, com um ponteiro indicando o bloco que contém o restante do registro;
Luís F. Faina - 2013 Pg. 37/65
12. Gerencimento de Arquivo - 12.5 Record Blocking
… 12.5 – Record Blocking
● “variable-length unspanned blocking” - registros de comprimento variável são utilizados, mas um registro ou parte do mesmo não pode ser armazenado em mais de um bloco;
● … neste caso, nem todo o bloco é utilizado em função do não uso do restante do bloco para acomodar registros maiores.
Luís F. Faina - 2013 Pg. 38/65
12. Gerencimento de Arquivo - 12.5 Record Blocking
… 12.5 – Record Blocking
● Técnica de “Record Blocking” pode interagir com o hardware da memória virtual e, assim, dar tratamento às páginas de forma semelhante ao mapeamento de registros a blocos;
● … mas como páginas são geralmente menores que os blocos, não é prático tratá-las como blocos para “unspanned blocking”;
● … na prática, alguns sistemas combinam múltiplas páginas para criar um bloco grande o suficiente para propósitos de operações de entrada/saída em arquivo.
Luís F. Faina - 2013 Pg. 39/65
12. Gerencimento de Arquivo - 12.6 Gerenciamento de Mem. Secundária
12.6 – Gerenciamento de Memória Secundária
● “arquivo” - na memória secundária consiste em uma coleção de blocos e cabe ao sistema de arquivo a alocação de blocos, o que por sua vez levanta 02 questões:
● espaço na memória secundária deve ser alocado para arquivos;
● necessário rastrear o espaço livre para alocação.
Luís F. Faina - 2013 Pg. 40/65
12. Gerencimento de Arquivo - 12.6 Gerenciamento de Mem. Secundária
12.6.1 – Alocação de Arquivo
● Vários questões estão envolvidas na alocação de arquivos:
● quando um arquivo é criado, o espaço solicitado para alocação é requisitado de uma única vez ?
● considerando que o espaço alocado seja de um ou mais unidades (porções ou conjunto contíguo de blocos), qual deve ser o tamanho desta porção ou unidade ?
● que tipo de estrutura de dados ou tabela é usado para rastrear as porções de blocos alocadas para o arquivo ?
Luís F. Faina - 2013 Pg. 41/65
12. Gerencimento de Arquivo - 12.6 Gerenciamento de Mem. Secundária
… 12.6.1 – Alocação de Arquivo
● Quando um arquivo é criado, o espaço solicitado para alocação é requisitado de uma única vez ?
● “prealocação” - política que requer que o tamanho máximo de um arquivo seja declarado no momento de criação do arquivo;
● … embora em muitos casos é possível estimar de forma confiável o tamanho de um arquivo no momento da criação;
● … mas, para muitas aplicações é difícil senão impossível estimar com confiabilidade o tamanho máximo em potencial do arquivo.
● “alocação dinâmica” - há vantagens no uso da alocação dinâmica, pois o espaço alocado para um arquivo se dá ao longo do ciclo de vida do mesmo e não no momento da criação.
Luís F. Faina - 2013 Pg. 42/65
12. Gerencimento de Arquivo - 12.6 Gerenciamento de Mem. Secundária
… 12.6.1 – Alocação de Arquivo
● Considerando que o espaço alocado seja de um ou mais unidades (porções ou conjunto de blocos contíguos), qual deve ser o tamanho desta porção ou unidade ?
● … em um extremo, uma porção grande pode ser suficiente para alocar o arquivo integralmente, no outro extremo, a porção irá acomodar apenas um bloco, assim, um bloco por vez é alocado;
● … ao se definir um tamanho, é necessário a análise do custo e benefício entre eficiência do ponto de vista de um único arquivo “versus” a eficiência do sistema global.
Luís F. Faina - 2013 Pg. 43/65
12. Gerencimento de Arquivo - 12.6 Gerenciamento de Mem. Secundária
… 12.6.1 – Alocação de Arquivo
● Wiederhold, G. (1987) lista 04 itens para serem considerados:
● continuidade de espaço aumenta o desempenho, especialmente para operações “retrieve_next” ou para sistemas operacionais orientados por transações;
● ter um grande número de pequenas porções aumenta o tamanho de tabela necessária para gerenciar a informação de alocação;
● definir porções ou unidades de tamanho fixo (p.ex., blocos) simplifica a realocação do espaço;
● ter porções de tamanho variável ou de porções pequenas de tamanho fixo minimiza o gasto de espaço livre ou disponível para alocação devido a sobrealocação.
Luís F. Faina - 2013 Pg. 44/65
12. Gerencimento de Arquivo - 12.6 Gerenciamento de Mem. Secundária
… 12.6.1 – Alocação de Arquivo
● Naturalmente, estes itens interagem e devem ser considerados juntos e o resultado é que temos 02 alternativas:
● porções grandes contíguas e de tamanho variável – além de proporcionar melhor desempenho, o tamanho variável evita gasto e as tabelas de alocação de arquivo são pequenas;
● … por outro lado, espaço é difícil de ser reutilizado.
● porções de tamanho fixo pequenas ou blocos – provêem maior flexibilidade pois podem requerer tabelas grandes ou estruturas complexas para a alocação dos blocos;
● … continuidade na alocação deixa de ser o objetivo primário e blocos serão alocados quando necessário.
Luís F. Faina - 2013 Pg. 45/65
12. Gerencimento de Arquivo - 12.6 Gerenciamento de Mem. Secundária
… 12.6.1 – Alocação de Arquivo
● Ambas as alternativas são compatíveis com a prealocação ou com a alocação dinâmica.
● No caso de porções grandes contíguas e de tamanho variável o arquivo é um grupo contíguo de blocos prealocados;
● … isto elimina a necessidade de tabela de alocação de arquivo e tudo o que é exigido é um ponteiro para o primeiro bloco bem como o nro de blocos a serem alocados.
● No caso de porções pequenas de tamanho fixo, todas as porções requeridas são alocadas no mesmo momento;
● … isto significa que a tabela de alocação de arquivo para o arqui- vo serão de tamanho fixo, pois o nro de blocos alocado é fixo.
Luís F. Faina - 2013 Pg. 46/65
12. Gerencimento de Arquivo - 12.6 Gerenciamento de Mem. Secundária
… 12.6.1 – Alocação de Arquivo
● Com porções de tamanho variável, precisamos lembrar que teremos fragmentação do espaço livre;
● … estas questões são postas quando consideramos o particio- namento da memória principal como discutidas no Cap. 07: “first-fit”; “best-fit”; “next-fit”.
● … não é claro qual estratégia é melhor.
● A dificuldade na modelagem de estratégias alternativas é que muitos fatores devem ser considerados:
● … tipos de arquivo, padrões de acesso a arquivo; grau da multi- programação; fatores de performance no sistema, “caching” de disco; escalonamento de disco, etc.
Luís F. Faina - 2013 Pg. 47/65
12. Gerencimento de Arquivo - 12.6 Gerenciamento de Mem. Secundária
12.6.2 – Métodos de Alocação de Arquivo
● Uma vez discutido prealocação “versus” alocação dinâmica bem como porções de tamanho variável ou fixo, estamos em condições de especificar os métodos de alocação.
● 03 métodos se destacam: contíguo, encadeado e indexado cujas características estão resumidas na tabela abaixo.
Luís F. Faina - 2013 Pg. 48/65
12. Gerencimento de Arquivo - 12.6 Gerenciamento de Mem. Secundária
… 12.6.2 – Métodos de Alocação de Arquivo
● “contiguous allocation” - conjunto contíguo de blocos é alocado para um arquivo no momento de sua criação, assim, trata-se de uma estratégia de prealocação.
Luís F. Faina - 2013 Pg. 49/65
12. Gerencimento de Arquivo - 12.6 Gerenciamento de Mem. Secundária
… 12.6.2 – Métodos de Alocação de Arquivo
● … de tempo em tempo é necessário executar um algoritmo de compactação para liberar espaços livres no disco.
Luís F. Faina - 2013 Pg. 50/65
12. Gerencimento de Arquivo - 12.6 Gerenciamento de Mem. Secundária
… 12.6.2 – Métodos de Alocação de Arquivo
● “chained allocation” - alocação se dá com base no bloco, ou seja, cada bloco contém um ponteiro para o próximo bloco na cadeia de blocos que contém dados do arquivo.
Luís F. Faina - 2013 Pg. 51/65
12. Gerencimento de Arquivo - 12.6 Gerenciamento de Mem. Secundária
… 12.6.2 – Métodos de Alocação de Arquivo
● … embora a prealocação seja possível, é mais comum alocar blocos quando necessário, ou seja, qualquer bloco libre pode ser adicionado à cadeia sem efeito de fragmentação externa.
Luís F. Faina - 2013 Pg. 52/65
12. Gerencimento de Arquivo - 12.6 Gerenciamento de Mem. Secundária
… 12.6.2 – Métodos de Alocação de Arquivo
● “indexed allocation” - tabela de alocação de arquivo contém um bloco em separado para índices, ou seja, um índice para cada porção de blocos alocada ao arquivo.
Luís F. Faina - 2013 Pg. 53/65
12. Gerencimento de Arquivo - 12.6 Gerenciamento de Mem. Secundária
… 12.6.2 – Métodos de Alocação de Arquivo
● … consolidação do arquivo reduz o tamanho do índice no caso de porções de tamanho variável, mas não a alocação de bloco;
● … alocação indexada suporta ambos acessos diretos e sequenciais e, por isso, é um dos mais populares métodos.
Luís F. Faina - 2013 Pg. 54/65
12. Gerencimento de Arquivo - 12.6 Gerenciamento de Arq. no UNIX
12.7 – Gerenciamento de Arquivo no UNIX
● Sistema UNIX dá suporte a 05 tipos de arquivos:
● “regular file” - contém dados arbitrário em zero ou mais blocos de dados podendo armazenar dados do usuário, programa de aplicação ou programa utilitário do sistema;
● “directory” - contém uma lista de nomes de arquivos e ponteiros associados ao respectivos “inodes”, ou seja, são arquivos regulares com privilégio de proteção de escrita;
● “special file” - não contém dados, mas provê mecanismo para mapear dispositivos físicos para nomes de arquivos, que são utilizados para acessar dispositivos periféricos;
● “named pipe” - facilidade do módulo de comunicação entre processos que enfileira dados recebidos de sua entrada;
Luís F. Faina - 2013 Pg. 55/65
12. Gerencimento de Arquivo - 12.6 Gerenciamento de Arq. no UNIX
… 12.7 – Gerenciamento de Arquivo no UNIX
● Sistema UNIX dá suporte a 05 tipos de arquivos:
● “named pipe” - facilidade do módulo de comunicação entre processos que enfileira dados recebidos de sua entrada;
● … processo que lê da saída do “pipe”, recebe os dados tendo por base a política “first-in-first-out”;
● “links” - nome alternativo para o nome de arquivo já existente.
● “symbolic links” - arquivo de dados que contém o nome de arquivo com o qual ele está ligado/associado.
Luís F. Faina - 2013 Pg. 56/65
12. Gerencimento de Arquivo - 12.6 Gerenciamento de Arq. no UNIX
… 12.7 – Gerenciamento de Arquivo no UNIX
● “index node” - estrutura de controle que contém a informação chave necessária para acessar um arquivo em particular;
● … vários nomes de arquivo podem ser associados a um único “inode”, mas o “inode” ativo está associado a um único arquivo, assim, um arquivo é controlado por um único “inode”;
● … atributos do arquivo assim como as permissões e outras informações de controle são armazenadas no “inode”;
● … estrutura exata de um “inode” varia de implementação de Sistema Operacional UNIX ou UNIX-like.
Luís F. Faina - 2013 Pg. 57/65
12. Gerencimento de Arquivo - 12.6 Gerenciamento de Arq. no UNIX
… 12.7 – Gerenciamento de Arquivo no UNIX
● Estrutura “Inode” do FreeBSD inclui os seguintes dados:
● “type of file” e “access mode” - tipo do arquivo e modo de acesso;
● “owners” - identificador do proprietário bem como dos grupos que tem acesso ao referido arquivo em função das permissões concedidas;
● “timestamps” - marca de tempo de quando o arquivo foi criado, lido, ou atualizado bem como quando o “inode” foi atualizado;
● “size” - tamanho do arquivo;
● “direct”; “single indirect”; “double indirect” e “triple indirect” - ponteiros para blocos de dados direto, indireto simples, indireto duplo e indireto triplo;
Luís F. Faina - 2013 Pg. 58/65
12. Gerencimento de Arquivo - 12.6 Gerenciamento de Arq. no UNIX
… 12.7 – Gerenciamento de Arquivo no UNIX
● (cont.) Estrutura “Inode” do FreeBSD inclui os seguintes dados:
● “block count” - nro. de blocos físicos utilizados pelo arquivo, incluindo blocos utilizados para ponteiros indiretos e seus atributos;
● “reference count” - nro. de entradas de diretório p/ este arquivo;
● “flags” - “flags” do usuário e do “kernel” que descrevem as características do arquivo;
● “generation number” - nro. selecionado aleatóriamente e atribuído ao “inode” a cada vez que o “inode” é alocado a um novo arquivo – utilizado para detectar referências para arquivos removidos).
● “blocksize” - tamanho do bloco de dados referenciados pelo “inode” - tipicamente do mesmo tamanho do “system blocksize”;
Luís F. Faina - 2013 Pg. 59/65
12. Gerencimento de Arquivo - 12.6 Gerenciamento de Arq. no UNIX
… 12.7 – Gerenciamento de Arquivo no UNIX
● (cont.) Estrutura “Inode” do FreeBSD inclui os seguintes dados:
● “extended attribute size” - tamanho da área extra que acomoda informações de atributos do arquivo;
● “extended attribute block” - ponteiro para blocos que contém oa atributos estendidos do arquivo.
● No UNIX a alocação do arquivo tem por base o bloco bem como a alocação dinâmica de bloco, uma vez que no disco os blocos não são necessariamente contíguos;
● … em praticamente todas as Implementações de UNIX, o “inode” inclui um nro. de ponteiros diretos e 03 ponteiros indiretos.
Luís F. Faina - 2013 Pg. 60/65
12. Gerencimento de Arquivo - 12.6 Gerenciamento de Arq. no UNIX
… 12.7 – Gerenciamento de Arquivo no UNIX
●
Luís F. Faina - 2013 Pg. 61/65
12. Gerencimento de Arquivo - 12.6 Gerenciamento de Arq. no UNIX
… 12.7 – Gerenciamento de Arquivo no UNIX
● “Inode” no FreeBSD inclui 120 bytes de informações de endereço que são organizadas em endereços de 64 bits (ponteiros);
● … os primeiros 12 apontam para os 12 primeiros blocos de dados, assim, se o arquivo requer mais de 12 blocos de dados, um ou mais níveis indiretos pode ser utilizado.
Luís F. Faina - 2013 Pg. 62/65
12. Gerencimento de Arquivo - 12.6 Gerenciamento de Arq. no UNIX
… 12.7 – Gerenciamento de Arquivo no UNIX
● “directories” - cada diretório pode conter arquivos e/ou outros diretórios, ou seja, está organizado na forma de árvore;
● … diretório que está dentro de outro diretório é chamado de subdiretório e, resumidamente, é um arquivo que contém uma lista de nomes de arquivos e ponteiros para os seus “inodes”;
● … cada entrada de diretório contém um nome para o arquivo associado ou subdiretório e um inteiro chamado “index number”;
● “i-number” - quando o arquivo ou diretório é acessado, este número é usado como um índice na tabela de “inodes”.
Luís F. Faina - 2013 Pg. 63/65
12. Gerencimento de Arquivo - 12.6 Gerenciamento de Arq. no UNIX
… 12.7 – Gerenciamento de Arquivo no UNIX
● Diretórios e “Inodes” no UNIX.
Luís F. Faina - 2013 Pg. 64/65
12. Gerencimento de Arquivo - 12.6 Gerenciamento de Arq. no UNIX
… 12.7 – Gerenciamento de Arquivo no UNIX
● Sistema de Arquivo UNIX reside em um disco lógico único ou em uma partição do disco e contempla os seguintes elementos:
● “boot block” - contém para o “boot” do sist. operaciona;
● “superblock” - contém informações e atributos do arquivo, tais como tamanho da partição tamanho da tabela de “inodes”;
● “inode table” - coleção de “inodes” de cada arquivo;
● “data blocks” - espaço de armazenamento disponível para dados de arquivos bem como para subdiretórios.
Luís F. Faina - 2013 Pg. 65/65
12. Gerencimento de Arquivo - 12.6 Gerenciamento de Arq. no UNIX
… 12.7 – Gerenciamento de Arquivo no UNIX
● Sistema de Arquivo UNIX reside em um disco lógico único ou em uma partição do disco e contempla os seguintes elementos:
Top Related