Você está na página 1de 68

Sistemas Operacionais

1/68

Roteiro
Arquivos Organizao de arquivos Diretrios Mtodos de acesso Mtodos de alocao em disco Fragmentao Tamanho de bloco Proteo de acesso
2/68

Introduo
Os arquivos so gerenciados pelo sistema operacional e mediante a implementao de arquivos que o sistema operacional estrutura e organiza as informaes. A parte do sistema responsvel pela gerncia denominada sistema de arquivo que a parte mais visvel do sistema operacional pois uma atividade freqentemente realizada pelos usurios. Deve ocorrer de maneira uniforme independente dos diferentes dispositivos de armazenamento.
3/68

Arquivos
um conjunto de registros definidos pelo sistema de arquivos e podem ser armazenados em diferentes dispositivos fsicos. constitudo de informaes logicamente relacionadas, podendo representar programas ou dados.

4/68

Idias Bsicas
A representao da informao dentro de um computador digital feita na forma de nmeros. No Linux ou no Windows, arquivos so concebidos e tratados como STREAMS (minhocas) de BYTES. O que um BYTE? Um BYTE um nmero entre 0 e 255.
Um BYTE um conjunto de 8 bits (dgitos binrios)
5/68

Decifrando os nmeros: o cdigo


A : 65 B : 66 ... Z : 90 Caracteres especiais: 0 8 9 10 12 13 : : : : : : NULO BACKSPACE TAB mudana de linha mudana de pgina ENTER a : 97 b : 98 ... z : 122 0 : 48 1 : 49 ... 9 : 57

6/68

Representao de um arquivo
Representao interna do contedo de um arquivo
65 66 67 10 49 50 51 10 68 69 10 97 98 10

Convertendo a representao interna de um arquivo que eu considero como um arquivo texto:


A B C 10 1 2 3 10 D E 10 a b 10

mudana de linha

mudana mudana de linha de linha

mudana de linha

7/68

Representao de um arquivo
Visualizando o arquivo no meu Terminal de Vdeo:
A B C 10 1 2 3 10 D E 10 a b 10

$ cat arquivo ABC 123 DE ab $

8/68

Arquivos
identificado por meio de um nome, formado por uma seqncia de caracteres. Em alguns sistemas operacionais, a identificao de um arquivo composta por duas partes separadas por um ponto, a parte aps o ponto chamada extenso do arquivo e serve para identificar o contedo.
9/68

Extenso de Arquivos
Extenso arquivo.c arquivo.cob arquivo.exe arquivo.obj arquivo.pas arquivo.txt arquivo.mp3 arquivo.dll Descrio Arquivo fonte em C Arquivo fonte em Cobol Arquivo executvel Arquivo objeto Arquivo fonte em Pascal Arquivo texto Arquivo de msica Arquivo de biblioteca dinmica
10/68

Organizao de Arquivos
Consiste no modo como seus dados esto internamente armazenados. Quando o arquivo criado pode-se definir que organizao ser adotada que pode ser uma estrutura suportada pelo sistema operacional ou definida pela prpria aplicao. A forma mais simples de organizao de arquivos atravs de uma seqncia noestruturada de bytes, onde o sistema de arquivos no impe nenhuma estrutura lgica para os dados, a aplicao deve definir toda a 11/68 organizao.

Organizao de Arquivos
A grande vantagem deste modelo a flexibilidade para criar estruturas de dados, porm todo o controle de dados de responsabilidade da aplicao. Alguns sistemas operacionais estabelecem diferentes organizaes de arquivos e cada um deve seguir um modelo suportado pelo sistema de arquivos. As organizaes mais conhecidas e implementadas so a seqencial, relativa e indexada.
12/68

Organizao de Arquivos
Nestes tipos de organizao, podemos visualizar um arquivo como um conjunto de registros. Quando definidos sempre com o mesmo tamanho so chamados de registros de tamanho fixo e caso contrrio so chamados de registros de tamanho varivel.
13/68

Organizao de Arquivos
Byte

Ana

Claudia

Teresa

Beatriz

Camila

Daniele

Patricia

Tina

Vanessa

Isabela

Maria

Registro Organizao noestruturada Organizao Indexada


14/68

Mtodos de Acesso
Em funo de como o arquivo esta organizado o sistema de arquivos pode recuperar registros de diferentes maneiras:
Acesso seqencial: arquivos armazenados em fitas magnticas, o acesso era restrito leitura na ordem em que eram gravados, sendo a gravao de arquivos possvel apenas no final do arquivo. Podese combinar o acesso seqencial com o direto e com isso acessar diretamente um arquivo e os demais m forma seqencial.
15/68

