350 likes | 557 Views
SISTEMAS OPERACIONAIS. Sistemas de Arquivos Prof. André Dutton. Sistemas de arquivo.
E N D
SISTEMAS OPERACIONAIS Sistemas de Arquivos Prof. André Dutton www.dutton.com.br/aluno
Sistemas de arquivo • Os sistemas de arquivos estruturam a informação guardada em uma unidade de armazenamento (HD, PenDrivee outros), podendo ser representada de forma textual ou graficamente utilizando um gerenciador de arquivos. A maioria dos sistemas operacionais possuem seu próprio sistema de arquivos. www.dutton.com.br/aluno
O sistema de Arquivos. • O habitual é utilizar dispositivos de armazenamento de dados que permitem o acesso aos dados como uma corrente (cadeia) de blocos de um mesmo tamanho, às vezes chamados setores, usualmente de 512 bytes de largura. O software do sistema de arquivos é responsável pela organização destes setores em arquivos e diretórios e mantém um registo de que setores pertencem a que arquivos e quais não têm sido utilizados www.dutton.com.br/aluno
Estrutura • A estrutura de diretórios costuma ser hierárquica, ramificada ou "em árvore", ainda que pode ser plana. Em alguns sistemas de arquivos os nomes de arquivos são estruturados, com sintaxes especiais para extensão de arquivos e números de versão. Em outros, os nomes de arquivos são simplesmente correntes de texto (ou strings de texto, em inglês) e os metadados da cada arquivo são alojados separadamente. www.dutton.com.br/aluno
sistemas de arquivos hierárquicos • Nos sistemas de arquivos hierárquicos, usualmente, declara-se a localização precisa de um arquivo com uma corrente de texto (string de texto, em inglês) chamada "rota" ou "caminho" — ou path em inglês —. A nomenclatura para rotas - ou caminho - varia ligeiramente de sistema em sistema, mas mantêm pelo geral uma mesma estrutura. Uma rota vem dada por uma sucessão de nomes de diretórios e subdiretórios, ordenados hierarquicamente de esquerda a direita e separados por algum caractere especial que costuma ser uma barra ('/') ou barra invertida ('\') e pode terminar no nome de um arquivo presente ao último ramo de diretórios especificada. www.dutton.com.br/aluno
Características dos sistemas de arquivos • Segurança ou permissões • listas de controle de acesso (ACLs) • Mecanismo para evitar a fragmentação • Capacidade de enlaces simbólicos (symbolic links) ou duros (hard links) • Integridade do sistema de arquivos (Journaling) • Suporte para arquivos dispersos • Suporte para quotas de discos • Suporte de crescimento do sistema de arquivos nativo www.dutton.com.br/aluno
Arquivos de texto Windows por padrão são codificados em ASCII e não em Unicode. Arquivos de texto Unix por padrão são codificados em Unicode e não em ASCII. www.dutton.com.br/aluno
Tipos de Arquivos • Geralmente os Sistemas Operacionais suportam vários tipos de arquivos. O Unix e o Windows, por exemplo, suportam diretórios e arquivos organizados em sequência de bytes, sequência de registros e árvores, conhecidos como arquivos regulares. O Unix, em especial, suporta além dos tipos regulares, arquivos de dispositivo de caracteres e de blocos. Os arquivos de dispositivo de caracteres são utilizados para modelar dispositivos de E/S, tais como terminais, redes, impressoras. Já os arquivos de dispositivo de blocos dão suporte aos dispositivos de armazenamento em massa tais como discos e 'pen-drives'. www.dutton.com.br/aluno
Nomes de Arquivos • Nomear os arquivos é uma tarefa importante, pois será através do nome que um arquivo será encontrado no sistema de arquivos. Por exemplo, uma aplicação cria um arquivo chamado "dados.txt" e com esse nome outras aplicações poderão acessar este mesmo arquivo. • O tipo do arquivo pode ser indicado na extensão do mesmo, que é uma última parte escrita após um ponto(.) no nome do arquivo. Alguns sistemas operacionais utilizam essa extensão para automatizar as ações referentes aquele arquivo. Por exemplo, no Windows um arquivo com extensão '.txt' é interpretado como um documento de texto, e ao executá-lo o sistema já procura uma aplicação que trata este tipo de arquivo, como um editor de texto. www.dutton.com.br/aluno
Operações com Arquivos • Criação: criação sem escrita de dado algum. • Destruição: remoção do arquivo para liberação do espaço. • Abertura: abertura do arquivo, para colocar na memória os atributos e a lista de endereços para tornar as operações posteriores mais rápidas. • Fechamento: remover as referências do arquivos da memória principal. • Leitura: abertura do arquivo para leitura do seu conteúdo. • Escrita: processo de escrita do arquivo. Geralmente a escrita começa a partir de onde estiver o ponteiro, caso esse ponteiro esteja no final do arquivo ou durante a escrita o final for atingido, o arquivo aumentará de tamanho. • Concatenação: forma de escrita que só permite adicionar dados no final do arquivo • Busca: chamada que coloca o ponteiro em uma posição específica do arquivo. Depois dessa chamada, dados podem ser lidos/escritos a partir daquela posição. • Ver atributos: essa chamada verifica certos atributos como permissões, por exemplo. Às vezes é necessário escrever em um arquivo, porém é necessário verificar se esse arquivo possui permissão de escrita. • Definir atributos: Serve para definir ou alterar os atributos de certos arquivos. Flags de proteção podem ser definidas com essa chamada. • Renomeação: Chamada de sistema para renomear um arquivo. www.dutton.com.br/aluno
Implementação de arquivos • A criação de arquivos exige que o sistema operacional tenha controle de quais áreas ou blocos no disco estão livres. É importante o controle de quais blocos de discos estão relacionados a quais arquivos. Este gerenciamento pode ser feito, principalmente de varias formas: Alocação contígua, alocação por lista encadeada, alocação indexada e alocação combinada . www.dutton.com.br/aluno
Alocação contígua • É o esquema mais simples de alocar e armazenar os arquivos no disco. Consiste em armazenar um arquivo em blocos sequencialmente dispostos. Neste tipo, o sistema localiza um arquivo através do endereço do primeiro bloco e da sua extensão em blocos. • A alocação contígua é amplamente utilizada em CD-ROMS e em discos apenas para leitura. Neles o tamanho do arquivo é conhecido anteriormente e nunca vai ser alterado. www.dutton.com.br/aluno
Alocação por lista encadeada • Alocação encadeada consiste em manter os arquivos, cada um, como uma lista encadeada de blocos de disco. Dessa forma uma parte de cada bloco é usada como ponteiro para o próximo bloco. O restante do bloco é usado para dados. • Uma vantagem desse tipo de alocação é que o tamanho do arquivo não precisa ser conhecido antes de sua criação, já que cada bloco terá um ponteiro para o próximo bloco. Assim o fato de o disco estar fragmentado não ocasiona problemas para a criação do arquivo. • O problema deste tipo de alocação é o tempo de leitura extremamente lento. O acesso deverá ser sempre sequencial. Assim para acessar um bloco intermediário será necessário percorrer o arquivo desde o inicio. www.dutton.com.br/aluno
Alocação indexada • Alocação indexada é uma forma de resolver o problema do tempo de leitura da alocação por lista encadeada. Isso é feito por meio de uma tabela de endereços dos blocos ocupados pelo arquivo. Para cada novo bloco alocado, inclui-se mais um novo item na tabela. • Usando alocação indexada, o acesso aleatório fica mais fácil, pois não é necessário percorrer todos os blocos de forma sequencial, o endereço de cada bloco fica armazenado na tabela de alocação. • A desvantagem desta abordagem é que a tabela alocação deverá ser mantida na memória principal e dependendo do tamanho dos blocos do disco ocupará muito espaço de memória o tempo todo. www.dutton.com.br/aluno
Alocação combinada • Outra abordagem é a alocação combinada, envolvendo o uso de blocos de índices e de encadeamento dos mesmos. Essa técnica combina a baixa ocupação de espaço em memória da técnica de lista encadeada e o bom desempenho da técnica de tabela de índices. • No método de alocação combinada é usado uma técnica chamada de níveis de indireção na indexação. Nesta técnica, parte de um bloco é utilizado para apontar diretamente blocos de dados, chamado de apontadores diretos, e outra parte é utilizada pode ser utilizada para apontadores para blocos, chamado de apontadores indiretos. Se usarmos outros níveis de apontadores, podemos estender essa mesma técnica para apontadores duplamente indiretos e apontadores triplamente indiretos. • Esta abordagem é tipicamente utilizada na implementação do sistema de arquivos Unix, chamada de I-nodes. Um I-node (index-node) são os metadados, armazenado em estrutura de dados própria, que relaciona atributos e os endereços dos blocos de um arquivo. www.dutton.com.br/aluno
Virtual File System • VFS é uma camada de abstração entre a aplicação e as implementações do sistema de arquivos. O VFS pode, por exemplo, ser usado para acessar dispositivos de armazenamento locais e de rede de forma transparente, sem que a aplicação cliente perceba a diferença. • O propósito principal de um VFS é permitir que as várias aplicações clientes possam acessar diversos tipos de sistemas de arquivos concretos de uma maneira uniforme. www.dutton.com.br/aluno
Mapa Conceitual ilustrando o conceito de múltiplos sistemas de arquivos www.dutton.com.br/aluno
Cache de sistemas de arquivos • Uma cache de disco pode ser definida como parte da memória RAM ou memória buffer cache, utilizada para acelerar o acesso aos dados que estão sendo mais frequentemente requeridos. Para isso a cache de disco pode ser implementado de duas formas principais: • 1 - Através da memória RAM inserida no próprio disco rígido. • 2 - Utilização de parte da memória RAM. • Representação da localização da memória Buffer Cache: www.dutton.com.br/aluno
Vantagens e Desvantagens da Buffer Cache • Minimização do número de transferências entre o disco e a memória (cache hits); • O acesso a disco é tratado de uma forma uniforme.Existe apenas uma interface para acessar os dados de um disco; • Ajudar a manter a coerências dos blocos. Se dois processos tentam acessar o mesmo bloco a buffer cache ordena os acessos; • Torna o sistema mais vulnerável a acidentes de parada total (falta de energia, por exemplo) ("crashes"); • Torna a transferência de grandes quantidades de informação mais lenta. www.dutton.com.br/aluno
Buffers • O número de buffers é configurável de acordo com a memória disponível e o tipo de utilização do sistema. Cada buffer é constituido de 2 partes: • 1 - Zona que contém a cópia de um bloco do disco.O mesmo buffer pode guardar blocos de discos diferentes em instantes diferentes. • 2 - Cabeçalho que contém informação de controle sobre esse buffer. www.dutton.com.br/aluno
Gerência de Espaço livre • O monitoramento de espaço livre em um disco é realizado principalmente através de dois diferentes métodos:lista encadeada e mapa de bits.Esses métodos são descritos abaixo. www.dutton.com.br/aluno
Conceitos de diretórios • O diretório é uma estrutura de dados que contém entradas associadas aos arquivos onde são armazenadas informações como localização física, nome, organização e demais atributos; Ou seja, um diretório (ou subdiretório) é simplesmente outro arquivo, mas é tratado de modo especial; Todos os diretórios têm um bit em cada entrada de diretório que define a entrada como um arquivo (0) ou um subdiretório (1); Chamadas ao sistema especiais criam e excluem diretórios; Quando um arquivo é aberto, o SO procura a sua entrada na estrutura de diretórios, armazenando as informações sobre atributos e localização do arquivo em uma tabela mantida na memória principal; Há, basicamente, 2 organizações possíveis p/ as entradas: • (a) cada entrada contém o nome do arquivo, seus atributos e os endereços no disco onde ele está armazenado; • (b) nome do arquivo e um ponteiro para outra estrutura de dados onde podem ser encontrados os atributos do arquivos. www.dutton.com.br/aluno
Implementação de Diretórios • Independente da forma adotada para a implementação de arquivos, a principal função do diretório é mapear o nome ASCII do arquivo na informação necessária à localização do dado. Cada sistema operacional possui uma forma própria de entrada de diretório; Serão Apresentados os formatos dos sistemas operacionais MS-DOS e UNIX. www.dutton.com.br/aluno
Diretórios no MS-DOS • No MS-DOS, diretórios podem conter outros diretórios, o que leva a uma estrutura hierárquica para o sistema de arquivos; O MS-DOS utiliza uma entrada de diretórios de 32 bytes, contendo o nome do arquivo, seus atributos e o número do primeiro bloco do disco. www.dutton.com.br/aluno
Sistemas de arquivos FAT • Desenvolvido em 1976, utilizado pela primeira vez no INTEL 8086 • Limita o nome do arquivo em 14 caractere • Nnnnnnn.xxx • Mais tarde FAT 12- 16 – e 32 • Com o Windows 98 o FAT32 foi implantado permitindo nomes mais longos. www.dutton.com.br/aluno
Sistemas de arquivos ntfs • Segurança de controle de acesso • Permite maiores partições no disco • Sistema de caracteres Unicode • Caminho de até 32767 caracteres. • Suporta Case Sensitive, no entanto, essa • característica é perdida devido à Win32API; • Suporte à rede; • Compressão de arquivos; • Tamanho de blocos 512bytes até 64Kb; • Baseado no conceito de transações tarefa é cumprida até o fim ou é abortada; • Suporte à criptografia de arquivos driver EFS (encryptingfile system); chave de 128 bits; www.dutton.com.br/aluno
Referencias • http://pt.wikibooks.org/wiki/Sistemas_operacionais/Sistemas_de_arquivos#Conceitos_de_arquivos • http://www.ieeta.pt/~lau/Sosd9697/BufferCache.pdf • http://www.webopedia.com/TERM/D/disk_cache.html • http://www.superspeed.com/desktop/supercache.php • Morimoto, Carlos. Cache de Disco (ou Buffer de disco). Disponível em http://www.guiadohardware.net/termos/cache-de-disco-ou-buffer-de-disco. www.dutton.com.br/aluno