Escolar Documentos
Profissional Documentos
Cultura Documentos
Sistemas Operacionais
16- Arquivos e Diretrios
Exemplo
Exemplo
Exemplo
Programa Unix simples que copia um arquivo de seu arquivo de origem para um destino
Ex: copyfile abc xyz
O lao de cpia comea tentando ler 4 KB de dados para o buffer. Isso feito por meio da chamada ao procedimento de biblioteca read, que invoca a chamada ao sistema read
8
Exemplo
A chamada write descarrega o buffer no arquivo destino Observe que o contador de bytes o nmero de bytes realmente lidos e no BUF_SIZE Isso importante porque a ltima leitura no retornar 4096, a menos que o arquivo coincidentemente tenha um tamanho mltiplo de 4 KB
(a) Um processo segmentado antes de mapear arquivos em seu espao de endereamento (b) Processo depois do mapeamento
arquivo abc existente em um segmento criando novo segmento para xyz
12
14
15
Diretrios
Para controlar os arquivos, os sistemas de arquivos tm, em geral, diretrios ou pastas, que em muitos sistemas so tambm arquivos
16
Diretrios
Sistemas de diretrios em nvel nico
A maneira mais simples ter um diretrio contendo todos os arquivos Muitas vezes chamado de diretrio-raiz, mas, como ele s um, o nome no importa muito
Diretrios
Sistemas de diretrios em nvel nico
As vantagens desse esquema so a simplicidade e a capacidade de localizar os arquivos rapidamente O problema de haver somente um diretrio em um sistemas de vrios usurios, que diferentes usurios podem usar acidentalmente os mesmos nomes para seus arquivos
18
Diretrios
Sistemas de diretrios em dois nveis
Para evitar conflitos por diferentes usurios escolhendo o mesmo nome para seus arquivos, o prximo passo oferecer a cada usurio um diretrio privado Esse projeto conduz ao sistema:
19
Diretrios
Sistemas de diretrios em dois nveis
O que est implcito nesse projeto que, quando o usurio tentar abrir um arquivo, o sistema sabe qual o usurio e ento sabe em qual diretrio buscar Como consequncia, necessrio algum tipo de procedimento de identificao, no qual o usurio especifica um nome ou identificador
20
Diretrios
Sistemas de diretrios em dois nveis
Uma pequena extenso feita para permitir que os usurios tenham acesso aos arquivos de outros usurios
open(x) Open(nancy/x)
21
Diretrios
Sistemas de diretrios hierrquicos
O sistema de diretrio em dois nveis no satisfatria para os usurios com um nmero muito grande de arquivos comum aos usurios querer agrupar seus arquivos assumindo critrios lgicos Faz-se necessria uma hierarquia
22
Diretrios
Sistemas de diretrios hierrquicos
23
Diretrios
Nomes de caminhos
Quando o sistema de arquivos organizado como uma rvore de diretrio, preciso algum modo de especificar o nome dos arquivos So usados comumente 2 mtodos:
Nome de caminho absoluto: fornece o caminho entre diretrio-raiz e o arquivo Nome de caminho relativo: usado juntamente com o conceito de diretrio de trabalho
Ex: se o diretrio de trabalho for /usr/ast, ento o arquivo cujo caminho absoluto for /usr/ast/caixapostal pode ser referenciado por caixa postal
24
Diretrios
Nomes de caminhos
A maioria dos SO tem duas entradas especiais de cada diretrio, . e ..
Ex: cp ../bib/dicionario .
O ponto refere-se ao diretrio atual Pontoponto refere-se a seu pai Considere a rvore de diretrio Unix
25
Diretrios
Nomes de caminhos
26
Diretrios
Operaes com diretrios
Exemplos do Unix 1. Create: cria um diretrio vazio 2. Delete: remove um diretrio, somente se estiver vazio 3. Opendir: l diretrio, assim como um arquivo que precisa ser aberto antes de ser lido 4. Closedir: quando acaba de ser lido o diretrio deve ser fechado para liberar espao na tabela interna
27
Diretrios
Operaes com diretrios
Exemplos do Unix 5. Readir: retorna a prxima entrada em um diretrio aberto 6. Rename: permite mudar o nome do diretrio 7. Link: a ligao (linking) uma tcnica que possibilita a um arquivo aparecer em mais de um diretrio 8. Unlink: remove uma entrada de diretrio. Se o arquivo sendo desligado estiver presente em apaneas um diretrio, ele ser removido do sistema. Se estiver em vrios diretrios, somente o nome do caminho especificado ser removido
28
29
Referncias
Andrew S. Tanenbaum. Sistemas Operacionais Modernos. 2 Edio, Prentice Hall, 2007. Francis B. Machado e Luiz P. Maia. Arquitetura de Sistemas Operacionais. 3a. Edio. LTC, 2004.
30