Mtodos de Acesso
Acesso direto: permite a leitura/gravao de um registro diretamente na sua posio. realizado atravs do nmero de registro. No existe restrio a ordem em que os registros so lidos ou gravados. Somente possvel quando definido com registros de tamanho fixo. Acesso indexado ou por chave: o arquivo deve possuir uma rea de ndice onde existam ponteiros para os diversos registros e a partir desta informao realiza-se um acesso direto.
16/68

Acesso Direto

Registro 0 Registro 1 Registro 2

Registro n

17/68

Operaes de Entrada / Sada


O sistema de arquivos oferece um conjunto de system calls que permite s aplicaes realizar operaes de E/S, como traduo de nomes em endereos, leitura e gravao de dados e criao/eliminao de arquivos. As system calls de E/S tem como funo oferecer uma interface simples e uniforme entre a aplicao e os diversos dispositivos.

18/68

Operaes de Entrada / Sada


Aplicao Aplicao

System calls de E/S

Dispositivos
19/68

Operaes de Entrada/Sada
Comando create open read write close rename erase Descrio Criao de um arquivo Abertura de um arquivo Leitura de dados de um arquivo Gravao de dados de um arquivo Fechamento de um arquivo Alterao de nome de um arquivo Eliminao de um arquivo
20/68

Atributos
So informaes de controle que dependendo do sistema de arquivos variam, porm alguns como tamanho, criador, proteo e data esto presentes em quase todos. Alguns atributos especificados na criao do arquivo no podem ser mudados e outros so modificados pelo prprio sistema operacional. E ainda existe alguns que podem ser alterados pelo usurio tais como proteo, tamanho e senha.
21/68

Atributos de Arquivos
Atributos Tamanho Proteo Dono Criao Backup Organizao Senha Descrio Especifica o tamanho do arquivo Cdigo de proteo de acesso Identifica o criador do arquivo Data e hora da criao do arquivo Data e hora do ltimo backup realizado Indica a organizao lgica dos registros Senha necessria para acessar o arquivo
22/68

Exemplo de Atributos
$ ls l
drwxr-xr-x 5 laureano prof 4096 Abr 14 drwxr-xr-x 3 laureano prof 4096 Mar 31 -rw-r--r-- 1 laureano prof 647 Abr 28 -rw-r--r-- 1 laureano prof 2335 Abr 28 drwxr-xr-x 11 laureano prof 4096 Mai 30 drwxr-xr-x 2 laureano prof 4096 Mai 18 drwx------ 11 laureano prof 4096 Jul 5 -rw-r--r-- 1 laureano prof 8437760 Jul 5 drwxr-xr-x 2 laureano prof 4096 Mai 22 -rw------- 1 laureano prof 1470 Set 28 11:34 12:25 12:24 12:24 2005 2005 2004 2004 2005 2004 a abc arqcut1 arqgrep arquivos asu bash-2.05b bash5.tar c client.c

23/68

Diretrios
Modo como o sistema organiza os diferentes arquivos contidos num disco. a estrutura de dados que contm entradas associadas aos arquivos onde esto informaes como localizao fsica, nome, organizao e demais atributos. Quando um arquivo aberto, o sistema operacional procura a sua entrada na estrutura de diretrios, armazenando as informaes do arquivo em uma tabela mantida na memria principal. Esta tabela contm todos os arquivo abertos, sendo fundamental para aumentar o desempenho das operaes com arquivos.
24/68

Diretrios
Nvel nico (single-level directory): a implementao mais simples, existe apenas um nico diretrio contendo todos os arquivos do disco. bastante limitado j que no permite que usurios criem arquivos com o mesmo nome o que ocasionaria um conflito no acesso aos arquivos.
25/68

Estrutura de diretrios de nvel nico

Identificao Proteo Organizao Localizao fsica Atributos

Diretrio

Arquivos

26/68

Diretrios
User File Directory (UFD): para cada usurio existe um diretrio particular e assim poderia criar arquivos com qualquer nome. Deve haver um nvel de diretrio adicional para controle chamado de Master File Directory (MFD) que indexado pelo nome do usurio e cada entrada aponta para o diretrio pessoal. anloga a uma estrutura de dados em rvore onde o MFD a raiz, os galhos so a UFD e os arquivos so as folhas. Quando se referencia a um arquivo necessrio especificar seu nome e seu diretrio isto chamado de 27/68 path (caminho).

Estrutura de diretrios com dois nveis


Arquivo 1 Arquivo 2 Arquivo 3 Arquivo 1 Arquivo 1 Arquivo 2 Arquivo 3
User File Directory (UFD)

Usurio 1 Usurio 2 Usurio 3

Usurio n
Master File Directory (MFD)

Arquivos

28/68

Diretrios
Estrutura de diretrios em rvore (Tree Structured Directory)
Adotado pela maioria dos sistemas operacionais e logicamente melhor organizado.

possvel criar quantos diretrios quiser, podendo um diretrio conter arquivos e outros diretrios (chamados subdiretrios). Cada arquivo possui um path nico que descreve todos os diretrios da raiz (MFD) at o diretrio onde o arquivo esta ligado e na maioria dos sistemas os diretrios so tratados como 29/68 arquivos tendo atributos e identificao.

Estrutura de diretrios em rvore

Diretrio Raiz
30/68

Path de um Arquivo
Disco C:/

Carlos

Ivan

Paulo

Teste

Pessoal

Pessoal

Programas

Soma.exe
31/68

Alocao de Espao em Disco


A criao de arquivos exige que o sistema operacional tenha controle de quais reas ou blocos no disco esto livres e este controle realizado atravs de uma estrutura (geralmente lista ou tabela) de dados que armazenam informaes e possibilitam ao sistema de arquivos gerenciar o espao livre.

32/68

Alocao de Espao em Disco


A forma mais simples de implementar uma estrutura de espaos livres atravs de uma tabela chamada mapa de bits (bit map) onde cada entrada da tabela associada a um bloco e representado por um bit, que pode assumir valor igual a 0 (bloco livre) ou 1 (bloco alocado). Esta estrutura gera um gasto excessivo de memria j que para cada bloco deve existir uma entrada na tabela.

33/68

Alocao de Espao em Disco


Outra forma realizar o controle por meio da ligao encadeada de todos os blocos livres e cada bloco deve possuir uma rea reservada para armazenamento do endereo do prximo. A partir do primeiro bloco pode-se ter acesso seqencial aos demais de forma encadeada. Apresenta restries se considerarmos que o algoritmo de busca de espao livre sempre deve realizar uma pesquisa seqencial na lista.

34/68

Alocao de Espao em Disco


Outra soluo leva em conta que blocos contguos so geralmente alocados ou liberados simultaneamente, com base neste conceito possvel manter uma tabela com o endereo do primeiro bloco de cada segmento e o nmero de blocos livres contguos que se seguem.

35/68

Alocao de Espao em Disco


Ligao encadeada Incio
11001101 10000111 01110100 . . . 11100000

Bloco Contador 4 5 10 1 13 7 19 30 21 5
Tabela de Blocos Livres
36/68

Mapa de bits

Alocao Contgua
Consiste em armazenar um arquivo em blocos seqencialmente dispostos. Neste tipo, o sistema localiza um arquivo atravs do endereo do primeiro bloco e da sua extenso em blocos. O acesso bastante simples tanto para a forma seqencial tanto para a direta, seu principal problema a alocao de novos arquivos nos espaos livres, pois para colocar n blocos necessrio que se tenha uma cadeia com n blocos dispostos seqencialmente no disco. 37/68

Alocao Contgua
Existe alguns problemas como determinar o espao necessrio a um arquivo quando criado e depois pode existir a necessidade de extenso e esta uma operao complexa, sendo assim a pr-alocao seria uma soluo mas pode ocasionar que parte do espao alocado permanea ocioso por um logo perodo de tempo. Quando o sistema operacional deseja alocar espao para um novo arquivo, pode existir mais de um segmento livre disponvel com o tamanho exigido e necessrio alguma estratgia de alocao seja adotada para selecionar qual segmento deve ser escolhido.
38/68

Alocao Contgua
arquivo readme.txt prova.doc Aula.pdf inicio #blocos 010 002 017 003 008 005

0 1 2 3 4 5 6 7

39/68

Alocao Contgua

0 3 6 9 12

1 4 7 10 13

2 5 8 11 14 Arquivo Bloco Extenso A. TXT 4 3 B. TXT 10 1 C. TXT 13 2

40/68

Alocao Contgua
Analisaremos as trs principais estratgias:
First-fit: o primeiro segmento livre com tamanho suficiente para alocar o arquivo selecionado. A busca na lista seqencial, sendo interrompida to logo se encontre um segmento adequado. Best-fit: seleciona o menor segmento livre disponvel com tamanho suficiente para armazenar o arquivo. A busca em toda a lista se faz necessria para a seleo do segmento, a no ser que a lista esteja ordenada por tamanho. Worst-fit: o maior segmento alocado e a busca por toda a lista se faz necessria, a menos que exista uma ordenao por tamanho.

41/68

Alocando um arquivo c/ 2 blocos


Situao inicial

First-fit

Best-fit

Worst-fit

42/68

Alocao Contgua
Independente da estratgia utilizada, a alocao apresenta um problema chamado fragmentao de espaos livres. O problema pode se tornar crtico quando um disco possuir blocos livres disponveis, porm sem um segmento contguo onde o arquivo possa ser alocado. Deve ser feito a desfragmentao periodicamente (visando que este problema seja resolvido) para reorganizar os arquivos no disco a fim de que exista um nico segmento de blocos livres. H um grande consumo de tempo neste processo e tem efeito temporrio.
43/68

Fragmentao externa
Espaos vazios entre blocos de arquivos. medida que o sistema evolui:
arquivos so criados e removidos mais espaos vazios aparecem. os espaos vazios ficam menores. Alocar novos arquivos torna-se difcil !

44/68

Evoluo da fragmentao

aloca

aloca

remove

remove

remove

aloca

aloca

Agora, como alocar um arquivo com 4 blocos ?


45/68

Desfragmentao
Mover arquivos para reagrupar os fragmentos em espaos maiores Visa permitir alocar arquivos maiores Deve ser feita periodicamente Uso de algoritmos para minimizar movimentao de arquivos (rapidez)

46/68

Estratgias de desfragmentao

Situao inicial

Moveu 6 blocos

Moveu 4 blocos

Moveu 2 blocos

47/68

Defragmentao

48/68

Alocao Encadeada
O arquivo organizado como um conjunto de blocos ligados no disco, independente de sua localizao fsica e cada um deve possuir um ponteiro para o bloco seguinte. O que ocorre neste mtodo a fragmentao de arquivos (quebra do arquivo em diversos pedaos denominados extents) o que aumenta o tempo de acesso ao arquivo, pois o disco deve deslocar-se diversas vezes para acessar todas as extents. necessrio que o disco seja desfragmentado periodicamente, esta alocao s permite acesso seqencial e desperdia espao nos blocos com armazenamento de ponteiros.
49/68

Alocao Encadeada
Incio 0 3 6 9 12 1 4 7 10 13 2 5 8 11 14
50/68

Alocao Encadeada

arquivo readme.txt prova.doc Aula.pdf

inicio #blocos 010 003 002 008 017 005

51/68

Alocao Indexada
O princpio desta tcnica manter os ponteiros de todos os blocos de arquivos em uma nica estrutura denominada bloco de ndice. Alm de permitir o acesso direto aos blocos do arquivo, no utiliza informaes de controle nos blocos de dados como existe na alocao encadeada.
52/68

Alocao Indexada
3 10 Bloco de 11 ndice 7

0 3 6 9 12

1 4 7 10 13

2 5 8 11 14

53/68

Alocao Indexada

arquivo readme.txt prova.doc Aula.pdf

inicio #blocos 010 003 002 008 017 005

I-node

54/68

Fragmentao interna
Arquivos so alocados em blocos:
Os blocos tm tamanho fixo. Entre 512 bytes e 8 Kbytes. Um bloco no pode ser alocado parcialmente.

Se usarmos blocos de 4096 bytes:


um arquivo de 5700 bytes ocupar 2 blocos. 2492 bytes sero perdidos no ltimo bloco.

Em mdia, perde-se 1/2 bloco por arquivo.


55/68

Tamanho dos blocos


A escolha do tamanho dos blocos importante para a eficincia do sistema. Blocos pequenos:
menor perda por fragmentao interna mais blocos por arquivo: maior custo de gerncia

Blocos grandes:
maior perda por fragmentao interna menos blocos por arquivo: menor custo de gerncia

56/68

Proteo de Acesso
Considerando que os meios de armazenamento so compartilhados necessrio ter mecanismos de proteo par garantir a proteo de arquivos e diretrios. Qualquer sistema de arquivos deve possuir mecanismos prprios para proteger o acesso as informaes gravadas e o tipo de acesso mediante concesso ou no de acessos que podem ser realizados como a leitura (read), gravao (write), execuo (execute) e eliminao (delete).
57/68

Proteo de Acesso
H diferenas entre o controle de acesso a diretrios e arquivos.O controle da criao/eliminao de arquivos nos diretrios, visualizao do seu contedo e eliminao do prprio diretrio so operaes que tambm devem ser protegidas. Existem diferentes mecanismos e nveis de proteo e para cada tipo de sistema um modelo mais adequado do que o outro.
58/68

Tipos de Acesso
Acesso Leitura Descrio Qualquer tipo de operao em que o arquivo possa ser visualizado, como a exibio de seu contedo, edio ou cpia de um novo arquivo Alterao no contedo do arquivo, como incluso ou alterao de registros.

Gravao Execuo

Associado a arquivos executveis ou arquivos de comandos, indicando o direito de execuo do arquivo. Eliminao Permisso para se eliminar um arquivo.
59/68

Senha de Acesso
bastante simples e se resume ao usurio ter conhecimento da senha e a liberao do acesso ao arquivo concedida pelo sistema. Cada arquivo possui apenas uma senha, o acesso liberado ou no na sua totalidade. No possvel determinar quais tipos de operaes podem ou no ser concedidas e outra desvantagem a dificuldade de compartilhamento j que todos os demais usurios deveriam ter conhecimento da senha.
60/68

Grupos de Usurios
Tem como princpio a associao de cada usurio do sistema a um grupo. Os usurios so organizados com o objetivo de compartilhar arquivos entre si. Implementa trs tipos de proteo: owner (dono), group (grupo) a all (todos) e na criao do arquivo especificado quem e o tipo de acesso aos trs nveis de proteo. Em geral, somente o dono ou usurios privilegiados que podem modificar a proteo dos arquivos.
61/68

Proteo por Grupo de Usurios

Nvel de proteo Tipo de Acesso Owner Leitura Escrita Execuo Eliminao Leitura -62/68

dados.txt Group All

Lista de Controle de Acesso


Access Control List ACL consiste em uma lista associada a cada arquivo onde so especificados quais os usurios e os tipos de acesso permitidos. O tamanho desta estrutura pode ser bastante extenso se um arquivo tiver seu acesso compartilhado por diversos usurios. Existe um overhead adicional devido a pesquisa seqencial que o sistema dever realizar na lista sempre que solicitado. possvel encontrar tanto a proteo por grupos de usurios quanto pela lista de acesso oferecendo uma maior flexibilidade ao mecanismo de proteo.
63/68

Lista de Controle de Acesso

Usurio: Laureano Acesso: leitura + escrita Usurio: Maziero Acesso: leitura

Usurio: Laureano Acesso: leitura + escrita + execuo Usurio: Maziero Acesso: eliminao

64/68

Implementao de Caches
O acesso a disco bastante lento ao comparado a memria principal e este o fator para que as operaes de E/S serem um problema ao desempenho do sistema. Com o objetivo de minimizar este problema, a maioria dos sistemas operacionais implementa a tcnica de buffer cache onde o sistema reserva uma rea na memria para que se tornem disponveis caches utilizados em operaes de acesso a disco. Quando uma operao realizada o sistema procura no cache a informao e caso no encontre, ele busca no disco e depois atualiza a buffer cache.
65/68

Implementao de Caches
Como existe limite para o tamanho do cache o sistema adota polticas de substituio como o FIFO (First in First out) ou a LRU (Least Recently Used). No caso de dados permanecerem por um longo tempo na memria a ocorrncia com problemas de energia pode resultar na perda de tarefas j executadas e consideradas salvas em disco. Existem duas maneiras de tratar deste problema: o sistema pode possuir uma rotina que executa, em intervalos de tempo, atualizaes em disco de todos os blocos modificados no cache.
66/68

Implementao de Caches
Uma segunda alternativa que toda vez que um bloco do cache for modificado, realizar uma atualizao no disco (write-through caches). Podemos concluir que a primeira tcnica implica em menor quantidade de operaes de E/S porm o risco de perda de dados maior, pois pode ocorrer que dados atualizados de um arquivo ainda no cache sejam perdidos na falta de energia. Isso j no acontece nos caches tipo write-through em funo de seu funcionamento porm existe um aumento considervel nas operaes de E/S o que o torna menos eficiente. A maioria dos sistemas utiliza a primeira tcnica.
67/68

Ento....
Dvidas ? Perguntas ? Sugestes ?

68/68