Sistemas Operacionais Aula 15 Sistema de Arquivos Regiane Kawasaki [email protected] Universidade...
Transcript of Sistemas Operacionais Aula 15 Sistema de Arquivos Regiane Kawasaki [email protected] Universidade...
Sistemas OperacionaisAula 15
Sistema de Arquivos
Regiane [email protected]
Universidade Federal do Pará
Instituto de Ciências Exatas e Naturais
Faculdade de Computação
Introdução O sistema de arquivos é a parte mais visível
do SO. Cria um recurso lógico a partir de recursos
físicos através de uma interface coerente e simples, fácil de usar.
Mecanismos de acesso a dados e a programas.
Duas partes básicas: Arquivos – Armazenamento de dados e programas Diretórios – Organização e informações sobre arquivos
Objetivos do Sistema de Arquivos Fornecer mecanismos para usuários manipular
arquivos e diretórios. Garantir a validade e coerência de dados
Minimizar ou eliminar o risco de perda/alteração de dados
Otimizar o acesso Fornecer suporte a outros sistemas de
arquivos. Suporte a vários usuários
Uso compartilhado (proteção e concorrência)
Requisitos mínimos (Usuário) Cada usuário deve ser capaz de:
Criar, apagar, ler e alterar arquivos.Controlar as permissões de acesso.Nomear arquivos de forma simbólica.Estruturar os arquivos de forma a adequá-los
às suas necessidades específicas Criação de diretórios e subdiretórios
Realizar backups e recuperar arquivos em caso de problemas.
Requisitos mínimos (Sistema)
O SO deve ser capaz de: Descrever a localização de todos os
arquivos e de seus atributos (Via diretório) Gerenciar espaço físico do disco:
Alocar blocos livres a arquivos em criação/expansão.
Liberar blocos de arquivos removidos. Mecanismos para localizar eficientemente
blocos (setores) que compõem arquivos.
Conceitos Básicos
ArquivoUnidade lógica de informação.
DiretórioConjunto de referências a arquivos.
PartiçãoAbstração que permite a partir do disco físico
criar discos lógicos.
Conceito de Arquivo
Informação pode ser armazenada em diferentes tipos de mídia.
Arquivos são mapeados para dispositivos físicos.
Arquivos possuem:Nome, atributos, estrutura interna, tipo,
método de acesso, operações.
Nomes de Arquivos
O Sistema de Arquivos define um espaço de nomes:Conjunto de regras e convenções para
identificar um arquivo
Variam de sistema para sistema:Distinção entre letras maiúsculas e
minúsculas (case sensitive)Obrigatoriedade de extensãoTamanho máximo de nome e da extensão
Atributos de um Arquivo Informações sobre arquivos:
Nome: informação simbólica para referenciar o arquivo. Tipo: binário, texto, executável, caracter, bloco Localização: posição do arquivo em dispositivos de E\S Tamanho: n° de bytes que compõem o arquivo Proteção: controla acesso a leitura, escrita e execução
ao arquivo Hora e data de criação, identificação do usuário:
informações destinadas à proteção, segurança e monitoração.
Varia de SO a SO Atributos são mantidos em uma estrutura à parte!
10
Estrutura de arquivos Arquivos podem ser estruturados de
diferentes maneiras:a) Sequência não estruturada de bytes
Para o SO arquivos são apenas conjuntos de bytes. SO não se importa com o conteúdo do arquivo.
Significado deve ser atribuído pelos programas em nível de usuário (aplicativos).
Vantagem: Flexibilidade: os usuários nomeiam seus arquivos como
quiserem.
Ex.: UNIX, LINUX e Windows.
11
Estrutura de arquivos
b) Sequência de registros de tamanho fixo, cada qual com uma estrutura interna leitura/escrita são realizadas em registros.
SOs mais antigos mainframes e cartões perfurados (80 caracteres).
Nenhum sistema atual utiliza esse esquema.
Estrutura de Arquivos
c) Árvores de registros (tamanho variado), cada qual com um campo chave em uma posição fixa:
SO decide onde colocar os arquivos; Usado em mainframes atuais.
13
Tipos de arquivos
Arquivos regulares são aqueles que contêm informações dos usuários.
Diretórios são arquivos responsáveis por manter a estrutura do Sistema de Arquivos.
Arquivos especiais de caracteres são aqueles relacionados com E/S e utilizados para modelar dispositivos seriais de E/S. Ex.: impressora, interface de rede, terminais.
Arquivos especiais de bloco são aqueles utilizados para modelar discos.
14
Acessos em arquivos SOs mais antigos ofereciam apenas acesso
seqüencial no disco leitura em ordem byte a byte (registro a registro).
SOs mais modernos fazem acesso randômico ou aleatório. Acesso feito por chave;
Ex.: base de dados de uma empresa de aérea. Métodos para especificar onde iniciar leitura:
Operação Read posição do arquivo em que se inicia a leitura.
Operação Seek marca posição corrente permitindo leitura sequencial.
Operações básicas sobre arquivo 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 (file seek) Remoção (delete) Abertura (open) e Encerramento (close) Renomeação (rename), trucagem (truncate) e etc.
Geralmente correspondem a chamadas de sistemas.
Controle de Acesso
Importante controlar o acesso aos arquivos devido questões de segurança.
Objetivo é evitar acessos indevidos. Baseado na identificação de usuários:
Sistema de autenticação padrão.Usuários possuem direitos de acessos.
Solução típicaLista de acesso e grupo.
Implementação de Arquivos
Arquivos são implementados através da criação, para cada arquivo no sistema, de uma estrutura de dados.
Descritor de arquivo é um registro que mantém informações sobre o arquivo.
Informações típicas: Nome do arquivo, tamanho em bytes, data e hora da criação, identificação do usuário que criou, lista de controle de acesso, local físico do disco onde o arquivo foi colocado, etc.
Tabela de Descritores de Arquivos Descritores de Arquivos são armazenados no
próprio disco: Mesma partição
Problema de desempenho: Acesso ao descritor de arquivos é lenta. Solução é manter descritor em memória enquanto o
arquivo estiver em uso. Sistema de Arquivos mantém os descritores de
arquivos em memória em uma estrutura de dados do SO: Tabela de descritores de arquivos abertos (TDAA).
Tabelas de Arquivos Abertos por Processos Informações relacionadas a arquivos são de dois
tipos: Não variáveis enquanto o arquivo estiver em uso.
(Ex.: Nome do arquivo). Dependem do processo que está acessando o
arquivo. (Ex.: posição corrente). Informações dependentes do processo são
armazenados em uma tabela à parte mantida pelo processo (TAAP): Posição corrente no arquivo, tipo de acesso e
apontador para a entrada correspondente na TDAA. Entrada na TAAP serve para referenciar o
arquivo.
Emprego conjunto das tabelas
Gerenciamento do dispositivo de armazenamento
Problema: arquivos devem ser armazenados no disco!
Pontos as serem tratados:Relação n° de setores do disco que
compõem um blocoAlocação de blocos no discoRecuperação de blocos liberadosLocalização de dados no disco
Existe uma relação entre a política de alocação e a política de espaço livre.
Alocação de Espaço em Disco Como colocar em espaço em disco de
forma que os arquivos sejam armazenados de forma eficiente e que permita acesso rápidoAlocar blocos livres suficientes para armazenar
o arquivoBlocos lógicos do disco são enumerados
sequencialmente Duas formas básicas:
ContíguaNão-contígua Encadeada
Indexada
Alocação Contígua
Arquivo é uma sequência de blocos lógicos contíguos alocados no momento da criação
Endereços no disco são lineares Reduz necessidade de seek já que blocos estão na
mesma trilha (no pior caso necessita apenas a troca do cilindro)
Arquivo é descrito através de uma entrada na forma: Bloco físico inicial Tamanho do arquivos em blocos
Esquema Alocação Contígua
Problemas da Alocação Contígua
1° Problema: encontrar espaço para um novo arquivo Técnicas de Gerência de Memória Gera Fragmentação Externa
2° Problema: determinar o espaço necessário para um arquivo Arquivos tendem a crescer, e se não houver espaço
contíguo disponível? Pré-alocar um espaço máximo para o arquivo
Fragmentação Interna
Alocação Encadeada Soluciona os problemas de alocação contígua
Relação e dimensionamento do tamanho e crescimento de arquivos
Alocação é baseada em uma unidade de bloco lógico Análogo à paginação
Arquivo é uma lista encadeada de blocos Cada bloco contém um ponteiro para o próximo bloco
Arquivo é descrito em uma entrada na forma: Bloco inicial do arquivo Bloco final do arquivo ou tamanho do arquivo em blocos
Esquema de Alocação Encadeada
Prós e Contras da Alocação Encadeada Elimina a Fragmentação Externa Arquivos podem crescer “indefinidamente”
Não há necessidade de compactar o disco
O acesso a um bloco qualquer implica em percorrer a lista encadeada Afeta o desempenho
Confiabilidade Erro pode provocar a leitura\escrita em bloco
pertencente a outro arquivo
File Allocation Table - FAT
Variação de alocação encadeada. FAT é uma tabela de encadeamento de
blocos lógicos.Uma entrada na FAT para cada bloco lógico
do disco.Composta por um ponteiro (endereço do
bloco lógico).Arquivo é descrito por uma seqüência de
entradas na FAT, cada entrada apontando para a próxima entrada.
Esquema de Funcionamento da FAT Desvantagem principal é o tempo de seek
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õem.
O índice é mantido em um bloco. Diretório possui um ponteiro para o bloco
onde está o índice associado a um determinado arquivo.
Esquema de Alocação Indexada
Prós e contras da Alocação Indexada Permite o acesso randômico a blocos
independentes de sua posição relativa no arquivo.
Tamanho máximo do arquivo é limitado pela quantidade de entradas suportadas pelo bloco: Muito pequeno (limita o tamanho do arquivo) Muito grande (desperdiça espaço em disco)
Solução é utilizar dois tamanhos de blocos, um para o índice e outro para dados.
Diretório Problema: Quantidade de arquivos implica
necessidade de organizá-los. Sistema de Arquivos oferece duas formas
de organização:PartiçãoDiretório
Partição divide um disco em discos lógicosNo mínimo uma em um sistema;Onde “residem” os arquivos e diretórios.
35
Diretórios
Diretórios são arquivos responsáveis por manter a estrutura do Sistema de Arquivos.
Organização
Operações
36
Diretórios
Organização pode ser feita das seguintes maneiras:Nível único (Single-level);
Dois níveis (Two-level);
Hierárquica.
37
Diretórios – Nível único
Apenas um diretório contém todos os arquivos diretório raiz (root directory).
Computadores antigos utilizavam esse método, pois eram monousuários.
Exceção: CDC 6600 supercomputador que utilizava-se desse método, apesar de ser multiusuário.
Vantagens: Simplicidade Eficiência
38
Diretórios – Nível único 04 arquivos. Três diferentes proprietários. Desvantagens:
Sistemas multiusuários: Diferentes usuários podem criar arquivos como mesmo nome;
Exemplo: Usuários A e B criam, respectivamente,
um arquivo mailbox; Usuário B sobrescreve arquivo do
usuário A.
Diretório raiz
A A B C
39
Diretórios – Dois níveis Cada usuário possui um
diretório privado. Sem conflitos de nomes de
arquivos. Procedimento de login:
identificação. Compartilhamento de arquivos
programas executáveis do sistema.
Desvantagem: Usuário com muitos arquivos.
Diretório raiz
A A B C
A B C
C C
Diretóriodo usuário
Arquivos
40
Diretórios – Hierárquico
Hierarquia de diretórios árvores de diretórios;Usuários podem querer agrupar seus
arquivos de maneira lógica, criando diversos diretórios que agrupam arquivos;
Sistemas operacionais modernos utilizam esse método.
41
Diretórios – Hierárquico
Diretório raiz
A A B
C
A B C
C
C
Diretóriodo usuário
Arquivos
BB
B
C
CC
C C
Sub-diretóriosdo usuário
42
Diretórios – Caminho (path name)
O método hierárquico requer métodos
pelos quais os arquivos são acessados.
Dois métodos diferentes:Caminho absoluto (absolute path name);
Caminho relativo (relative path name);
43
Diretórios – Caminho (path name)
Caminho absoluto: consiste de um caminho a partir do diretório raiz até o arquivo;É ÚNICO; Funciona independentemente de qual seja o
diretório corrente;Ex.:
UNIX: /usr/ast/mailbox; Windows: \usr\ast\mailbox;
44
Diretórios – Caminho (path name)
Diretório de Trabalho (working directory) ou diretório corrente (current directory).
Caminho relativo é utilizado em conjunto com o diretório corrente.
Usuário estabelece um diretório como sendo o diretório corrente; nesse caso caminhos não iniciados no diretório raiz são tido como relativos ao diretório corrente; Exemplo:
cp /usr/ast/mailbox /usr/ast/mailbox.bak Diretório corrente: /usr/ast cp mailbox mailbox.bak
45
Diretórios – Caminho (path name)
“.” diretório corrente; “..” diretório pai (anterior ao corrente); Ex.: diretório corrente /usr/ast:
cp ../lib/dictionary .
cp /usr/lib/dictionary .
cp /usr/lib/dictionary dictionary
cp /usr/lib/dictionary /usr/ast/dictionary
46
Diretórios – Operações
Create; DeleteOpendir; ClosedirReaddirRenameLink (um arquivo pode aparecer em mais de
um diretório)Unlink
47
Implementação do Sistema de arquivos - Layout Arquivos são armazenados em discos. Discos podem ser divididos em uma ou mais
partições, com sistemas de arquivos independentes.
Setor 0 do disco é destinado ao MBR – Master Boot Record; que é responsável pela a tarefa de boot do computador. MBR possui a tabela de partição, com o endereço inicial e
final de cada partição. BIOS lê e executa o MBR.
48
Implementação do Sistema de arquivos - Layout Tarefas básicas do MBR (pode variar
dependendo do SO):1ª localizar a partição ativa;2ª ler o primeiro bloco dessa partição,
chamado bloco de boot (boot block);3ª executar o bloco de boot ;
Layout de um Sistema de Arquivos pode variar; mas a idéia geral é a seguinte:
49
Implementação do Sistema de arquivos - Layout
Disco
MBR
Tabela de partição Partições
Boot RaizGerenc. de Espaço livre
Super blocoArquivosDiretóriosI-nodes
Contém parâmetros (tipo do SA, número de blocos) sobre o sistema
de arquivos e é carregado na memória
50
Implementação do Sistema de arquivos - Layout
MBR
Tabela de partição Partições
Boot RaizGerenc. de Espaço livre
Super blocoArquivosDiretóriosI-nodes
Contém informações sobre os blocos livres do disco (mapa de bits ou lista
encadeada)
Disco
51
Implementação do Sistema de arquivos - Layout
Estruturas de dados (vetor) contendo informações sobre os arquivos
MBR
Tabela de partição Partições
Boot RaizGerenc. de Espaço livre
Super blocoArquivosDiretóriosI-nodes
Disco
52
Implementação do Sistema de arquivos - Layout
Diretório raiz – árvore de diretórios
MBR
Tabela de partição Partições
Boot RaizGerenc. de Espaço livre
Super blocoArquivosDiretóriosI-nodes
Disco
53
Implementação do Sistema de arquivos - Layout
Demais arquivos e diretórios
MBR
Tabela de partição Partições
Boot RaizGerenc. de Espaço livre
Super blocoArquivosDiretóriosI-nodes
Disco
54
Implementação do Sistema de arquivos - Arquivos Armazenamento de arquivos como os
arquivos são alocados no disco; Diferentes técnicas são implementas por
diferentes Sistemas Operacionais;Alocação contínua;Alocação com lista encadeada;Alocação com lista encadeada utilizando uma
tabela na memória (FAT); I-Nodes;
55
Implementação do Sistema de arquivos - Arquivos Alocação contínua:
Técnica mais simples;Armazena arquivos de forma contínua no
disco; Ex.: em um disco com blocos de 1kb um arquivo
com 50kb será alocado em 50 blocos consecutivos;
56
Implementação do Sistema de arquivos - Arquivos
A B C D E F
4 3 6 5 12 637 Blocos
Removendo os arquivos D e F...
A B C E Livre
4 3 6 5 12 7
Livre
Alocação contínua:
57
Implementação do Sistema de arquivos - Arquivos
Alocação contínua: Vantagens:
Simplicidade: somente o endereço do primeiro bloco e número de blocos no arquivo são necessários.
Desempenho para o acesso ao arquivo: acesso seqüencial. Desvantagens (discos rígidos):
Fragmentação externa: Compactação alto custo. Reuso de espaço atualização da lista de espaços livres.
Conhecimento prévio do tamanho do arquivo para alocar o espaço necessário.
CD-ROM e DVD-ROM (quando somente escrita).
58
Implementação do Sistema de arquivos - Arquivos Alocação com lista encadeada:
A primeira palavra de cada bloco é um ponteiro para o bloco seguinte.
O restante do bloco é destinado aos dados.Apenas o endereço em disco do primeiro
bloco do arquivo é armazenado. Serviço de diretório é responsável por manter esse
endereço.
59
Implementação do Sistema de arquivos - Arquivos Alocação com lista encadeada:
Desvantagens: Acesso aos arquivos é feito aleatoriamente
processo mais lento; A informação armazenada em um bloco não é
mais uma potência de dois, pois existe a necessidade de se armazenar o ponteiro para o próximo bloco;
Vantagem: Não se perde espaço com a fragmentação
externa;
60
Implementação do Sistema de arquivos - Arquivos Alocação com lista encadeada:
0
Arquivo ABlocos do arquivo
1 2 3 4
Blocos físicos
4 7 2 10 12
0
Arquivo BBlocos do arquivo
1 2 3
Blocos físicos
6 3 11 14
61
Implementação do Sistema de arquivos - Arquivos
Alocação com lista encadeada utilizando uma tabela na memória: O ponteiro é colocado em uma tabela na memória ao invés de
ser colocado no bloco. FAT Tabela de alocação de arquivos (File Allocation Table). Assim, todo o bloco está disponível para alocação de dados;
Serviço de diretório é responsável por manter o início do arquivo (bloco inicial).
MS-DOS e família Windows 9x (exceto WinNT, Win2000 e WinXP - NTFS).
62
Implementação do Sistema de arquivos - Arquivos
Acesso aleatório se torna mais fácil devido ao uso da memória.
Desvantagem: Toda a tabela deve estar na memória.
Exemplo: Com um disco de 20Gb com blocos de 1kb, a tabela
precisa de 20 milhões de entradas.
63
Implementação do Sistema de arquivos - ArquivosAlocação com lista encadeada utilizando FAT
0123456789101112131415
10117
32
1214-1
-1Bloco livre
Início arquivo A
Início arquivo B
Arquivo A 4 7 2 10 12
Arquivo B6 3 11 14
Marca de término
64
Implementação do Sistema de arquivos - Arquivos I-nodes:
Cada arquivo possui uma estrutura de dados chamada i-node (index-node) que lista os atributos e endereços em disco dos blocos do arquivo.
Assim, dado o i-node de um arquivo é possível encontrar todos os blocos desse arquivo.
Se cada i-node ocupa n bytes e k arquivos estão abertos ao mesmo tempo o total de memória ocupada é kn bytes.
UNIX e Linux.
65
Implementação do Sistema de arquivos - Arquivos
Espaço de memória ocupado pelos i-nodes é proporcional ao número de arquivos abertos.
Vantagem: O i-node somente é carregado na memória quando o seu
respectivo arquivo está aberto (em uso); Desvantagem:
O tamanho do arquivo pode aumentar muito Solução: reservar o último endereço para outros endereços
de blocos.
66
Implementação do Sistema de arquivos - Arquivos
I-nodes:Atributos do arquivo
Endereço do bloco 0
Endereço do bloco 1
Endereço do bloco 2
Endereço do bloco 3
Endereço do bloco 4
Endereço do bloco 5
Endereço do bloco 6
Endereço do bloco 7
Endereço do bloco de ponteiros
En
der
eços
do
dis
co
Bloco com endereçosadicionais
67
Implementação do Sistema de arquivos - Arquivos
I-nodes:
68
Implementação do Sistema de arquivos - Arquivos I-nodes
O arquivo texto.txtestá no bloco 503
1 .
7 tmp6 usr4 bin1 ..
Diretório Raiz *
Encontra /usrcom i-node 6
modo
132hora
tamanho
I-node 66 .
26 andy23 ana19 dick
1 ..
Bloco 132 tem o sub-diretório/usr
Bloco 132
/usr/andy está no i-node 26
modo
406hora
tamanho
I-node 26
Bloco 406 tem o sub-diretório/usr/andy
26 .
72 texto.txt66 teste.c64 notas
6 ..
Bloco 406
O arquivo texto.txtestá no i-node 72
modo
503hora
tamanho
I-node 72
Texto.txt
Bloco 503