33
Luís F. Faina - 2013 Pg. 1/65 Cap. 12 – Gerenciamento de Arquivos 12.1 – Visão Geral 12.1.1 - Arquivos e Sistemas de Arquivos 12.1.2 - Estrutura de Arquivos 12.1.3 - Gerenciamento de Arquivos 12.1.4 – Arquitetura do Sistema de Arquivo 12.2 – Organização e Acesso a Arquivo 12.2.1 - Pile 12.2.2 - Arquivo Sequencial 12.2.3 - Arquivo Sequencial Indexado 12.2.4 - Arquivo Indexado 12.2.5 - Arquivo Hashed ou Direto Luís F. Faina - 2013 Pg. 2/65 … Cap. 12 – Gerenciamento de Arquivos 12.3 – Diretório de Arquivo 12.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 Arquivo 12.4.1 - Permissões de Acesso 12.4.2 - Acesso Simultâneo 12.5 – Record Blocking

Cap. 12 – Gerenciamento de Arquivosfaina/BCC_Crs/GSI018-2014-1S/DL/ch-12.pdf · de programas utilitários do sistema operacional que executam como aplicações com privilégios

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Cap. 12 – Gerenciamento de Arquivosfaina/BCC_Crs/GSI018-2014-1S/DL/ch-12.pdf · de programas utilitários do sistema operacional que executam como aplicações com privilégios

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

Page 2: Cap. 12 – Gerenciamento de Arquivosfaina/BCC_Crs/GSI018-2014-1S/DL/ch-12.pdf · de programas utilitários do sistema operacional que executam como aplicações com privilégios

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.

Page 3: Cap. 12 – Gerenciamento de Arquivosfaina/BCC_Crs/GSI018-2014-1S/DL/ch-12.pdf · de programas utilitários do sistema operacional que executam como aplicações com privilégios

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.

Page 4: Cap. 12 – Gerenciamento de Arquivosfaina/BCC_Crs/GSI018-2014-1S/DL/ch-12.pdf · de programas utilitários do sistema operacional que executam como aplicações com privilégios

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.

Page 5: Cap. 12 – Gerenciamento de Arquivosfaina/BCC_Crs/GSI018-2014-1S/DL/ch-12.pdf · de programas utilitários do sistema operacional que executam como aplicações com privilégios

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.

Page 6: Cap. 12 – Gerenciamento de Arquivosfaina/BCC_Crs/GSI018-2014-1S/DL/ch-12.pdf · de programas utilitários do sistema operacional que executam como aplicações com privilégios

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;

Page 7: Cap. 12 – Gerenciamento de Arquivosfaina/BCC_Crs/GSI018-2014-1S/DL/ch-12.pdf · de programas utilitários do sistema operacional que executam como aplicações com privilégios

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;

Page 8: Cap. 12 – Gerenciamento de Arquivosfaina/BCC_Crs/GSI018-2014-1S/DL/ch-12.pdf · de programas utilitários do sistema operacional que executam como aplicações com privilégios

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.

Page 9: Cap. 12 – Gerenciamento de Arquivosfaina/BCC_Crs/GSI018-2014-1S/DL/ch-12.pdf · de programas utilitários do sistema operacional que executam como aplicações com privilégios

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.

Page 10: Cap. 12 – Gerenciamento de Arquivosfaina/BCC_Crs/GSI018-2014-1S/DL/ch-12.pdf · de programas utilitários do sistema operacional que executam como aplicações com privilégios

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.

Page 11: Cap. 12 – Gerenciamento de Arquivosfaina/BCC_Crs/GSI018-2014-1S/DL/ch-12.pdf · de programas utilitários do sistema operacional que executam como aplicações com privilégios

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.

Page 12: Cap. 12 – Gerenciamento de Arquivosfaina/BCC_Crs/GSI018-2014-1S/DL/ch-12.pdf · de programas utilitários do sistema operacional que executam como aplicações com privilégios

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.

Page 13: Cap. 12 – Gerenciamento de Arquivosfaina/BCC_Crs/GSI018-2014-1S/DL/ch-12.pdf · de programas utilitários do sistema operacional que executam como aplicações com privilégios

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

Page 14: Cap. 12 – Gerenciamento de Arquivosfaina/BCC_Crs/GSI018-2014-1S/DL/ch-12.pdf · de programas utilitários do sistema operacional que executam como aplicações com privilégios

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.

