Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
Sistemas Operacionais
1
BC 1518 - Sistemas Operacionais
Sistema de ArquivosSistema de Arquivos(aula 10 - Parte1)
Prof. Marcelo Z. do NascimentoProf. Marcelo Z. do [email protected]
Sistemas Operacionais
2
Roteiro
• Introdução
• Arquivos
• Atributos de Arquivos
• Extensão de Arquivos
• Operações de Arquivos
• Diretórios
• Gerência de Alocação de Espaço em Disco
• Leituras Sugeridas
• Exercícios
Sistemas Operacionais
3
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 é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
4
Introdução
• Um processo deve ser capaz de ler e gravar grande volume de dados em dispositivos como fitas e discos de forma permanente;
• A maneira pela qual o sistema operacional estrutura e organiza estas informações é através da implementação de arquivos;
• Arquivo é uma coleção de informações correlatas (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
5
Introdução
• Os processos podem ler arquivos existentes e criar novos;
• A informação contida no arquivo deve ser persistente, ou seja, não pode ser afetada pela 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 dos arquivos é conhecida como sistema de
arquivos.
Sistemas Operacionais
6
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;• 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
7
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 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
8
Tipos de Arquivos
Exemplos
Sistemas Operacionais
9
Atributos de Arquivo
• Nome – única informação armazenada no formato legível para o ser humano
• Identificador – um número identifica o arquivo dentro do sistema de arquivos
• Tipo – necessário para sistemas que admitem diferentes tipos de arquivos
• Localização – ponteiro para localização do arquivo dentro do dispositivo
• Tamanho – tamanho do arquivo
• Proteção – controla quem pode ler, escrever e executar
• Data, hora, e identificação do usuário – dados úteis para proteção, segurança e último acesso
Sistemas Operacionais
10
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 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
11
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 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
12
Arquivos
Extensão de arquivos - Exemplos
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
Arquivo de backupFile.bak
SignificadoExtensão
Sistemas Operacionais
13
• Usuário: Alto nível
– Interface � como os arquivos aparecem?– Como arquivos são nomeados e protegidos?– Quais operações podem ser realizadas?
• S.O.: Baixo nível
– Como arquivos são armazenados fisicamente?– Como arquivos são referenciados (links)?
Arquivos - Classificação
Sistemas Operacionais
14
Operações de Arquivos
Dispositivos
Rotinas de E/ S
Aplicação
Fonte: Machado, F. B; Maia, L. P. Arquitetura de Sistema Operacionais, 3º ed., LTC, 2003
• 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 sistema para criar, ler, excluir, etc.
Sistemas Operacionais
15
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;
• 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
16
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
seus atributos de forma que seu tamanho seja igual a
zero e seu espaço seja liberado.
Sistemas Operacionais
17
Abertura de Arquivos
• Um conjunto de informações (dados) são necessário para gerenciar um arquivo aberto;
• O SO mantém uma tabela de arquivos aberto;• Várias informações estão associadas ao arquivo aberto:– 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
18
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.
• 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
19
Organização de Arquivos
• Consiste em como os seus dados estão internamente armazenados;
• Arquivos podem ser estruturados de diferentes maneiras:
– a) Seqüência não estruturada de bytes• Para o SO, os 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);
• Exemplo: UNIX e Windows;
Sistemas Operacionais
20
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
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
21
• Arquivos regulares � são aqueles que contêm informações dos usuários;
• Exemplo: UNIX e Windows;
• Diretórios � são arquivos responsáveis por manter a estrutura do Sistema de Arquivos;
• Arquivos especiais de caractere � são aqueles relacionados com E/S e utilizados para modelar dispositivos seriais de E/S; – Ex.: impressora, interface de rede, terminais;
• Diretório: /dev/lp;
• Arquivos especiais de bloco � são aqueles utilizados para modelar discos;
• Diretório: /dev/hda1;
Tipos de arquivos
Sistemas Operacionais
22
Exemplo: Linux
$ ls $ ls --l /home/davidsonl /home/davidson
$ $ --rwxrrwxr----rr---- 1 davidson davidson 1 davidson davidson 66546654 20052005--0303--07 05:27 07 05:27 aptapt--listlist
• Dono: Definido como pelo usuário que criou o arquivo,
• Grupo: As permissões em nível de grupo,
• 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
23
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 é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
24
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,
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.
Estrutura de Diretório: Partições
Sistemas Operacionais
25
Estrutura de Diretório: Partições
Sistemas Operacionais
26
Disco
MBR
Tabela de partição Partições
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
Estrutura de Diretório: Partições
Sistemas Operacionais
27
• 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 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.
Estrutura de Diretório: Conceitos
Sistemas Operacionais
28
– Create;
– Delete;
– Opendir;
– Closedir;
– Readdir;
– Rename;
Exemplos de operações com diretório (UNIX):
Estrutura de Diretório: Conceitos
Sistemas Operacionais
29
• Estrutura de diretórios de nível único
IdentificaçãoProteção
OrganizaçãoLocalizaçãoAtributos
Diretórios Arquivos
• Apenas um diretório contém todos os arquivos � diretório raiz (root directory);
• Desvantagem:
• 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
Estrutura de Diretório: Conceitos
Sistemas Operacionais
30
• Estrutura de diretórios com dois níveis
Usuário1
Usuário2
Usuário3
Usuárion
Arquivo1
Arquivo2
Arquivo3
Arquivo1
Arquivo1
Arquivo2
Arquivo3
User File Directory(UFD)
Arquivos
•Cada usuário possui um diretório privado;
•Sem conflitos de nomes de arquivos;
Fonte: Machado, F. B; Maia, L. P. Arquitetura de Sistema Operacionais, 3º ed., LTC, 2003
Estrutura de Diretório: Conceitos
Sistemas Operacionais
31
• Estrutura de diretórios hierárquicos:
Usuário1
Usuário2
Usuário3
Usuárion
Diretório Raiz
Diretório1
Diretório2
Arquivo1
Arquivo1
Diretório1
Arquivo1
Arquivo2
Arquivo1
Arquivo2
Arquivo1
Arquivo1
Arquivo2
•Usuários podem criar diversos
diretórios que agrupam
arquivos;
Fonte: Machado, F. B; Maia, L. P. Arquitetura de Sistema Operacionais, 3º ed., LTC, 2003
Estrutura de Diretório: Conceitos
Sistemas Operacionais
32
• Caminho de um arquivo
Disco C:/
IvanIvanCarlos Paulo
Teste Pessoal
Soma.exe
Fonte: Machado, F. B; Maia, L. P. Arquitetura de Sistema Operacionais, 3º ed., LTC, 2003
O método requer técnicas pelas quais os arquivos são acessados;
Estrutura de Diretório: Conceitos
Sistemas Operacionais
33
• 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;– É único;
– Exemplo:
• UNIX: /usr/ast/mailbox;
• Windows: \usr\ast\mailbox.
Diretórios
Sistemas Operacionais
34
• 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:
– Absoluto: cp /usr/ast/mailbox /usr/ast/mailbox.bak
– Relativo: /usr/ast: cp mailbox mailbox.bak
Diretórios
Sistemas Operacionais
35
Diretório em Grafo Acíclico
� Uma estrutura de árvore proíbe o compartilhamento de arquivos ou diretório;� Com grafo acíclic é possível o compartilhamento de arquivos e subdiretórios, ou seja, o mesmo arquivo ou subdiretório pode estar em dois diretórios diferentes.
Sistemas Operacionais
36
� 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 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.
Diretório em Grafo Acíclico
Sistemas Operacionais
37
Montagem
• SO => capacidade de montar vários sistemas de arquivos.� Constrói tabelas de montagem que contêm informações sobre os nomes de caminhos do ponto de montagem e sobre os dispositivos que armazena cada sistema de arquivo.
•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
38
(a) Sistema Existente. (b) Partição não montada
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
Sistemas Operacionais
39
� Contra� danos físicos (confiabilidade)
� acessos impróprios (proteção)
� Confiabilidade: cópia de arquivos com intervalos regulares
� 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
Proteção
Sistemas Operacionais
40
� 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
� 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
Proteção
Sistemas Operacionais
41
� 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 = permitido)
•r = acesso de leitura•w = acesso de escrita•x = acesso de execução
Proteção
Sistemas Operacionais
42
Windows XP Controle de Acesso
Sistemas Operacionais
43
Unix – Exemplo de Acesso
Sistemas Operacionais
44
Gerência de Alocação de Espaço em Disco
• Alocação Contígua
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
ÉÉ armazenado cada arquivo como um bloco contarmazenado cada arquivo como um bloco contííguo guo de dados no disco;de dados no disco;
Fonte: Machado, F. B; Maia, L. P. Arquitetura de Sistema Operacionais, 3º ed., LTC, 2003
Ex. Escrita em CD e DVD
Sistemas Operacionais
45
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;
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
46
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 posilogicamente no disco, independente de sua posiçção ão ffíísica. sica. UsaUsa um ponteiro no inum ponteiro no iníício do arquivocio do arquivo
Fonte: TANENBAUM, A. Sistemas Operacionais Modernos. Rio de Janeiro: PHB, 2ª ed., 2003.
Sistemas Operacionais
47
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;
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
48
Gerência de Alocação de Espaço em Disco
• Alocação Encadeada usando uma tabela na memória
O ponteiro O ponteiro éé colocado em uma tabela na memcolocado em uma tabela na memóória ria ao invao invéés de ser colocado no bloco (s de ser colocado no bloco (File Allocation File Allocation TableTable););
Fonte: TANENBAUM, A. Sistemas Operacionais Modernos. Rio de Janeiro: PHB, 2ª ed., 2003.
Ex. MS-DOS
Sistemas Operacionais
49
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;
Desvantagem: •Toda a tabela deve estar na memória
Fonte: TANENBAUM, A. Sistemas Operacionais Modernos. Rio de Janeiro: PHB, 2ª ed., 2003.
Sistemas Operacionais
50
Gerência de Alocação de Espaço em Disco
• Alocação Indexada
0 1 2
3 4 5
6 7 8
9 10 11
12 13 14
Bloco deíndice
310117
Fonte: Machado, F. B; Maia, L. P. Arquitetura de Sistema Operacionais, 3º ed., LTC, 2003
Cada arquivo tem seu prCada arquivo tem seu próóprio bloco de prio bloco de ííndicendice
Ex. Ext2fs e NTFS
Sistemas Operacionais
51
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);
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
52
Sumário
• Sistema de Arquivos
• Atributos de Arquivos
• Extensão de Arquivos
• Diretórios:• 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
53
• Silberschatz, A., Galvin, P. B. Gagne, G. Sistemas Operacionais com Java. 7º edição. Editora Campus, 2008 .
• TANENBAUM, A. Sistemas Operacionais Modernos. Rio de Janeiro: Pearson, 3 ed. 2010
Leituras Sugeridas
Sistemas Operacionais
54
Acesse o link abaixo:
http://hostel.ufabc.edu.br/~marcelo.nascimento/
Obrigado!!!
Notas de Aula
Sistemas Operacionais
55
Exercícios
1.Quais as formas de alocação de espaços em discos? Liste e explique as características (vantagens e problemas) de cada técnica.
2.Explique o objetivo das operações open e close aplicadas em arquivos.
3.Quais as vantagens e desvantagens de usar locks obrigatório em vez de locks de consulta, cujo uso dita a
critério do usuário?