aula7-sistema

Propaganda
SISTEMAS OPERACIONAIS ABERTOS
Prof. Ricardo Rodrigues Barcelar
http://www.ricardobarcelar.com
- Aula 7 1. Sistema de Arquivos
Sistema de arquivo nada mais é do que a maneira de como o sistema operacional organiza e
administra os dados em um disco. Os arquivos são gerenciados pelo sistema operacional e é
mediante a implementação de arquivos que o sistema operacional estrutura e organiza as
informações.
A parte do sistema responsável pela gerência é denominada sistema de arquivo que é a parte
mais visível do sistema operacional, pois é uma atividade freqüentemente realizada pelos usuários.
Deve ocorrer de maneira uniforme independente dos diferentes dispositivos de armazenamento.
1.1. Nomes de Arquivo
Os arquivos são um mecanismo de abstração, ou seja uma maneira de armazenar a
informação no disco e tê-las de volta mais tarde. Esse trabalho deve ser realizado de forma
transparente para o usuário.
As regras para dar nome a um arquivo variam de um sistema para outro, no entanto todos
permitem cadeias de 1 à 8 letras como nome de arquivos válidos, podendo chegar em alguns
sistemas a 255 caracteres incluindo aí caracteres especiais.
Em alguns SO há a distinção entre caracteres em letras maiúsculas e minúsculas o que
acontece com o UNIX, por exemplo.
Muitos SO’s suportam nomes de arquivos divididos em duas partes, por exemplo
program.c. A parte que se segue ao ponto é chamado extensão de arquivo. No UNIX é comum
encontrar arquivos com mais de uma extensão, como compacto.tar.gz.
Em alguns casos a extensão do arquivo não passa de uma convenção como os arquivos
.txt, que representa algum tipo de arquivo de texto. São úteis quando o programa trata vários
tipos de arquivos.
.bkp
Arquivo de backup
.c
Programa fonte em C
.f77
Programa Fortran 77
1
SISTEMAS OPERACIONAIS ABERTOS
Prof. Ricardo Rodrigues Barcelar
http://www.ricardobarcelar.com
.gif
Imagem no formato GIF
.hlp
Arquivo de ajuda
.html
Documento HTML da WWW
.mpg
Filme codificado no padrão MPEG
.o
Arquivo-Objeto(Saída de compilador, ainda não linkeditado)
.ps
Arquivo PostScript
.txt
Arquivo genérico de texto
.zip
Arquivo compactado
1.2. Estrutura de Arquivos
Os arquivos podem estar estruturados de várias maneiras. Três possibilidades comuns são
apresentadas abaixo.
A figura (a) é uma seqüência de bytes não estruturada. Assim o SO não sabe nem se
importa com o que está no arquivo. Qualquer significado deve ser imposto no nível do usuário.
Tanto o UNIX, quanto o Windows utilizam esta abordagem. Isto oferece uma maior flexibilidade na
nomeação do arquivo para o usuário.
2
SISTEMAS OPERACIONAIS ABERTOS
Prof. Ricardo Rodrigues Barcelar
http://www.ricardobarcelar.com
Na figura (b), um arquivo é uma seqüência de registros de comprimento fixo, cada um com
alguma estrutura interna. Neste caso, a operação de leitura retorna um registro e uma gravação
sobrescreve ou anexa um registro. Atualmente esta abordagem já foi abandonada.
Na figura (c) um arquivo consiste em uma árvore de registros, cada um com um campo
chave em uma posição fixa no registro. A árvore é classificada pelo campo chave, permitindo
localizar rapidamente uma chave particular. Esta estrutura é muito usada em mainframes de
grande porte.
1.3. Tipos de Arquivo
Os SO’s suportam vários tipos de arquivos. O UNIX e o MS-DOS, têm arquivos e diretórios
em comum.
Os arquivos comuns são os que contêm informações do usuário. Todos os arquivos da
figura acima são comuns. São geralmente arquivos ASCII ou binários. Arquivos ASCII consistem
em linhas de texto. Sua grande vantagem é que podem ser lidos, editados e impressos. Já os
binários não são passíveis de leitura ou de impressão, resultando em uma lista de caracteres
incompreensíveis
Diretórios são arquivos de sistema para manter a estrutura do sistema de arquivos.
Arquivos especiais de caractere relacionam-se com a entrada e saída e são utilizados
para modelar dispositivos de E/S com impressoras e rede.
Arquivos especiais de bloco são utilizados para modelar discos.
1.4. Acesso a Arquivos
Os SO’s antigos ofereciam somente um tipo de acesso a arquivos: arquivo seqüencial.
Estes são convenientes quando a mídia de armazenamento é fita magnética ao invés de disco. Nos
discos, os arquivos recebem o nome de arquivos de acesso aleatório. Estes são essenciais para
muitos aplicativos como sistemas de bancos de dados.
1.5. Atributos de Arquivos
Cada arquivo tem um nome e dados. Além disso todos os SO’s associam outras
informações com cada arquivo, por exemplo a data/hora de criação e o tamanho, que são
chamados de atributos dos arquivos, que pode variar de um SO para outro.
3
SISTEMAS OPERACIONAIS ABERTOS
Prof. Ricardo Rodrigues Barcelar
http://www.ricardobarcelar.com
Os primeiros quatro atributos relacionam-se com a proteção e informam quem pode ou não
pode acessá-lo.
Abaixo alguns possíveis atributos de arquivos:
Os vários campos de tempo monitoram a data/hora em que o arquivo foi criado ou mais
recentemente modificado. O tamanho atual informa o tamanho atual do arquivo. Alguns sistemas
operacionais de mainframes exigem, inclusive que o tamanho máximo seja especificado quando o
arquivo é criado, deixando o SO reservar a quantidade máxima de armazenamento de antemão.
Exemplo de atributos:
$ ls –l
drwxr-xr-x 5 ricardo prof 4096 Abr 14 11:34 a
drwxr-xr-x 3 ricardo prof 4096 Mar 31 12:25 abc
-rw-r--r-- 1 ricardo prof 647 Abr 28 12:24 arqcut1
-rw-r--r-- 1 laureano prof 2335 Abr 28 12:24 arqgrep
drwxr-xr-x 11 laureano prof 4096 Mai 30 2005 arquivos
4
SISTEMAS OPERACIONAIS ABERTOS
Prof. Ricardo Rodrigues Barcelar
http://www.ricardobarcelar.com
1.6. Operações com Arquivos
Sistemas diferentes oferecem operações diferentes para permitir armazenamento e
recuperação.
Chamada de sistemas mais comuns:
CREATE: Cria o arquivo e anuncia que é necessário configurar alguns atributos.
DELETE/ERASE: Exclui o arquivo do sistema.
OPEN: Permite que o sistema transfira os atributos e a lista de endereços de disco para a memória
principal.
CLOSE: O arquivo é fechado e libera espaço na memória principal.
READ: Os dados do arquivo são lidos.
WRITE: Os dados são gravados no arquivo.
APPEND: Uma forma restringida de WRITE, inserindo dados no fim do arquivo.
SEEK: Para os arquivos de acesso aleatório é necessário um mecanismo de busca que move o
ponteiro da posição atual para um lugar específico no arquivo.
GET ATTRIBUTES: Realiza a leitura dos atributos do arquivo. Ex. Comando Make no Unix, que
examina todos os tempos de modificação e os arquivos-fonte.
SET ATTRIBUTES: Permite a configuração dos atributos de um arquivo depois que ele foi criado,
como o modo de proteção, por exemplo.
RENAME: Realiza a mudança no nome do arquivo.
2. Diretórios
Para manter a organização dos arquivos o SO utiliza-se dos diretórios, que em muitos
sistemas também são arquivos.
É o modo como o sistema organiza os diferentes arquivos contidos num disco. É a
estrutura de dados que contém entradas associadas aos arquivos onde estão informações como
localização física, nome, organização e demais atributos.
Quando um arquivo é aberto, o sistema operacional procura a sua entrada na estrutura de
diretórios, armazenando as informações do arquivo em uma tabela mantida na memória principal.
Esta tabela contém todos os arquivos abertos, sendo fundamental para aumentar o desempenho
das operações com arquivos.
5
SISTEMAS OPERACIONAIS ABERTOS
Prof. Ricardo Rodrigues Barcelar
http://www.ricardobarcelar.com
2.1. Sistema hierárquico de diretórios
2.1.1. Nível Único (single-level directory)
É a implementação mais simples, existe apenas um único diretório contendo todos os
arquivos do disco. É bastante limitado já que não permite que usuários criem arquivos com o
mesmo nome o que ocasionaria um conflito no acesso aos arquivos.
No User File Directory (UFD), para cada usuário existe um diretório particular e assim
poderia criar arquivos com qualquer nome. Deve haver um nível de diretório adicional para
controle chamado de Master File Directory (MFD) que é indexado pelo nome do usuário e cada
entrada aponta para o diretório pessoal. É análoga a uma estrutura de dados em árvore onde o
MFD é a raiz, os galhos são a UFD e os arquivos são as folhas. Quando se referencia a um arquivo
é necessário especificar seu nome e seu diretório isto é chamado de path (caminho).
2.1.2. Estrutura de Diretórios em Árvore
Estrutura de diretórios em Árvore (Tree Structured Directory) é adotado pela maioria dos
sistemas operacionais e é logicamente melhor organizado. É possível criar quantos diretórios
quiser, podendo um diretório conter arquivos e outros diretórios (chamados subdiretórios). Cada
arquivo possui um path único que descreve todos os diretórios da raiz (MFD) até o diretório onde
o arquivo está ligado e na maioria dos sistemas os diretórios são tratados como arquivos tendo
atributos e identificação.
6
SISTEMAS OPERACIONAIS ABERTOS
Prof. Ricardo Rodrigues Barcelar
http://www.ricardobarcelar.com
2.2. Nomes de caminho
Quando o sistema de arquivos é organizado com uma árvore de diretórios é necessário
algum meio de especificar nomes de arquivos:
a. Nome de caminho absoluto: consiste no caminho do diretório raiz até o arquivo. Em
geral os nomes absolutos sempre iniciam pelo diretório-raiz e são únicos.
Exemplo: /etc/apt/sources.list
b. Nome de caminho relativo: é utilizado com conjunção com o conceito de diretório de
trabalho (chamado diretório atual). Em outras palavras, para invocar um determinado
arquivo ou endereço não é preciso referenciá-lo a partir do diretório-raiz.
7
SISTEMAS OPERACIONAIS ABERTOS
Prof. Ricardo Rodrigues Barcelar
http://www.ricardobarcelar.com
TRABALHO
Faça um comparativo e explique a funcionalidade dos diretórios do sistema de arquivos dos
Sistemas Operacionais Windows e Linux/UNIX.
8
Download