sistemas operacionais - amazon simple storage service · métodos de acesso 4. operações de...

37
Sistemas Operacionais Sistema de Arquivos

Upload: phamlien

Post on 08-Nov-2018

212 views

Category:

Documents


0 download

TRANSCRIPT

Sistemas

Operacionais Sistema de Arquivos

Sumário

1. Introdução

2. Arquivos

1. Identificação

2. Organização

3. Métodos de Acesso

4. Operações de Entrada e Saída

3. Diretórios

1. Dois Níveis

2. Múltiplos Níveis

4. Gerência de Espaço Livre

1. Mapa de bits

2. Lista Encadeada

3. Tabela de Blocos Livres

5. Gerência de Espaço Alocado

1. Alocação Contígua

2. Alocação Encadeada

3. Alocação Indexada

6. Proteção

1. Senha de Acesso

2. Grupos de Usuários

3. Lista de Controle de Acesso

1. Introdução

Os arquivos são gerenciados pelo sistema operacional de maneira a facilitar o acesso dos usuários ao seu conteúdo.

A parte do sistema operacional responsável por essa gerência é denominada sistema de arquivos.

1. Introdução

Neste módulo serão apresentados aspectos relacionados a sistemas de arquivos, como:

Identificação.

Organização.

Compartilhamento.

Método de acesso.

Proteção e

Operações de entrada e de saída.

2. Arquivos

Um arquivo é constituído por informações logicamente relacionadas.

Essas informações podem representar instruções ou dados.

Um arquivo executável contém instruções compreendidas pelo processador.

Um arquivo de dados pode ser estruturado livremente como um arquivo texto ou, de forma mais rígida, como um banco de dados relacional.

2. Arquivos

Os arquivos são armazenados pelo sistema operacional em diferentes dispositivos físicos.

Fitas magnéticas.

Discos rígidos.

Discos ópticos.

Memória flash.

O tipo de dispositivo no qual o arquivo é armazenado deve ser isolado pelo sistema operacional.

De forma que exista uma independência entre os arquivos a serem manipulados e o meio de armazenamento.

2.1. Arquivos Identificação

Um arquivo é identificado por um nome (em alguns sistemas de arquivos é feita distinção entre caracteres alfabéticos maiúsculos e minúsculos).

Em alguns sistemas operacionais, a identificação de um arquivo é composta por duas partes separadas com um ponto.

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

2.2.1. Organização Sequência Não Estruturada

A organização de arquivos pode ocorrer basicamente de duas formas.

1 – Sequência não estruturada de bytes

Neste tipo de organização, o sistema de arquivos não impõe

nenhuma estrutura lógica para os dados.

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

• Vantagem : flexibilidade para criar estruturas de dados.

• Desvantagem: todo o controle de acesso ao arquivo é de responsabilidade da aplicação.

2.2.2. Organização Modelos Suportados Pelo Sistema de Arquivos

2 – Modelos suportados pelo sistema de arquivos

O arquivo criado deve seguir um modelo suportado

pelo sistema de arquivos.

As organizações mais conhecidas são: Sequencial, Relativa e Indexada.

Nesses tipos de organização podemos visualizar um

arquivo como um conjunto de registros.

Os registros podem ser de tamanho fixo ou de tamanho variável.

2.3.1. Métodos de Acesso Sequencial

O sistema de arquivos pode acessar registros basicamente de três diferentes maneiras:

1 – Acesso Sequencial

Os primeiros sistemas operacionais só armazenavam arquivos em fitas magnéticas.

Com isso, o acesso era restrito à leitura dos registros na ordem em que eram gravados, e a gravação de novos registros só era possível no final do arquivo.

Esse tipo de acesso era próprio da fita magnética, que como meio de armazenamento possuia essa limitação.

2.3.2. Métodos de Acesso Direto

2 – Acesso Direto

Permite a leitura/gravação de um registro diretamente na sua posição, especificando o número do registro.

Possível com o advento dos discos magnéticos.

Não existe restrição à ordem em que os registros são lidos ou gravados.

O acesso direto pode ser combinado com o acesso sequencial.

Atenção: o acesso direto somente é possível quando o arquivo tem registros de tamanho fixo.

2.3.3. Métodos de Acesso Indexado

3 – Acesso Indexado ou Por Chave

O arquivo deve possuir uma área de índice onde existam ponteiros para os diversos registros.

Para uma aplicação acessar um registro, deverá ser especificada uma chave por meio da qual o sistema pesquisará na área de índice o ponteiro correspondente.

A partir dessa informação é realizado um acesso direto ao registro desejado.

2.4. Operações de Entrada/Saída

O sistema de arquivos disponibiliza um conjunto de rotinas que permite às aplicações realizarem operações de E/S.

Por exemplo: leitura e gravação de dados e criação e eliminação de arquivos.

As rotinas de E/S têm como função disponibilizar uma interface simples e uniforme entre a aplicação e os diversos dispositivos.

CREATE: criação de arquivos OPEN: abertura de um arquivo READ: leitura de um arquivo DELETE: eliminação de um arquivo

3. Diretórios

A estrutura de diretórios é como o sistema organiza logicamente os diversos arquivos contidos em um disco.

Implementações da estrutura de diretórios:

1. Nível único: somente existe um único diretório contendo todos os arquivos (de todos os usuários) do disco.

2. Dois níveis: para cada usuário possui um diretório particular denominado UFD (User File Directory).

3. Múltiplos níveis: modelo denominado estrutura de diretórios em árvore (tree-structured directory) (adotado pela maioria dos sistemas).

3.1. Diretórios Dois Níveis

2 – Dois níveis (continuação)

Houve a implementação de um estrutura em que, para cada usuário, existiria um diretório particular denominado UFD (User File Directory).

Com esta implementação, cada usuário passa a poder criar arquivos com qualquer nome, sem a preocupação de conhecer os demais arquivos do disco.

Para que o sistema possa localizar arquivos nessa estrutura, deve haver um nível de diretório adicional para controlar os diretórios individuais dos usuários.

3.1. Diretórios Dois Níveis

2 – Dois níveis

Este nível, denominado MFD (Master File Directory), é indexado pelo nome do usuário, e nele cada entrada aponta para o diretório pessoal.

3.1. Diretórios Dois Níveis

2 – Dois níveis (continuação)

3.2. Diretórios Múltiplos Níveis

3 – Múltiplos níveis

3.2. Diretórios Múltiplos Níveis

3 – Múltiplos níveis

Path do arquivo SOMA.EXE : /PAULO/PROGRAMAS/SOMA.EXE

4. Gerência de Espaço Livre

A criação de arquivos em disco exige que o sistema operacional tenha o controle de quais áreas ou blocos no disco estão livres.

Este controle é realizado utilizando-se uma estrutura de dados para o sistema de arquivos gerenciar o espaço livre do disco.

Nesta estrutura, geralmente uma lista ou tabela de espaços livres, é possível identificar blocos livres que poderão ser alocados a um novo arquivo.

Neste caso, o espaço é removido da estrutura para que não seja reutilizado. No momento em que um arquivo é eliminado, todos os seus blocos são liberados para a lista ou tabela de espaços livres.

4.1. Gerência de Espaço Livre Mapa de bits

Implementação de uma estrutura de espaços livres:

1- Mapa de bits (bit map)

Cada entrada na tabela é associada a um bloco do disco representado por um bit, podendo assumir:

0 (bloco livre) ou 1 (bloco alocado).

O principal problema dessa implementação é o excessivo gasto de memória, pois para cada bloco do disco deve existir uma entrada na tabela.

4.2. Gerência de Espaço Livre Lista Encadeada

2 - Lista Encadeada

Lista encadeada de todos os blocos livres do disco.

Cada bloco possui uma área reservada para armazenamento do endereço do próximo bloco.

A partir do primeiro bloco livre é, então, possível o acesso sequencial aos demais blocos livres de forma encadeada.

4.3. Gerência de Espaço Livre Tabela de Blocos Livres

3 – Tabela de Blocos Livres

Leva em consideração que blocos contíguos são geralmente alocados ou liberados simultaneamente.

Podemos, desta forma, enxergar o disco como um conjunto de segmentos de blocos livres.

Possível manter uma tabela com o endereço do primeiro bloco de cada segmento e o número de blocos livres contíguos.

5. Gerência de Espaço Alocado

A gerência de Espaço Alocado aos arquivos é de fundamental importância em um sistema de arquivos.

As principais técnicas de alocação serão apresentadas a seguir:

1 – Alocação Contígua

A alocação contígua consiste em armazenar um arquivo em blocos sequencialmente dispostos no disco.

Neste tipo de alocação, o sistema localiza um arquivo por meio do endereço do primeiro bloco e da sua extensão em blocos.

5.1. Gerência de Espaço Alocado Alocação Contígua

1 – Alocação Contígua

Problema: é necessário sabermos o tamanho do arquivo no momento da sua criação.

5.1. Gerência de Espaço Alocado Alocação Contígua

1 – Alocação Contígua

O acesso a arquivos é bastante simples, podendo ser direto ou sequencial.

Caso um arquivo deva ser criado com determinado tamanho é necessário existir uma quantidade suficiente de blocos contíguos no disco para realizar a alocação.

Arq1 Arq2 Arq3 Bloco

12K 10K 5K 3K

5.1. Gerência de Espaço Alocado Alocação Contígua

1 – Alocação Contígua

Se existir mais de um segmento livre disponível com o tamanho exigido, é preciso adotar uma estratégia para selecionar qual o segmento na lista de blocos livres deve ser escolhido. Para isso, existem algumas estratégias:

a) FIRST-FIT: O primeiro segmento livre com tamanho suficiente para alocar o arquivo é selecionado. A busca na lista é sequencial, sendo interrompida tão logo se localize um segmento com tamanho adequado. b) BEST-FIT: Seleciona o menor segmento livre disponível com tamanho suficiente para armazenar o arquivo. A busca em toda a lista se faz necessária para a seleção do segmento adequado. c) WORST-FIT: O maior segmento livre disponível com tamanho suficiente é alocado. Mais uma vez a busca em toda lista se faz necessária.

5.1. Gerência de Espaço Alocado Alocação Contígua

1 – Alocação Contígua

Independentemente da estratégia, a alocação contígua apresenta um problema chamado fragmentação dos espaços livres.

O problema da fragmentação pode ser contornado por meio de rotinas que reorganizem os arquivos no disco de maneira que só exista um único segmento de blocos livres.

Este procedimento, denominado desfragmentação, tem naturalmente efeito temporário e deve, assim, ser realizado periodicamente.

5.2. Gerência de Espaço Alocado Alocação Encadeada

2 - Alocação Encadeada

Na alocação encadeada, um

arquivo pode ser organizado como um conjunto de blocos ligados logicamente no disco, independentemente da sua localização física.

Cada bloco deve possuir um ponteiro para o bloco seguinte do arquivo, e assim sucessivamente.

5.2. Gerência de Espaço Alocado Alocação Encadeada

2 - Alocação Encadeada

A fragmentação dos espaços livres, apresentada na alocação contígua, é atenuada na alocação encadeada, pois os blocos livres alocados para um arquivo não precisam estar contíguos.

No entanto, o que ocorre na alocação encadeada é a fragmentação de arquivos, que é a quebra do arquivo em diversos pedaços denominados extents.

Isso resulta no aumento do tempo de acesso aos arquivos, pois o mecanismo de leitura/gravação do disco deve se deslocar diversas vezes sobre a superfície do mesmo para acesso a cada extent.

5.2. Gerência de Espaço Alocado Alocação Encadeada

2 - Alocação Encadeada

A alocação encadeada só permite acesso sequencial aos blocos dos arquivos, ou seja, não é possível o acesso direto aos blocos.

Além disso, essa técnica desperdiça espaço nos blocos com o armazenamento de ponteiros.

5.3. Gerência de Espaço Alocado Alocação Indexada

3 - Alocação Indexada

Soluciona uma de suas principais limitações que é a impossibilidade de acesso direto aos blocos dos arquivos.

O princípio da alocação indexada é manter ponteiros de todos os blocos do arquivo em uma única estrutura denominada bloco de índice.

6.1. Proteção Senha de Acesso

A seguir, apresentaremos três diferentes mecanismos de proteção de acesso, presentes na maioria dos sistemas de arquivos.

1 – Senha de Acesso

O usuário possui uma senha para cada arquivo. Assim, o acesso é liberado ou não na sua totalidade.

Isso significa que não é possível determinar quais os tipos de acesso podem ou não ser concedidas.

Outra desvantagem é a dificuldade de compartilhamento, pois seria necessário divulgar a senha.

6.2. Proteção Grupos de Usuários

2 – Grupos de Usuários

Este tipo de proteção tem por princípio a associação de cada usuário do sistema a um grupo.

Os grupos são organizados logicamente com o objetivo de compartilhamento. Os usuários que desejam compartilhar arquivos devem pertencer a um mesmo grupo.

Esse mecanismo implementa três níveis de proteção ao arquivo:

a) Proprietário (owner): arquivo acessado apenas pelo criador.

b) Grupo (Group): arquivo acessado pelo grupo.

c) Sistema (all): arquivo acessado por todos (dentro e fora do grupo).

6.2. Proteção Grupos de Usuários

Em geral, a proteção baseada em grupos de usuários se dá pela concessão ou não dos acessos (operações) que podem ser realizados, como:

d rwx rwx rwx

Tipo de Arquivo Proprietário Grupo Sistema (todos)

'd‘=diretório

'l‘ = link ‘r‘ = leitura

‘w‘ = escrita

‘x' = execução

Exemplos:

drwxr-xr-x bin

-rw-rw-r-- teste.txt

lrwxrwxrwx 1 ze users 29 Aug 12 12:33 efr -> /www/ns-home/docs/

6.3. Proteção Lista de Controle de Acesso

3 – Lista de Controle de Acesso (Access Control List – ACL)

A ACL é uma lista associada a cada arquivo, onde são especificados os usuários e os tipos de acesso permitidos.

O tamanho dessa estrutura de dados pode ser bastante extenso e existe um overhead adicional, se comparado ao grupo de usuários.

[Fim] Sistema de Arquivos

"Preocupe-se mais com seu caráter do que com sua reputação. Caráter é aquilo que você é, reputação é apenas o que os outros

pensam que você é.”

John Wooden

Próximo Módulo: Gerência de Dispositivos