Apostila 8 sistema de arquivos

36
Cap. 11 – Sistema de Arquivos 1 Arquitetura de Sistemas Operacionais Apostila 8 Sistema de Arquivos

description

Sistema de arquivos em Sistemas Operacionais

Transcript of Apostila 8 sistema de arquivos

Page 1: Apostila 8   sistema de arquivos

Cap. 11 – Sistema de Arquivos 1

Arquitetura de Sistemas Operacionais

Apostila 8Sistema de Arquivos

Page 2: Apostila 8   sistema de arquivos

Cap. 11 – Sistema de Arquivos 2

Sumário

• Introdução

• Arquivos

– Organização de Arquivos

– Métodos de Acesso

– Operações de Entrada/Saída

• Atributos

• Diretórios

• Gerência de Espaço Livre em Disco

• Gerência de Alocação de Espaço em Disco

• Proteção de Acesso

• Implementação de Caches

Page 3: Apostila 8   sistema de arquivos

Cap. 11 – Sistema de Arquivos 3

Introducão

• Um processo deve ser capaz de ler egravar grande volume de dados emdispositivos como fitas e discos de formapermanente, além de poder compartilhá-los com outros processos.

• O armazenamento e a recuperação dedados é uma atividade essencial paraqualquer tipo de aplicação.

• A maneira pela qual o sistema operacionalestrutura e organiza estas informações éatravés da implementação de arquivos.

Page 4: Apostila 8   sistema de arquivos

Cap. 11 – Sistema de Arquivos 4

Introducão

• Os arquivos são gerenciados pelo SO demaneira a facilitar o acesso dos usuários aoseu conteúdo.

• A parte do sistema responsável por essagerência é denominada sistema de arquivos.

• O sistema de arquivos é a parte mais visívelde um SO, pois a manipulação de arquivos éuma atividade frequentemente realizadapelos usuários, devendo sempre ocorrer deforma uniforme, independentemente dosdiferentes dispositivos de armazenamento.

Page 5: Apostila 8   sistema de arquivos

Cap. 11 – Sistema de Arquivos 5

Disco

• Cada trilha é dividida em setores

• O setor é a menor unidade do disco

• As operações de entrada e saída no disco são feitas sobre os setores

• As transferências entre memória e disco são realizadas em

blocos que são compostos por vários setores.

Page 6: Apostila 8   sistema de arquivos

Cap. 11 – Sistema de Arquivos 6

Atributos de Arquivos

• São informações de controle quedependendo do sistema de arquivosvariam, porém alguns como tamanho,criador, proteção e data estão presentesem quase todos.

• Alguns atributos especificados na criaçãodo arquivo não podem ser mudados eoutros são modificados pelo própriosistema operacional. E ainda existe algunsque podem ser alterados pelo usuário taiscomo proteção, tamanho e senha.

Page 7: Apostila 8   sistema de arquivos

Cap. 11 – Sistema de Arquivos 7

Tipos de ArquivosTipo do Arquivo Extensão comum Função

Executável exe, com, bin, ou nada Programa em linguagem de máquina

pronto para executar

Objeto obj, o Linguagem de máquina, compilado,

sem linkedição

Código fonte c, cc, pas, java, asm, a Código fonte em várias linguagens

Batch bat, sh Comandos para o interpretador de

comandos

Texto txt, doc Dados textuais, documentos

Processador de testo wpd, tex, doc, etc Vários formatos de procesador de

textos

Biblioteca lib, a, dll Bibliotecas de rotinas para

programadoresa

Impressão ou visualização ps, dvi, gif Arquivos ASCII ou binário em um

formato para impressão ou

visualização

Arquivo compactado arc, zip, tar Arquivos correlatos agrupados em

um arquivo único, ás vezes

compactado, para fins de

arquivamento ou

armazenamento

Page 8: Apostila 8   sistema de arquivos

Cap. 11 – Sistema de Arquivos 8

Organização de Arquivos

• A organização de arquivos consiste em como os seus dados estãointernamente armazenados.

• A estrutura dos dados pode variar em função do tipo de informaçãocontida no arquivo.

• Arquivos texto possuem propósitos completamente distintos dearquivos executáveis, consequentemente, estruturas diferentespodem adequar-se melhor a um tipo do que a outro.

• No momento da criação de um arquivo, seu criador pode definir quala organização adotada.

• Esta organização pode ser uma estrutura suportada pelo SO oudefinida pela própria aplicação.

• A forma mais simples de organização de arquivos é através de umasequência não-estruturada de bytes (Fig. 11.1a)

• Neste tipo de organização, o sistema de arquivos não impõenenhuma estrutura lógica para os dados.

• A aplicação deve definir toda a organização, estando livre paraestabelecer seus próprios critérios.

• A grande vantagem deste modelo é a grande flexibilidade para criardiferentes estruturas de dados, porém todo o controle de acesso aoarquivo é de inteira responsabilidade da aplicação.

Page 9: Apostila 8   sistema de arquivos

Cap. 11 – Sistema de Arquivos 9

Organização de Arquivos

• Organização de Arquivos

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

Page 10: Apostila 8   sistema de arquivos

Cap. 11 – Sistema de Arquivos 10

Métodos de Acesso • Em função de como o arquivo está organizado, o sistema de arquivos

pode recuperar registros de diferentes maneiras.• Acesso Sequencial - Inicialmente, os SOs só armazenavam arquivos em

fitas magnéticas.• Com isso, o acesso era restrito a leitura dos registros na ordem em que

eram gravados e a gravação de novos registros só era possível no final doarquivo.

• Este tipo de acesso, chamado de acesso sequencial, era próprio da fitamagnética que, como meio de armazenamento, possuía esta limitação.

• Acesso Direto - Com o advento dos discos magnéticos, foi possível aintrodução de métodos de acesso mais eficientes. O primeiro foi o acessodireto, que permite a leitura/gravação de um registro diretamente na suaposição. Este método é realizado através do número do registro que é asua posição relativa em relação ao início do arquivo.

• É importante ressaltar que o acesso direto somente é possível quando oarquivo é definido com registros de tamanho fixo.

• Acesso Indexado - Um método de acesso mais sofisticado, que temcomo base o acesso direto, é o chamado acesso indexado ou acesso porchave. Para este acesso, o arquivo deve possuir uma área de índice ondeexistam ponteiros para os diversos registros. Sempre que a aplicaçãodesejar acessar um registro, deverá ser especificada uma chave atravésdo qual o sistema pesquisará na área de índice o ponteirocorrespondente.

Page 11: Apostila 8   sistema de arquivos

Cap. 11 – Sistema de Arquivos 11

Métodos de Acesso

• Acesso direto

Registro0

Registro1

Registro2

Registron

Deslocamento dedois registros

Page 12: Apostila 8   sistema de arquivos

Cap. 11 – Sistema de Arquivos 12

Operações de Entrada/Saída

D i s p o s i t i v o s

R o t i n a s d e E / S

A p l i c a ç ã o

• Operações de Entrada/Saída

Page 13: Apostila 8   sistema de arquivos

Cap. 11 – Sistema de Arquivos 13

Operações de Entrada/Saída

• A Tabela abaixo apresenta algumasdestas rotinas encontradas na maioria dasimplementações de sistemas de arquivos

Page 14: Apostila 8   sistema de arquivos

Cap. 11 – Sistema de Arquivos 14

Operações sobre Arquivos

• Criar Arquivo

• Escrever em um arquivo

• Ler um arquivo

• Reposicionar dentre do arquivo – Essaoperação de arquivo também échamada de busca no arquivo.

• Excluir um arquivo

• Truncar um arquivo

• Anexar e renomear

Page 15: Apostila 8   sistema de arquivos

Cap. 11 – Sistema de Arquivos 15

Atributos

• Cada arquivo possui informações de controle denominadas atributos. Osatributos variam dependendo do sistema de arquivos porém alguns, comotamanho do arquivo, proteção, identificação do criador e data de criação,estão presente em quase todos os sistemas.

• Alguns atributos especificados na criação do arquivo não podem sermodificados em função de sua própria natureza, como organização edata/hora de criação. Outros são alterados pelo próprio SO, comotamanho e data/hora da última atualização. Existem ainda atributos quepodem ser modificados pelo próprio usuário, como proteção de arquivo,tamanho máximo e senha de acesso. Abaixo temos os principais atributospresentes nos sistemas de arquivos.

Page 16: Apostila 8   sistema de arquivos

Cap. 11 – Sistema de Arquivos 16

Atributos de Arquivos

• Atributos podem ser:– Nome – O nome simbólico de arquivo é a única

informação mantida no formato legível pelo homem.– Tipo – Essas informações são necessárias para o

sistemas que suportam tipos diferentes.– Posição – Essas informações são um ponteiro para o

dispositivo e para a posição do arquivo no dispositivo.– Tamanho - O tamanho atual do arquivo( em bytes,

palavras ou blocos) e possivelmente o tamanho máximopermitido estão incluídos neste atributo.

– Proteção – Informações de controle de acesso quecontrolam quem pode realiza as operações de leitura,escrita, execução etc.

– Hora, data e identificação de usuário – Essasinformações pode ser mantidas para criação, últimomodificação e último uso. Esses dados podem ser úteispara proteção, segurança e monitoração de uso.

Page 17: Apostila 8   sistema de arquivos

Cap. 11 – Sistema de Arquivos 17

Diretórios

• A estrutura de diretórios é como o sistemaorganiza logicamente os diversos arquivoscontidos em um disco.

• O diretório é uma estrutura de dados onde cadaentrada armazena informações como localizaçãofísica, nome, organização e demais atributos.

• Quando um arquivo é aberto, o SO procura a suaentrada na estrutura de diretórios, armazenandoas informações sobre atributos e localização doarquivo em uma tabela mantida na memóriaprincipal.

Page 18: Apostila 8   sistema de arquivos

Cap. 11 – Sistema de Arquivos 18

Diretórios

• Um diretório contém:

– uma lista de todos os arquivos por nome

– os endereços de todos os descritores de todosos arquivos

• Permite ao usuário se preocupar com odiretório lógico e ignorar os problemas daalocação física

• Principais estruturas para diretórios:Diretório de Nível Simples, Diretório deDois Níveis, Diretório em Árvores eDiretório em Grafos Acíclicos.

Page 19: Apostila 8   sistema de arquivos

Cap. 11 – Sistema de Arquivos 19

Diretórios

• Estrutura de diretórios de nível único

IdentificaçãoProteção

OrganizaçãoLocalização

Atributos

Diretórios Arquivos

Page 20: Apostila 8   sistema de arquivos

Cap. 11 – Sistema de Arquivos 20

Diretórios• Como o sistema de nível

único é bastante limitado,uma evolução do modelo foi aimplementação de umaestrutura onde para cadausuário existiria um diretórioparticular denominado UserFile Directory (UFD).

• Para que o sistema possalocalizar arquivos nessaestrutura, deve haver umnível de diretório adicionalpara controlar os diretóriosindividuais dos usuários.

• Este nível, denominadoMaster File Directory (MFD) éindexado pelo nome dousuário, onde cada entradaaponta para o diretóriopessoal. A figura ilustra estemodelo de estrutura dediretórios com dois níveis(two-level directory).

Usuário1

Usuário2

Usuário3

Usuárion

Arquivo1

Arquivo2

Arquivo3

Arquivo1

Arquivo1

Arquivo2

Arquivo3

User File Directory(UFD)

Arquivos

Page 21: Apostila 8   sistema de arquivos

Cap. 11 – Sistema de Arquivos 21

Diretórios

• Estrutura de diretórios em árvore

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

Page 22: Apostila 8   sistema de arquivos

Cap. 11 – Sistema de Arquivos 22

Diretórios

• Path de um arquivo

Disco C:/

IvanIvanCarlos Paulo

Teste Pessoal

Soma.exe

Page 23: Apostila 8   sistema de arquivos

Cap. 11 – Sistema de Arquivos 23

Gerência de Espaço Livre em Disco

• A criação de arquivos em disco exige que o SO tenha ocontrole de quais áreas ou blocos estão livres no disco.

• Este controle é realizado usando-se alguma estrutura dedados que armazena informações que possibilitam aosistema de arquivos gerenciar o espaço livre do disco.

• Nesta estrutura, geralmente uma lista ou tabela, épossível identificar blocos livres que poderão seralocados a um novo arquivo.

• Neste caso, o espaço é removido da estrutura para quenão seja reutilizado. No momento em que o arquivo éeliminado, todos os seus blocos são liberados para alista de espaços livres.

• A forma mais simples de implementar uma estrutura deespaços livres é através de uma tabela denominadamapa de bits (bit map). Cada entrada na tabela éassociada a um bloco do disco representado por um bit(0 – livre e 1 – alocado).

Page 24: Apostila 8   sistema de arquivos

Cap. 11 – Sistema de Arquivos 24

Gerência de Espaço Livre em Disco

• Alocação de espaço em disco

11001101

11100000

.

.

.

01110100

10000111

(a) Mapa de bits

Início

(b) Lista encadeada

Bloco Contador

4 2

10 1

25 20

13 7

50 5

© Tabela de blocos livres

Page 25: Apostila 8   sistema de arquivos

Cap. 11 – Sistema de Arquivos 25

Gerência de Alocação de Espaço em Disco

• Da mesma forma que o SO gerencia osespaços livres no disco, a gerência dosespaços alocados aos arquivos é defundamental importância em umsistema de arquivos.

• A seguir as principais técnicas dealocação serão apresentadas:

– Alocação contígua

– Alocação encadeada

– Alocação indexada

Page 26: Apostila 8   sistema de arquivos

Cap. 11 – Sistema de Arquivos 26

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

Page 27: Apostila 8   sistema de arquivos

Cap. 11 – Sistema de Arquivos 27

Gerência de Alocação de Espaço em Disco

• Estratégias de Alocação

First-Fit

Best-Fit

Worst-Fit

Page 28: Apostila 8   sistema de arquivos

Cap. 11 – Sistema de Arquivos 28

Gerência de Alocação de Espaço em Disco

• Desfragmentação

Área de trabalho

Page 29: Apostila 8   sistema de arquivos

Cap. 11 – Sistema de Arquivos 29

Gerência de Alocação de Espaço em Disco

• Alocação Encadeada - Afragmentação dos espaçoslivres não representanenhum problema naalocação encadeada poisos blocos livres alocadospara um arquivo nãoprecisam necessariamenteser contíguos.

• O que ocorre nestemétodo é a fragmentaçãode arquivos, que é aquebra do arquivo emdiversos pedaçosdenominados extents.

Início

0 1 2

3 4 5

6 7 8

9 10 11

12 13 14

Arquivo Bloco

A.TXT 6

. . . . . .

. . . . . .

. . . . . .

. . . . . .

Page 30: Apostila 8   sistema de arquivos

Cap. 11 – Sistema de Arquivos 30

Gerência de Alocação de Espaço em Disco

• Alocação Indexada - Aalocação indexadasoluciona uma dasprincipais limitações daalocação encadeada, que éa impossibilidade de acessodireito aos blocos dosarquivos. O princípio destatécnica é manter osponteiros de todos osblocos do arquivo em umaúnica estruturadenominada bloco deíndice.

• A alocação indexada, alémde permitir o acesso direitoaos blocos, não usainformações de controlenos blocos de dados, comona alocação encadeada.

0 1 2

3 4 5

6 7 8

9 10 11

12 13 14

Bloco deíndice

310117

Page 31: Apostila 8   sistema de arquivos

Cap. 11 – Sistema de Arquivos 31

Proteção de Acesso

• Proteção por grupos de usuários - Aproteção baseada em grupos de usuáriosé implementada por diversos SOs.

• Este tipo de proteção tem como princípioa associação de cada usuário do sistema aum grupo.

DADOS.TXT

Owner

Group

All

LeituraEscrita

ExecuçãoEliminação

Leitura

Page 32: Apostila 8   sistema de arquivos

Cap. 11 – Sistema de Arquivos 32

Proteção de Acesso

• Lista de Controle de Acesso - A Lista deControle de Acesso (Access Control List –ACL) consiste em uma lista associada acada arquivo, onde são especificadosquais os usuários e os tipos de acesso

permitidos.

Usuário: MaiaAcesso: Leitura + Escrita

Usuário: MachadoAcesso: Leitura

Usuário: MaiaAcesso: Leitura + Escrita + Execução

Usuário: MachadoAcesso: Eliminação

Page 33: Apostila 8   sistema de arquivos

Cap. 11 – Sistema de Arquivos 33

Implementação de Caches

• Acesso a disco é bastante lento

• Buffer cache minimiza este problema

• Quando uma operação é realizada o sistema verificase a informação se encontra no buffer cache

– Em caso positivo, não é necessário o acesso ao disco

– Caso o bloco requisitado não se encontre no cache, aoperação de E/S é realizada e o cache é atualizado

• Políticas para substituição de blocos: FIFO ou LRU

• Aspectos de segurança

– Atualização periódica

– Write-through caches

Page 34: Apostila 8   sistema de arquivos

Cap. 11 – Sistema de Arquivos 34

Escalonamento de Disco

• Escolha de qual solicitação de E/S atender

• O tempo para atender uma solicitação de leitura ou gravação é dividido em3 etapas:

– Tempo de Seek: tempo gasto para locomover a cabeça de leitura/gravação da trilha atual para a trilha desejada.

– 2. Tempo de Latência: tempo gasto para esperar que o disco rotacione até que o bloco desejado esteja sob a cabeça de leitura/gravação.

– 3. Tempo de Transferência: tempo gasto para transferir os dados do bloco do disco para a memória principal.

Page 35: Apostila 8   sistema de arquivos

Cap. 11 – Sistema de Arquivos 35

Escalonamento de Disco

• Para exemplificarmos as três técnicas, vamos supor que existe uma fila de requisição de acesso ao disco, onde as trilhas que devam ser acessadas estão na seguinte seqüência

98, 183, 37, 122, 14, 124, 65 e 67

de forma que a primeira solicitação que foi feita é a trilha 98 e a ultima é a 67. Supomos que a cabeça de leitura/gravação do disco esteja na posição 53.

Page 36: Apostila 8   sistema de arquivos

Cap. 11 – Sistema de Arquivos 36

Escalonamento de Disco

98, 183, 37, 122, 14, 124, 65 e 67

disco na posição 53.14 37 53 65 67 98 122 124

183

FCFS

640

SSTF

236

SCA

N

208