Page 15: Cap. 12 – Gerenciamento de Arquivosfaina/BCC_Crs/GSI018-2014-1S/DL/ch-12.pdf · de programas utilitários do sistema operacional que executam como aplicações com privilégios

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.

Page 16: Cap. 12 – Gerenciamento de Arquivosfaina/BCC_Crs/GSI018-2014-1S/DL/ch-12.pdf · de programas utilitários do sistema operacional que executam como aplicações com privilégios

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.

Page 17: Cap. 12 – Gerenciamento de Arquivosfaina/BCC_Crs/GSI018-2014-1S/DL/ch-12.pdf · de programas utilitários do sistema operacional que executam como aplicações com privilégios

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.

Page 18: Cap. 12 – Gerenciamento de Arquivosfaina/BCC_Crs/GSI018-2014-1S/DL/ch-12.pdf · de programas utilitários do sistema operacional que executam como aplicações com privilégios

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;

Page 19: Cap. 12 – Gerenciamento de Arquivosfaina/BCC_Crs/GSI018-2014-1S/DL/ch-12.pdf · de programas utilitários do sistema operacional que executam como aplicações com privilégios

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.

Page 20: Cap. 12 – Gerenciamento de Arquivosfaina/BCC_Crs/GSI018-2014-1S/DL/ch-12.pdf · de programas utilitários do sistema operacional que executam como aplicações com privilégios

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 ?

Page 21: Cap. 12 – Gerenciamento de Arquivosfaina/BCC_Crs/GSI018-2014-1S/DL/ch-12.pdf · de programas utilitários do sistema operacional que executam como aplicações com privilégios

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.

Page 22: Cap. 12 – Gerenciamento de Arquivosfaina/BCC_Crs/GSI018-2014-1S/DL/ch-12.pdf · de programas utilitários do sistema operacional que executam como aplicações com privilégios

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.

Page 23: Cap. 12 – Gerenciamento de Arquivosfaina/BCC_Crs/GSI018-2014-1S/DL/ch-12.pdf · de programas utilitários do sistema operacional que executam como aplicações com privilégios

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.

Page 24: Cap. 12 – Gerenciamento de Arquivosfaina/BCC_Crs/GSI018-2014-1S/DL/ch-12.pdf · de programas utilitários do sistema operacional que executam como aplicações com privilégios

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.

Page 25: Cap. 12 – Gerenciamento de Arquivosfaina/BCC_Crs/GSI018-2014-1S/DL/ch-12.pdf · de programas utilitários do sistema operacional que executam como aplicações com privilégios

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.

Page 26: Cap. 12 – Gerenciamento de Arquivosfaina/BCC_Crs/GSI018-2014-1S/DL/ch-12.pdf · de programas utilitários do sistema operacional que executam como aplicações com privilégios

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.

Page 27: Cap. 12 – Gerenciamento de Arquivosfaina/BCC_Crs/GSI018-2014-1S/DL/ch-12.pdf · de programas utilitários do sistema operacional que executam como aplicações com privilégios

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;

Page 28: Cap. 12 – Gerenciamento de Arquivosfaina/BCC_Crs/GSI018-2014-1S/DL/ch-12.pdf · de programas utilitários do sistema operacional que executam como aplicações com privilégios

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.

Page 29: Cap. 12 – Gerenciamento de Arquivosfaina/BCC_Crs/GSI018-2014-1S/DL/ch-12.pdf · de programas utilitários do sistema operacional que executam como aplicações com privilégios

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”;

Page 30: Cap. 12 – Gerenciamento de Arquivosfaina/BCC_Crs/GSI018-2014-1S/DL/ch-12.pdf · de programas utilitários do sistema operacional que executam como aplicações com privilégios

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

Page 31: Cap. 12 – Gerenciamento de Arquivosfaina/BCC_Crs/GSI018-2014-1S/DL/ch-12.pdf · de programas utilitários do sistema operacional que executam como aplicações com privilégios

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”.

Page 32: Cap. 12 – Gerenciamento de Arquivosfaina/BCC_Crs/GSI018-2014-1S/DL/ch-12.pdf · de programas utilitários do sistema operacional que executam como aplicações com privilégios

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.

Page 33: Cap. 12 – Gerenciamento de Arquivosfaina/BCC_Crs/GSI018-2014-1S/DL/ch-12.pdf · de programas utilitários do sistema operacional que executam como aplicações com privilégios

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: