Post on 09-Nov-2018
Sistemas Operacionais
BC 1518 - Sistemas Operacionais
Sistema de ArquivosSistema de Arquivos
1
Sistema de ArquivosSistema de Arquivos(aula 10 - Parte1)
Prof. Marcelo Z. do NascimentoProf. Marcelo Z. do Nascimentomarcelo.nascimento@ufabc.edu.br
Sistemas Operacionais Roteiro
• Introdução
• Arquivos
• Atributos de Arquivos
• Extensão de Arquivos
2
• Operações de Arquivos
• Diretórios
• Gerência de Alocação de Espaço em Disco
• Leituras Sugeridas
• Exercícios
Sistemas Operacionais Introdução
• Um processo pode armazenar uma quantidade limitada de informações dentro de seu próprio espaço de endereçamento;
• Tem capacidade restrita ao tamanho do espaço de endereçamento virtual;
• Quando o processo termina, a informação é
3
• Quando o processo termina, a informação é perdida?
• Quando múltiplos processos precisam acessar à informação?
• O SO abstrai do conceito de processador para criar a abstração de um processo e abstrai o conceito de memória física para oferecer ao processo o espaço de endereçamento (virtual).
Sistemas Operacionais Introdução
• Um processo deve ser capaz de ler e gravar grandevolume de dados em dispositivos como fitas ediscos de forma permanente;
• A maneira pela qual o sistema operacionalestrutura e organiza estas informações é através
4
estrutura e organiza estas informações é atravésda implementação de arquivos;
• Arquivo é uma coleção de informaçõescorrelatas (registros) que recebe um nome e égravado no armazenamento secundário:
– Criada pelo processo;
– Espaço de endereçamento =>usado para modelar o disco.
Sistemas Operacionais Introdução
• Os processos podem ler arquivos existentes ecriar novos;
• A informação contida no arquivo deve serpersistente, ou seja, não pode ser afetada pelacriação e pelo termino de um processo;
5
criação e pelo termino de um processo;
• Poderá desaparecer se o proprietário removê-lo.
• De modo geral, a parte do SO que trata dosarquivos é conhecida como sistema de
arquivos.
Sistemas Operacionais Arquivos
• Quando um processo cria um arquivo => recebe um nome, quando termina, o arquivo continua existindo e outros processos podem ter acesso a ele simplesmente pelo nome;
• As informações contidas em um arquivo são definidas pelo seu criador;
6
definidas pelo seu criador;• Exemplo: arquivo de texto é uma seqüência de caracteres
ASCII organizados em linhas.
• O SO administra de maneira a facilitar ao acesso ao seu conteúdo;
• Informações sobre arquivos são guardadas em uma estrutura de diretório, a qual é mantida em disco rígido.
Sistemas Operacionais Arquivos
Nomeação de arquivos
• Arquivos é um mecanismo de abstração:– Isola o usuário dos detalhes sobre como e onde a informação está armazenada e como os discos funcionam.
• Quando arquivos são criados, nomes são
7
• Quando arquivos são criados, nomes são atribuídos a eles e são referenciados por meio de seus nomes;
• Muitos sistemas de arquivos permitem nomes com tamanhos de até 255 caracteres.
• Letras, números e alguns caracteres especiais podem compor nomes dos arquivos:• Exemplo: A-Z, a-z, 0-9, %, !, ) e &.
Sistemas Operacionais Atributos de Arquivo
• Nome – única informação armazenada no formatolegível para o ser humano
• Identificador – um número identifica o arquivodentro do sistema de arquivos
• Tipo – necessário para sistemas que admitemdiferentes tipos de arquivos
9
diferentes tipos de arquivos
• Localização – ponteiro para localização do arquivodentro do dispositivo
• Tamanho – tamanho do arquivo
• Proteção – controla quem pode ler, escrever eexecutar
• Data, hora, e identificação do usuário – dadosúteis para proteção, segurança e último acesso
Sistemas Operacionais Arquivo - Extensão
• Alguns sistemas, as extensões de arquivos constituem apenas convenções e não são impostas pelo SO;
• Sistemas Unix:– Exemplo: aula1.txt pode ser algum tipo de arquivo texto, mas o nome serve mais para lembrar o
10
texto, mas o nome serve mais para lembrar o proprietário, não oferece qualquer informação real para proprietário;
• Mas os compiladores podem exigir que arquivos tenha uma extensão;– Exemplo: aula1.c
• O Windows atribui significados a cada extensão:– Exemplo: aula1.doc irá inicializar o Microsoft Word.
Sistemas Operacionais Arquivo - Extensão
• Alguns sistemas suportam uma extensão relacionada ao arquivo:
• MS-DOS:– 1-3 caracteres (Ex.: exemplo.txt);
– suporta apenas uma extensão;
• UNIX: extensão pode conter mais de 3
11
• UNIX: extensão pode conter mais de 3 caracteres;– UNIX suporta mais de uma extensão:
– Ex.: exemplo.c.Z (arquivo com compressão);
– UNIX também permite que arquivos sejam criados sem extensão.
Sistemas Operacionais Arquivos
Extensão de arquivos - Exemplos
Formato de imagens gráficas (Graphical File.gif
Arquivo de backupFile.bak
SignificadoExtensão
12
Arquivo Portable Document FormatFile.pdf
Arquivo textoFile.txt
Arquivo de áudio padrão MPEG (Moving Picture Expert Group – padrão de compressão de vídeo digital e áudio)
File.mp3
Arquivo de “ajuda”File.hlp
Formato de imagens gráficas (Graphical Interchange Format)
File.gif
Sistemas Operacionais
• Usuário: Alto nível
– Interface � como os arquivos aparecem?– Como arquivos são nomeados e protegidos?– Quais operações podem ser realizadas?
Arquivos - Classificação
13
• S.O.: Baixo nível
– Como arquivos são armazenados fisicamente?– Como arquivos são referenciados (links)?
Sistemas Operacionais Operações de Arquivos
Aplicação• O sistema de arquivodisponibiliza um conjunto de rotinas que permite às aplicações realizarem operações de E/S;
• O SO pode fornecer chamadas ao
14
Dispositivos
Rotinas de E/ S
Fonte: Machado, F. B; Maia, L. P. Arquitetura de Sistema Operacionais, 3º ed., LTC, 2003
• O SO pode fornecer chamadas ao sistema para criar, ler, excluir, etc.
Sistemas Operacionais Operações sobre Arquivos
• Criar:
– Duas etapas são necessárias: espaço no sistema de arquivo e uma entrada para o novo arquivo precisa ser feita no diretório;
• Escrever:
• Fazer um system Call com o nome do arquivo e as informações a serem escritas;
15
informações a serem escritas;
• Ler:
• Um system call que especifica o nome do arquivo e onde na memória o próximo bloco do arquivo deve ser colocado.
• Reposicionar dentro de um arquivo:
– O diretório é pesquisado em busca de entrada correta, e o ponteiro da posição atual do arquivo é reposicionado para determinado valor
Sistemas Operacionais Operações sobre Arquivos
• Apagar:
– Procura-se o arquivo nomeado no diretório e libera o
espaço do arquivo e apaga-se a entrada no diretório.
• Truncar:
– Se quiser apagar o conteúdo de um arquivo, mas manter
16
– Se quiser apagar o conteúdo de um arquivo, mas manter
seus atributos de forma que seu tamanho seja igual a
zero e seu espaço seja liberado.
Sistemas Operacionais Abertura de Arquivos
• Um conjunto de informações (dados) sãonecessário para gerenciar um arquivo aberto;
• O SO mantém uma tabela de arquivos aberto;• Várias informações estão associadas ao arquivoaberto:– Ponteiro de Arquivo: ponteiro para localização da
17
– Ponteiro de Arquivo: ponteiro para localização da ultima leitura/escrita pelo processo que abriu o arquivo
– Contador de arquivo aberto: contador do número de vez que o arquivo foi aberto – permite remover dados da tabela de arquivo aberto quando o último processo é fechado
– Localização em disco do arquivo: as informações para localizar o arquivo no disco são mantidas na memória
– Direito de acesso: permitir ou negar requisições de E/S subsequentes
Sistemas Operacionais Lock de arquivo
• Fornece funcionalidade semelhante aos locks de leitor/escritor de sincronização de processos;• Lock compartilhado: semelhante a um lock de leitor, em que vários processos podem obter o lock ao mesmo tempo;
• Lock exclusivo: comporta-se semelhante como um lock de escritor, apenas um processo por vez.
18
escritor, apenas um processo por vez.
• Também pode oferecer o mecanismo:– obrigatória: quando um processo obtiver o arquivo impede que qualquer outro processo tenha acesso ao arquivo
• Ex. Windows
– consultivo:obtém o lock manualmente no momento em que for acessar o arquivo
• Ex. Unix
Sistemas Operacionais Organização de Arquivos
• Consiste em como os seus dados estãointernamente armazenados;
• Arquivos podem ser estruturados de diferentesmaneiras:
– a) Seqüência não estruturada de bytes
19
– a) Seqüência não estruturada de bytes• Para o SO, os arquivos são apenas conjuntos debytes;
• SO não se importa com o conteúdo do arquivo;– Significado deve ser atribuído pelos programasem nível de usuário (aplicativos);
• Exemplo: UNIX e Windows;
Sistemas Operacionais Organização de Arquivos
• b) Árvores de registros (tamanho variado), cada qual com um campo chave em uma posição fixa:
• Visualizar um arquivo como um conjunto de registros;
• Exemplo: Banco de Dados
Ana Cláudia Teresa
20
Byte
(a) Organização não-estruturada
Ana Cláudia Teresa
Beatriz Camila Daniele Patrícia Tina Vanessa
Isabela Maria
Registro
(b) Organização Indexada
Fonte: Machado, F. B; Maia, L. P. Arquitetura de Sistema Operacionais, 3º ed., LTC, 2003
Sistemas Operacionais
• Arquivos regulares � são aqueles que contêminformações dos usuários;
• Exemplo: UNIX e Windows;
• Diretórios � são arquivos responsáveis pormanter a estrutura do Sistema de Arquivos;
• Arquivos especiais de caractere � são aqueles
Tipos de arquivos
21
• Arquivos especiais de caractere � são aquelesrelacionados com E/S e utilizados para modelardispositivos seriais de E/S;– Ex.: impressora, interface de rede, terminais;
• Diretório: /dev/lp;
• Arquivos especiais de bloco � são aquelesutilizados para modelar discos;
• Diretório: /dev/hda1;
Sistemas Operacionais Exemplo: Linux
$$ lsls --ll /home/davidson/home/davidson
$ $ --rwxrrwxr----rr---- 1 davidson davidson 6654 20051 davidson davidson 6654 2005--0303--07 05:27 apt07 05:27 apt--listlist
• Dono: Definido como pelo usuário que criou o arquivo,
• Grupo: As permissões em nível de grupo,
22
• Outros: Simplesmente, todos os usuários que não são vocêmesmo nem pertencem ao seu grupo primário.
• Leitura (r),
• Escrita (w),
• Execução (x).
Sistemas Operacionais Estrutura de Diretório:
Partições
• Deseja-se ter vários sistemas de arquivos em um disco, com um espaço de swap ou disco não formatado;
• O sistema de arquivos pode ser dividido em partições.
• Cada disco possui no mínimo uma partição, que é
23
• Cada disco possui no mínimo uma partição, que é uma estrutura de baixo nível, em que arquivos e diretórios residem.
• Cada partição é tratada como um disco separado;
• As partes podem ser combinadas para formar estruturas maiores, conhecidas como volume ou disco virtual.
Sistemas Operacionais
Tabela de conteúdo do volume:
• Cada partição possui informações sobre os
arquivos armazenados nela.
• O diretório mantém informações sobre os arquivos
da partição específica - como o nome, localização,
Estrutura de Diretório: Partições
24
da partição específica - como o nome, localização,
tamanho e tipo.
• O diretório pode ser visto como uma tabela de
símbolos que traduz o nome do arquivo em
posição para o mesmo ser manipulado.
Sistemas Operacionais
Disco
MBR
Tabela de partição Partições
Estrutura de Diretório: Partições
26
BootDiretório
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
Sistemas Operacionais
• O diretório pode ser visto como uma tabela de símbolos, que traduz nomes de arquivo nas entradas de diretório;
• As operações em um diretório:– Procurar por um arquivo:procurar a entrada para um
Estrutura de Diretório: Conceitos
27
determinado arquivo
– Criar um arquivo:
– Excluir um arquivo:
– Listar um diretório: listar os arquivos
– Renomear um arquivo:
– Atravessar o sistema de arquivo: acessar cada diretório e cada arquivo dentro de uma estrutura de diretório.
Sistemas Operacionais Estrutura do Diretório
Uma coleção de nodes contendo informações sobre
todos os arquivos
Directory
28
F 1 F 2 F 3F 4
F n
Arquivos
Ambos as estruturas de arquivos e diretórios resiem no disco
Sistemas Operacionais
– Create;
– Delete;
Exemplos de operações com diretório (UNIX):
Estrutura de Diretório: Conceitos
29
– Opendir;
– Closedir;
– Readdir;
– Rename;
Sistemas Operacionais
• Estrutura de diretórios de nível único
IdentificaçãoProteção
OrganizaçãoLocalizaçãoAtributos
• Apenas um diretório contém todos os arquivos � diretório raiz (root directory);
• Desvantagem:
• Sistemas com vários usuários
Estrutura de Diretório: Conceitos
30
Diretórios Arquivos
• Sistemas com vários usuários podem criar arquivos como mesmo nome;
Fonte: Machado, F. B; Maia, L. P. Arquitetura de Sistema Operacionais, 3º ed., LTC, 2003
Sistemas Operacionais
• Estrutura de diretórios com dois níveis
Usuário1
Usuário2
Arquivo1
Arquivo2
Arquivo3
•Cada usuário possui um diretório privado;
•Sem conflitos de nomes de arquivos;
Estrutura de Diretório: Conceitos
31
Usuário3
Usuárion
Arquivo1
Arquivo1
Arquivo2
Arquivo3
User File Directory(UFD)
Arquivos
Fonte: Machado, F. B; Maia, L. P. Arquitetura de Sistema Operacionais, 3º ed., LTC, 2003
Sistemas Operacionais
• Estrutura de diretórios hierárquicos:
Usuário1
Diretório1
Diretório2
Arquivo1
Arquivo2
Arquivo1
• Usuários podem criar diversos diretórios que agrupam arquivos;
• Busca eficiente;
Estrutura de Diretório: Conceitos
32
Usuário2
Usuário3
Usuárion
Diretório Raiz
Arquivo1
Arquivo1
Diretório1
Arquivo1
Arquivo2
Arquivo1
Arquivo2
• Busca eficiente;
• Capacidade de agrupamento
• Diretório corrente(diretório de trabalho)
• cd /spell/mail/prog
Fonte: Machado, F. B; Maia, L. P. Arquitetura de Sistema Operacionais, 3º ed., LTC, 2003
Sistemas Operacionais
• Caminho de um arquivo
Disco C:/
O método requer técnicas pelas quais os arquivos são acessados;
Estrutura de Diretório: Conceitos
33
IvanIvanCarlos Paulo
Teste Pessoal
Soma.exe
Fonte: Machado, F. B; Maia, L. P. Arquitetura de Sistema Operacionais, 3º ed., LTC, 2003
Sistemas Operacionais
• Dois diferentes maneiras:– Caminho absoluto (absolute path name);
– Caminho relativo (relative path name);
• Caminho absoluto: consiste de um caminho a partir do diretório raiz até o arquivo;
Diretórios
34
partir do diretório raiz até o arquivo;– É único;
– Exemplo:
• UNIX: /usr/ast/mailbox;
• Windows: \usr\ast\mailbox.
Sistemas Operacionais
• 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
Diretórios
35
ao diretório corrente;
– Exemplo:
– Absoluto: cp /usr/ast/mailbox /usr/ast/mailbox.bak
– Relativo: /usr/ast: cp mailbox mailbox.bak
Sistemas Operacionais Diretório em Grafo
Acíclico� Uma estrutura de árvore proíbe o compartilhamento de arquivos ou diretório;� Com grafo acíclico é possível o compartilhamento de arquivos e subdiretórios, ou seja, o mesmo arquivo ou subdiretório pode estar em dois diretórios diferentes.
36
Sistemas Operacionais
� Compartilhamento pode ser implementado por:� link: é criado um ponteiro, para outro arquivo ou subdiretório;� duplicar informações: pode gerar inconsistências de informação;� lista de referências ao arquivo: entradas no diretório
Diretório em Grafo Acíclico
37
ou links simbólicos
• Eliminação de um arquivo ou diretório:•retirada do link: não afeta o arquivo, arquivo ou diretório é eliminado se todos os links forem removidos;• retirada da referência da lista de referências: arquivo só é eliminado quando a lista estiver vazia ->é preciso somente de um contador de referências, se contador = 0, arquivo pode ser eliminado.
Sistemas Operacionais Montagem
• SO => capacidade de montar vários sistemas de arquivos.� Constrói tabelas de montagem que contêm informaçõessobre os nomes de caminhos do ponto de montagem esobre os dispositivos que armazena cada sistema dearquivo.
•Montagem => combina vários sistemas de arquivo
38
•Montagem => combina vários sistemas de arquivo em um único espaço de nomes (conjunto de arquivos que pode ser identificado por um único sistema de arquivo).� Exemplo:
� Windows – montado em C: sistema arquivo seguinte D;
• Unix – alguns sistemas de arquivos são montados em um dos diretórios localizados em /mnt/.
Sistemas Operacionais Montagem
• SO => verifica se o dispositivo contém um sistema de arquivo válido.
• O sistema de arquivo é montado no ponto de montagem especificado.
• SO pode proibir a montagem sobre diretórios que contém arquivos
39
(a) Sistema Existente. (b) Partição não montada
Sistemas Operacionais
� Contra � danos físicos (confiabilidade)
� acessos impróprios (proteção)
� Confiabilidade: cópia de arquivos com intervalos regulares
Proteção
40
� Proteção resultado direto da habilidade de acessar arquivos
� Níveis de Proteção de Sistemas� não permitem o acesso a outros usuários, não precisam de proteção (default)
� têm proteção completa, proibindo o acesso
� têm livre acesso sem nenhuma proteção
Sistemas Operacionais
� Lista de acesso pode ser muito grande
dependendo da forma de implementação;
� Redução do tamanho da lista: � operações de leitura, escrita e execução
� classificação dos usuários em grupos
Proteção
41
� classificação dos usuários em grupos
� proprietário: usuário que criou o arquivo
� grupo: vários usuários que compartilham e necessitam
de acesso similar ao arquivo
� universo: todos os outros usuários
Sistemas Operacionais
� Classificação: três campos para definir a proteção;
� Cada campo = coleção de bits que controlam o acesso, a cada bit está associado uma permissão;
� Exemplo: Unix • três campos com três bits ( 0 = negado, 1 =
Proteção
42
• três campos com três bits ( 0 = negado, 1 = permitido)
•r = acesso de leitura•w = acesso de escrita•x = acesso de execução
Sistemas Operacionais Gerência de Alocação de
Espaço em Disco
• Alocação Contígua
É armazenado cada arquivo como um bloco contíguo É armazenado cada arquivo como um bloco contíguo de dados no disco;de dados no disco;
45
0 1 2
3 4 5
6 7 8
9 10 11
12 13 14
Arquivo Bloco
A. TXT 4
B. TXT 10
C. TXT 13
3
1
2
Extensão
Fonte: Machado, F. B; Maia, L. P. Arquitetura de Sistema Operacionais, 3º ed., LTC, 2003
Ex. Escrita em CD e DVD
Sistemas Operacionais Gerência de Alocação de
Espaço em Disco
• Alocação Contígua
Vantagem:•desempenho é excelente porque o arquivo todo pode ser lido do disco numa única operação;
46
Desvantagens:
•Não é viável a menos que o tamanho máximo do arquivo seja conhecido no momento que o arquivo é criado.• Fragmentação externa.
Sistemas Operacionais Gerência de Alocação de
Espaço em Disco
• Alocação Encadeada
Organizado como um conjunto de blocos ligados Organizado como um conjunto de blocos ligados logicamente no disco, independente de sua posição logicamente no disco, independente de sua posição física. física. Usa um ponteiro no início do arquivoUsa um ponteiro no início do arquivo
47Fonte: TANENBAUM, A. Sistemas Operacionais Modernos. Rio de Janeiro: PHB, 2ª ed., 2003.
Sistemas Operacionais Gerência de Alocação de
Espaço em Disco
• Alocação Encadeada
Vantagem: não há fragmentação externa já que todo bloco do disco pode ser usado;
48
Desvantagem: •Acesso aos arquivos é realizado seqüencialmente aos blocos dos arquivos. Isso exige muitas buscas e o acesso a disco deve acessar seqüencialmente cada setor do arquivo
Fonte: TANENBAUM, A. Sistemas Operacionais Modernos. Rio de Janeiro: PHB, 2ª ed., 2003.
Sistemas Operacionais Gerência de Alocação de
Espaço em Disco
• Alocação Encadeada usando uma tabela na memória
O ponteiro é colocado em uma tabela na memória O ponteiro é colocado em uma tabela na memória ao invés de ser colocado no bloco (ao invés de ser colocado no bloco (File Allocation File Allocation TableTable););
49Fonte: TANENBAUM, A. Sistemas Operacionais Modernos. Rio de Janeiro: PHB, 2ª ed., 2003.
Ex. MS-DOS
Sistemas Operacionais Gerência de Alocação de
Espaço em Disco
• Alocação Encadeada usando uma tabela na memória
Vantagem: •O encadeamento permanece na memória, assim pode ser seguido sem fazer qualquer referência ao disco;
50
disco;
Desvantagem: •Toda a tabela deve estar na memória
Fonte: TANENBAUM, A. Sistemas Operacionais Modernos. Rio de Janeiro: PHB, 2ª ed., 2003.
Sistemas Operacionais Gerência de Alocação de
Espaço em Disco
• Alocação Indexada
Bloco deíndice
310117
Cada arquivo tem seu próprio bloco de índiceCada arquivo tem seu próprio bloco de índice
Ex. Ext2fs e NTFS
51
0 1 2
3 4 5
6 7 8
9 10 11
12 13 14
7
Fonte: Machado, F. B; Maia, L. P. Arquitetura de Sistema Operacionais, 3º ed., LTC, 2003
Sistemas Operacionais Gerência de Alocação de
Espaço em Disco
• Alocação Indexada
Vantagem: •O bloco de índice somente é carregado na memória quando o seu respectivo arquivo está aberto (em uso);
52
aberto (em uso);
Desvantagem:•sofre desperdício de espaço, pois o ponteiro do bloco de índice é em geral maior do que o de alocação encadeada (parte do bloco).
Sistemas Operacionais Sumário
• Sistema de Arquivos
• Atributos de Arquivos
• Extensão de Arquivos
• Diretórios:• Partições
53
• Partições
• Estrutura: Níveis
• Gerência de Alocação de Espaço em Disco:• Alocação contígua
• Alocação encadeada
• Alocação indexada
Sistemas Operacionais
• Silberschatz, A., Galvin, P. B. Gagne, G. Sistemas Operacionais com Java. 7º edição. Editora Campus, 2008 .
Leituras Sugeridas
54
• TANENBAUM, A. Sistemas Operacionais Modernos. Rio de Janeiro: Pearson, 3 ed. 2010
Sistemas Operacionais
Acesse o link abaixo:
http://hostel.ufabc.edu.br/~marcelo.nascimento/
Notas de Aula
55
Obrigado!!!
Sistemas Operacionais Exercícios
1.Quais as formas de alocação de espaços em discos? Liste eexplique as características (vantagens e problemas) decada técnica.
2.Explique o objetivo das operações open e close aplicadasem arquivos.
56
3.Quais as vantagens e desvantagens de usar locksobrigatório em vez de locks de consulta, cujo uso dita a
critério do usuário?