Sistema Operacionais Sistemas de Arquivos. - ppt carregar
PublicouGiovanna Verissimo Alterado mais de 5 anos atrás
Apresentação em tema: "Sistema Operacionais Sistemas de Arquivos."— Transcrição da apresentação:
1 Sistema Operacionais Sistemas de Arquivos
2 Sistema de Arquivos Não é possível gravar dados disco (HD, memory card, pen drive, CD) sem um sistema de arquivos, que é, basicamente, uma estrutura que indica como os arquivos devem ser gravados e guardados em mídias.
3 Sistema de Arquivos Através do sistema de arquivos, é que se determina o espaço utilizado no disco, além de ser o método que permite gerenciar como partes de um arquivo podem ficar "espalhadas" no dispositivo de armazenamento.
4 Sistema de Arquivos Um outro detalhe importante: é o sistema de arquivos que determina como arquivos podem ser gravados, copiados, alterados, nomeados e até apagados.
5 Sistema de Arquivos Ou seja, resumindo, toda e qualquer manipulação de dados numa mídia necessita de um sistema de arquivos para que essas ações sejam possíveis. Se não houver estrutura de armazenamento e manipulação é impossível gravar dados.
6 Introdução O sistema de arquivos é a parte mais visível do sistema operacional. Cria um recurso lógico a partir de recursos físicos através de uma interface coerente e simples, fácil de usar Mecanismo para armazenamento e acesso a dados e a programas
7 Duas partes básicas: Partição
Arquivos - armazenamento de dados e de programas Diretórios - organização e informações sobre arquivos Partição permite - a partir do disco físico - criar discos lógicos
8 Objetivos do sistema de arquivos
Fornecer mecanismos para usuários manipular arquivos e diretórios Garantir a validade e coerência de dados Minimizar ou eliminar o risco de perda/alteração de dados Otimizar o acesso
9 Objetivos do sistema de arquivos
Fornecer suporte a operações de E/S a diferentes dispositivos Interface única para interface usuário de funções de E/S Suporte a vários usuários (multiprogramação) Uso compartilhado (proteção e acesso concorrente)
10 Requisitos mínimos: Ponto de Vista do Usuário
Cada usuário deve ser capaz de: Criar, apagar, ler e alterar arquivos Controlar as permissões de acesso a seus arquivos Estruturar o sistema de arquivos de forma a adequá-lo a suas necessidades específicas
11 Requisitos mínimos: Ponto de Vista do Usuário
Cada usuário deve ser capaz de: Transferir dados entre arquivos Realizar backup's e recuperar arquivos em caso de problemas Nomear os arquivos de forma simbólica
12 Requisitos mínimos: Ponto de Vista do Sistema
Identificar e localizar um determinado arquivo Empregar diretório para descrever a localização de todos os arquivos e de seus atributos Gerenciar espaço físico do disco Alocar blocos livres a arquivos em criação/expansão Liberar blocos de arquivos removidos Mecanismos para localizar eficientemente blocos (setores) que compõem arquivos
13 Conceito de arquivo Menor unidade do sistema de arquivos
Espaço lógico de endereçamento contíguo Seqüência de bytes, de linhas, ou de registros Possui uma estrutura interna cuja interpretação depende do sistema operacional e do programa que o manipula Arquivos de dados - numérico, caractere, binário Programa - fonte, objeto, executável
14 Atributos de um arquivo
Informações sobre arquivos Nome: informação simbólica empregada pelo usuário para referenciar o arquivo Tipo: binário, texto, executável, caracter, bloco Localização: posição do arquivo em um determinado dispositivo E/S Tamanho: número de bytes que compõem o arquivo
15 Atributos são mantidos em uma estrutura a parte
Proteção: controla acesso de leitura, escrita e execução ao arquivo Hora e data de criação e identificação do usuário: informações destinadas a proteção, segurança e monitoração Atributos são mantidos em uma estrutura a parte Diretório
16 Operações básicas sobre arquivos
Arquivo é um tipo abstrato de dados sobre o qual se pode efetuar uma série de operações Criação (create) Escrita (write) e leitura (read) Reposicionamento em um ponto qualquer do arquivo (file seek) Remoção (delete) Abertura (open) e encerramento (close) Adicionalmente: renomeação (rename); appending, etc Geralmente correspondem a chamadas de sistema
17 Controle de acesso Importante controlar o acesso aos arquivos devido a questões de segurança e de confidencialidade Objetivo é evitar acessos indevidos a arquivos Baseado na identificação dos usuários Sistema de autenticação padrão (login name + senha) Usuários possuem direitos de acessos
18 Solução típica: Lista de acesso e grupo
19 Listas de acesso Consiste em associar a cada arquivo e/ou diretório uma lista de acesso que determina que tipos de acessos são permitidos para cada usuário Maior inconveniente é o tamanho da lista Uma solução consiste em: Criar classes de usuários - e.g.: proprietário, grupo, universo Tipos de acessos - e.g: read, write, modify, execute
20 Exemplo: SISTEMAS UNIX
Cada objeto oferece 3 bits (rwx) para três domínios diferentes: owner, group e others Problema de flexibilidade Quando um usuário pertence a vários grupos ele é identificado por um grupo primário e o arquivo (/etc/groups) mantém todos os grupos a que ele pertence Exemplo: r w x r- - r paulo professor Mai 30 22:19 windbind.pdf
21 Estrutura interna dos arquivos
Forma como os dados são dispostos em um arquivo Cada tipo de arquivo possui uma estrutura interna apropriada a sua finalidade Em geral a estrutura interna é transparente ao sistema operacional. Executáveis são organizados em segmentos de código e dados
22 Arquivos de imagens são organizados em termos de pixels
Alguns sistemas operacionais suportam nomes de arquivos onde o tipo é indicado e.g.: Windows (arquivos .doc, .pdf, .xls, .ppt, etc)
23 Métodos de acesso Forma pela qual o conteúdo de um arquivo é acessado
Estrutura lógica de um arquivo em função da forma de acesso Conceito de registro: coleção de campos que mantém uma relação entre si Métodos elementares de acesso: Acesso seqüencial Acesso relativo
24 Acesso seqüencial Acesso a um arquivo é feito através de primitivas (chamadas de sistema) do tipo read e write Cada chamada de sistema read retorna ao processo os dados seguintes àqueles que foram lidos na chamada anterior Método não adequado a todas aplicações e.g.: acesso e atualização a cadastros de funcionários
25 Acesso relativo Provê uma chamada de sistema específica para indicar o ponto em que um arquivo deve ser lido/escrito Implementado através da abstração de posição corrente no arquivo
26 Outros tipos de acesso Os métodos seqüênciais e relativos não resolvem todos os tipos de acesso e.g.: localizar um registro a partir do contéudo Necessidades de métodos de acesso mais sofisticados, tais como seqüencial indexado, indexado, direto, hash, etc Normalmente implementados por programas específicos Baseados nos métodos de acesso seqüêncial e relativo
27 Implementação de arquivos
Arquivos são implementados através da criação, para cada arquivo no sistema, de uma estrutura de dados Descritor de arquivo é um registro que mantém Informações sobre o arquivo
28 Informações típicas (atributos):
Nome do arquivo Tamanho em bytes Data e hora da criação, do último acesso, da última modificação Identificação do usuário que criou o arquivo Listas de controle de acesso Local do disco físico onde o contéudo do arquivo foi colocado
29 Alocação espaço em disco
Como alocar espaço em disco de forma que os arquivos sejam armazenados de forma eficiente e que permita acesso rápido Três métodos: Contigüo Encadeado Indexado
31 Alocação contígua Arquivo é uma seqüência de blocos contíguos alocados no momento da criação Endereços no disco são lineares bloco lógico i e i+1 são armazenados fisicamente em seqüência Reduz a necessidade de seek já que blocos estão na mesma trilha No pior caso necessita apenas a troca de cilindro Arquivo é descrito através de uma entrada na forma: Bloco físico inicial Tamanho do arquivo em bloco
32 Alocação contígua
33 Problemas com alocação contígua
Problema 1: encontrar espaço para um novo arquivo Gera fragmentação externa Necessidade de compactação
34 Problema 2: determinar o espaço necessário a um arquivo
Arquivos tendem a crescer, e se não há espaço contíguo disponível? Aborta execução do programa com erro Recopia o programa para uma zona maior Pré-alocar um espaço máximo para o arquivo Fragmentação interna
35 Alocação encadeada Soluciona problemas da alocação contígua
Alocação é baseada em uma unidade de tamanho fixo (bloco) Arquivo é uma lista encadeada de blocos Cada bloco contém um ponteiro para o próximo bloco Arquivo é descrito em uma entrada na forma: Bloco inicial do arquivo Bloco final do arquivo ou tamanho do arquivo em blocos
36 Alocação encadeada
37 Prós e contras da alocação encadeada
Elimina a fragmentação externa porém gera fragmentação interna Arquivos podem crescer indefinidamente já que não há uma relação física entre blocos físicos e lógicos O acesso a um bloco i implica em percorrer a lista encadeada - afeta o desempenho Adequado para acesso seqüencial a arquivos Espaço necessário no bloco para armazenamento de ponteiros e.g.: Para acessar 4 Gbytes necessita 232 ponteiros (4 bytes), ou seja, 0.78% de um setor de 512 bytes
38 FAT: variação de alocação encadeada
File Alocation Table (FAT) - esquema adotado pelo DOS Unidade de alocação é o cluster (conjunto de setores) Arquivo é formado por um conjunto de cluster FAT é uma tabela de encadeamento de clusters Uma entrada na FAT para cada cluster do disco (sistema de arquivos) Composta por um ponteiro (end. de um cluster) Arquivo é descrito por uma seqüência de entradas na FAT, cada entrada apontando para a próxima entrada
39 Alocação indexada Busca resolver o problema de ponteiros espalhados pelo disco que a alocação encadeada provoca Mantém, por arquivo, um índice de blocos que o compõe O índice é mantido em um bloco Diretório possui um ponteiro para o bloco onde está o índice associado a um determinado arquivo
40 Alocação indexada
41 Prós e contras da alocação indexada
Permite o acesso randômico a blocos independentes de sua posição relativa no arquivo Tamanho máximo do arquivo é limitado pela quantidade de entradas suportadas pelo bloco
42 Organização da cache de disco
Objetivo é manter na memória principal uma certa quantidade de blocos do disco Não adiciona nem elimina funcionalidades ao sistema de arquivos - melhora o desempenho do sistema de arquivos Normalmente a cache de disco é mantida em uma área da memória principal e é controlada pelo sistema operacional
43 Funcionamento da cache de disco
Em uma requisição de E/S verifica se o bloco está na cache Sim: realiza o acesso a partir dessa cópia em memória Não: realiza o acesso a partir do disco e carrega o bloco para a cache A modificação de valores é feito em blocos na cache Problema da perda de informações e da consistência do sistema de arquivos em caso de pane do sistema (falta de energia)
44 Gerência de espaço livre
Necessidade de alocar espaço livre do disco a arquivos Muitos sistemas operacionais vêm o disco como uma seqüência de blocos e não de setores A unidade de gerência do espaço físico passa a ser o bloco
45 Mapa de bits Forma simples de gerenciar o espaço em disco
A cada bloco do disco está associado um bit indicando se o bloco está livre ou ocupado
46 Lista de blocos livres Os blocos livres são organizados em uma lista
A lista é mantida no próprio disco Problema é o tamanho da lista Paliativo: A medida que o espaço em disco é ocupado a lista diminui de tamanho liberando espaço do disco
47 O conceito de diretório
Estrutura de dados que contém informações sobre arquivos Atributos Localização Propriedades Diretório é um arquivo do sistema operacional Fornece um mapeamento entre o nome de um arquivo e o arquivo propriamente dito Existem duas formas básicas para se organizar um diretório Linear Em árvore
48 Diretório linear Mais simples, o diretório corresponde a uma lista de todos os arquivos do disco Desvantagem: Problema de nomeação e agrupamento 2 ou mais usuários não podem ter arquivos com o mesmo nome
49 Diretório linear a dois níveis
Existência de um diretório principal que contém uma entrada para cada usuário cadastrado no sistema Entrada corresponde a um subdiretório
50 Diretório em árvore Generealização do conceito de subdiretórios permitindo aos usuários criar livremente os seus próprios subdiretórios
FAT é a sigla para File Allocation Table (ou tabela de alocação de arquivos). Quando um arquivo é salvo num HD por exemplo, o FAT divide a área do disco em pequenos blocos. Assim, um arquivo pode (e ocupa) vários blocos, mas eles não precisam estar numa seqüência. Os blocos de determinados arquivos podem estar em várias posições diferentes. Daí a necessidade de uma tabela para indicar cada bloco.
Ao trabalharmos com HDs (e outros discos) é necessário prepará-los, fazendo uma formatação física. Este processo, divide os discos em trilhas (uma espécie de caminho circular) e setores (subdivisões de cada trilha, com geralmente 512 bytes). Um conjunto de trilhas recebe o nome de cilindro.
53 A formatação física já vem de fábrica e pode ser alterada se o usuário quiser dividir o disco em partições. Depois deve- se fazer uma formatação lógica, que nada mais é do que "instalar" o sistema de arquivos no dispositivo de armazenamento.
54 O sistema de arquivos FAT não trabalha diretamente com cada setor, mas sim com um grupo de setores. Esse grupo é chamado de cluster (ou unidade de alocação). Se por exemplo, um disco com setor de 512 bytes, tiver 5 KB de tamanho, ele terá 10 setores e 5 clusters, se cada cluster ocupar dois setores.
55 Sendo assim, quando o FAT precisar acessar um determinado setor, primeiro ele descobre em qual cluster ele se encontra. É válido citar que tanto o FAT quanto o FAT32 trabalham de acordo com este princípio.
56 O sistema FAT exige que cada cluster do disco seja usado somente para um único arquivo, ou seja, num mesmo cluster, não pode haver informações sobre mais de um arquivo. Isso pode até parecer óbvio, mas gera um problema: desperdício.
57 Sistema de Arquivos FAT32
FAT32 - A versão OSR-2 do Windows 95 (conhecido também como Windows "B") trouxe um novo sistema de arquivos chamado de FAT32. Uma evolução natural da antiga FAT16, ela permite 32 bits de endereçamento de dados, permitindo clusters de apenas 4 kbytes, mesmo em partições maiores que 2 GB. O tamanho máximo de uma partição com FAT32 é de Gbytes, ou 2 Terabytes.
58 Comparação FAT16 x FAT32
59 Sistema de Arquivos VFAT
60 Sistemas de arquivos NTFS
NTFS é a sigla para New Technology File System. Desde a época do DOS, a Microsoft vinha utilizando o sistema de arquivos FAT FAT apresenta algumas limitações, principalmente no quesito segurança. Microsoft lançou o sistema de arquivos NTFS, usado inicialmente em versões do Windows para servidores.
61 Este sistema de arquivos é usado pelo Windows NT
Este sistema de arquivos é usado pelo Windows NT. Nele, os clusters são de apenas 512 bytes, sendo o espaço em disco desperdiçado quase nenhum. Somente os Windows NT / 2000 / 2003 / 2008/ XP / Vista / 7, são capazes de entender este formato de arquivos, e a opção de formatar o HD em NTFS é dada durante a instalação
62 New Technology File System, conhecido pela sigla NTFS
sistema de arquivos HPFS (High Performance File System)
63 Confiança (fazendo-o ser tolerante a falhas)
Segurança Arrays RAID Rede
64 Sistema de Arquivos HPFS
O HPFS é o sistema de arquivos utilizado pelo OS/2, com recursos que se aproximam muito dos permitidos pelo NTFS como nome de arquivos com até 254 caracteres incluindo espaços, partições de até 512GB unidades de alocação de 512 bytes.
65 O OS/2 foi o sistema operacional concorrente do Windows 95 lançado pela IBM. É pouco conhecido, porém é tecnicamente muito superior ao Windows Embora muito eficiente este sistema de arquivos caiu em desuso juntamente com o OS/2, sendo suportado atualmente somente pelo Linux.
66 Sistemas de Arquivos no Linux
Todo sistema operacional precisa de um sistema de arquivos e o Linux não é exceção à regra, pois afinal de contas um sistema de arquivos serve para fornecer ao sistema operacional toda a uma estrutura para ler, gravar e executar arquivos. Dependendo do tipo de sistema de arquivos pode se ter determinados recursos.
67 Hoje em dia, o Linux tem uma gama muito grande de opções de sistema de arquivos: Desde o velho EXT2 até os atuais com suporte a Journaling, como o EXT3, ReiserFS e XFS.
68 História Os sistemas de arquivos utilizados atualmente no Linux são avançados e tem vários recursos, mas não foi sempre assim. Nas primeiras versões do kernel, o sistema de arquivos utilizado era o EXT. Extremamente frágil e com muitas limitações, como por exemplo, permissão para criação de partições de somente até 2GB e fácil desfragmentação. A partir do EXT2 a limitação de 2GB para partições caiu por terra, já que ele permite criação de partições de até 4Terabytes!
69 Sistema de Arquivos EXT2
Sem dúvida alguma o EXT2 foi uma evolução e tanto em relação ao EXT (suporte a regras de permissões bem definidas) Estrutura do EXT2: Boot Block Inodes Diretórios Links
70 Ao contrário do Windows, que trata dispositivos de hardware como tal, o Linux trata tudo como arquivo. Os dispositivos de hardware ficam todos no diretório /dev Outra característica é o recurso de montagem acessar partições de diversos tipos, como FAT, FAT32, iso9660 e outras
71 Um grande problema do EXT2 é a sua baixa tolerância a falhas em caso de quedas de energia ou desligamento inadequado, sendo talvez até mais frágil do que a FAT32 do Windows FSCK Journaling
72 Journaling limitações do EXT2
capacidade de acompanhar as mudanças que serão feitas nos arquivos antes de serem efetivadas Estes registros são gravados numa área separada do sistema de arquivos, chamada "Journal" ou "registros de LOG" FSCK
73 Nesta categoria de sistemas de arquivos existem algumas opções como EXT3, ReiserFS e JFS, sendo que os mais utilizados são o EXT3 e o ReiserFS
74 Sistemas de Arquivos ReiserFS
ReiserFS > seu desempenho blocos dinâmicos modo como ele armazena os registros metadata (estrutura de controle de um arquivo, ou seja, onde é especificado seu tamanho, permissões, data de criação, modificação, etc..) recuperar o arquivo, mas os dados contidos nele podem ficar truncados ou mesmo perdidos
75 Sistema de Arquivos EXT3
EXT3 é o sucessor natural do EXT2 sistema de arquivos para Linux mais utilizado atualmente suporte para tecnologia Journaling diferencia-se do modo de trabalho em Journaling do ReiserFS uma perda de dados do arquivo é reduzida
76 registro de LOG ser completo >> Journal é acessado com muito mais freqüência
desempenho em relação ao ReiserFS Journal se corromper
77 Sistema de Arquivos EXT4
EXT4 é o sucessor natural do EXT4 Sistema de arquivos lançado em 2006 Suporta sitemas de arquivos de 1 exabyte 1024 giga = 1 tera 1024 tera = 1 peta 1024 peta = 1 exa Começa a ser o sistema de arquivos padrão de muitas distros
78 Sistema de Arquivos EXT4
Checagem no Journaling, garantindo uma restauração mais rápida e a prova de falhas. Desfragmentação On-Line Checagem rápida do file-system Atrasar a Alocação dos Blocos Pré-alocação de Nível de Arquivo
79 Sistema de Arquivos EXT
80 Linux e NTFS sistemas de arquivos para Linux >> versatilidade, segurança e compatibilidade com outros sistemas de arquivos NTFS: Proprietário, fechado distribuições que vem com o kernel 2.6.x e superiores leitura e gravação (com restrições) Existem projetos como o Linux-NTFS / Captive / NTFS-3G
81 / Diretório raiz do sistema de arquivos
/ Diretório raiz do sistema de arquivos. é abaixo dele que se situam todos os outros. /bin Arquivos executáveis de comandos essenciais. /boot Arquivos estáticos necessários a inicialização do sistema. /etc Arquivos de configuração do sistema. /home Lugar onde ficam os diretórios locais dos usuários.
82 /lib Arquivos de bibliotecas essenciais ao sistema, utilizadas pelos programas em /bin.
/mnt Usualmente é o ponto de montagem de dispositivos na máquina. /proc Informações do kernel e dos processos. /root Diretório local do superusuário.
83 /sbin Arquivos essenciais ao sistema
/sbin Arquivos essenciais ao sistema. Normalmente só o superusuário tem acesso a estes arquivos. /tmp Diretório de arquivos temporários. /usr Arquivos pertencentes aos usuários. (é a segunda maior hierarquia de diretórios presente no Linux, só perdendo para o diretório raiz). /var Diretório onde são guardadas informações variáveis sobre o sistema