330 likes | 486 Views
Arquitetura de Sistemas Operacionais Francis Berenger Machado Luiz Paulo Maia Complementado por Sidney Lucena (Prof. UNIRIO) Capítulo 11 Sistema de Arquivos. Organização de Arquivos. Um arquivo é constituído por informações logicamente relacionadas
E N D
Arquitetura de Sistemas Operacionais Francis Berenger Machado Luiz Paulo Maia Complementadopor Sidney Lucena (Prof. UNIRIO) Capítulo 11 Sistema de Arquivos
Organização de Arquivos • Um arquivo é constituído por informações logicamente relacionadas • Arquivo Executável: contém o conjunto de instruções de um programa que serão compreendidas pelo processador • Arquivo de dados: contém um conjunto de informações que pode ser estruturado livremente • Ex.: arquivo texto, arquivo com fontes de programa, arquivo contendo uma base de dados, etc. • São armazenados pelo SO em diferentes dispositivos físicos • Ex.: Discos magnéticos, fitas, discos ópticos • Independência entre arquivos a serem manipulados e o meio de armazenamento
Organização de Arquivos • Um arquivo é identificado por um nome, composto por uma seqüência de caracteres • Dependendo do SO, há distinção entre maiúsculas e minúsculas • Regras como tamanho máximo do nome e caracteres permitidos variam de acordo com o SO • Alguns SOs usam uma extensão para identificar o tipo de arquivo • Exemplos: • .txt p/ arquivo texto; • .exe p/ arquivo executável; • .obj p/ arquivo objeto; • .c p/ arquivo fonte de programa escrito em linguagem C
Organização de Arquivos • Organização de Arquivosconsiste em como os dados estão internamente armazenados • Estrutura pode variar em função do tipo de informação contida no arquivo • Definidas no momento da criação do arquivo, seja pelo SO ou pela própria aplicação • Forma mais simples de organização: • Seqüência não-estruturada de bytes • Sistema de arquivos não impõe nenhuma estrutura lógica • Flexibilidade para a aplicação estabelecer seus próprios critérios de manipulação
Organização de Arquivos • SO’s possuem seus próprios sistemas de arquivos • Arquivos seguem modelo suportado pelo SO • Organizações mais usadas são a sequencial, relativa e indexada: • Arquivos tratados como um conjunto de registros • Registros podem ter tamanho fixo ou variável • Registros são armazenados na unidade física seguindo a estrutura lógica do sistema de arquivos
Métodos de Acesso • Dependendo da organização, sistema de arquivos pode recuperar registros de diferentes maneiras • Acesso seqüencial: • Em fitas magnéticas, acesso a registros devem ser feitos na ordem em que estes foram gravados • Acesso direto: • Manipulação de um registro diretamente na sua posição, exige tamanho fixo • Se vale do número do registro, que indica sua posição em relação ao início do arquivo • Não há restrição na ordem de leitura ou escrita • Método mais eficiente, possível com o advento dos discos magnéticos ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO)
Métodos de Acesso • Acesso direto pode ser combinado com acesso seqüencial • Acesso direto a um registro e, a partir deste, acesso seqüencial aos demais • Método mais sofisticado: acesso indexado • Arquivo possui um índice de ponteiros para acesso direto aos diversos registros ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO)
Operações de Entrada/Saída • O sistema de arquivos disponibiliza às aplicações um conjunto de rotinas para operações de E/S: • Tradução de nomes em endereços • Criação e eliminação de arquivos • Abertura e fechamento de arquivos • Leitura e escrita de dados • Rotinas de E/S servem como interface simples e uniforme entre aplicações e os diversos dispositivos ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO)
Operações de Entrada/Saída ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO)
Operações de Entrada/Saída • Cada arquivo possui informações de controle denominadas atributos • Os atributos variam dependendo do sistema de arquivos, mas alguns estão presentes em quase todos os SOs: • Tamanho • Proteção • Dono (owner) • Data e hora de criação (nunca é modificado) • Data e hora da última atualização • Organização lógica dos registros (nunca é modificado) • Senha de acesso ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO)
Diretórios • A estrutura de diretórios é como o sistema organiza logicamente os arquivos contidos em um disco • O diretório é uma estrutura que contém entradas com informações associadas aos arquivos a ele relacionados • Localização física, nome e atributos • Quando um arquivo é aberto, SO procura na estrutura de diretórios as respectivas informações e as armazena numa tabela mantida na MP • Quando arquivo é fechado, libera-se estas infos da tabela
Diretórios • Estrutura de diretórios de nível único é a implementação mais simples • Um único diretório contendo todos os arquivos
Diretórios • Estrutura de diretórios com dois níveis: • Cada usuário possui um diretório particular, o User File Directory (UFD) • Cada usuário pode criar arquivos com qualquer nome, independente dos nomes de arquivo usados pelos demais usuários • Usa-se um nível de diretório adicional, o Master File Directory (MFD), indexando os diretórios dos usuarios
Diretórios • Estrutura de diretórios em árvore: • Extensão do modelo de dois níveis para um de múltiplos níveis • Permite que arquivos sejam logicamente melhor organizados • Estrutura mais adotada pela maioria dos SOs • Cada usuário pode criar diversos níveis de diretórios (subdiretórios) • Cada subdiretório pode conter arquivos ou outros subdiretórios (em geral, tratados como arquivos) • Arquivo nesta estrutura especificado unicamente pelo seu caminho absoluto (path) desde a raiz (MFD) até diretório onde arquivo está ligado
Diretórios • Estrutura de diretórios em árvore
Diretórios • Path de um arquivo
Gerência de Espaço Livre em Disco • Criação de arquivos em disco exige que SO saiba quais áreas do disco estão livres • Necessária estrutura (lista ou tabela) contendo informações sobre blocos livres no disco que podem ser alocados a um novo arquivo • Quando alocado, bloco é removido da estrutura para que não seja utilizado • Quando arquivo é eliminado, todos os seus blocos retornam à estrutura contendo os espaços livres • Forma mais simples de estrutura é o bit map, onde cada bit representa um bloco do disco: • 0 indica bloco livre, 1 indica bloco ocupado • Problema: gasto excessivo de memória
Gerência de Espaço Livre em Disco • Segunda forma de estrutura é uma lista encadeada contendo os blocos livres no disco • Cada bloco deve possuir área reservada para endereço do próximo bloco da lista • Acesso se dá de forma seqüencial a partir do primeiro bloco da lista • Restrições envolvendo espaço de controle em cada bloco e tempo para busca de espaço livre • Terceira forma considera blocos livres contíguos • Usa tabela com endereço do primeiro bloco e número de blocos livres contíguos • Conhecida como tabela de blocos livres
Gerência de Alocação de Espaço em Disco • Alocação Contígua • Armazena arquivo em blocos seqüencialmente dispostos no disco • Necessário haver quantidade suficiente de blocos livres contíguos para alocação a arquivo de determinado tamanho • Sistema acessa arquivo através do endereço de seu primeiro bloco e de sua extensão (tamanho em blocos) • Simplicidade p/ algoritmos de leitura ou escrita • Disco é tratado como um grande vetor de segmentos de blocos contíguos • Estratégias p/ escolha de onde alocar arquivo: Best-fit, Worst-fit e First-fit
Gerência de Alocação de Espaço em Disco • Alocação Contígua
Gerência de Alocação de Espaço em Disco • Problema da alocação contígua: • Fragmentação dos espaços livres • A medida que arquivos são criados e eliminados, espaço livres contíguos ficam fragmentados em pequenos pedaços no disco • Disco pode conter blocos livres mas não ter espaço livre contíguo para alocar a arquivo de determinado tamanho • Problema contornado através de um rearranjo dos blocos alocados aos arquivos em disco: desfragmentação • Consome tempo e deve ser repetido periodicamente
Alocação Contígua • Desfragmentação
Alocação Encadeada • Arquivo organizado como uma lista encadeada de blocos no disco • Cada bloco possui ponteiro para bloco seguinte (desvantagem) • Alocação contígua dos blocos (extents) deixa de ser problema • Fragmentação implica em maior tempo de acesso aos blocos do arquivo • Braço do disco se deslocando várias vezes para cada extent • Necessário haver desfragmentação periódica do disco para otimizar tempo de E/S • Acesso aos blocos somente seqüencial: desvantagem
Alocação Indexada • Alocação Indexada permite acesso direto aos blocos dos arquivos • Ponteiros de todos os blocos do arquivo são mantidos em estrutura denominada bloco de índice • Não desperdiça espaço nos blocos de dados c/ controle
Proteção de Acesso • Mecanismos implementados para garantir proteção individual de arquivos e diretórios • Possibilita também compartilhamento de arquivos entre usuários, quando desejado • Implementados mediante concessão ou não de diferentes tipos de acesso • Leitura, escrita, execução e eliminação • No caso de diretórios • Criação/eliminação de arquivos/subdiretórios no diretório • Visualização do seu conteúdo • Eliminação do próprio diretório
Proteção de Acesso • Mecanismos presentes na maioria dos SOs: • Senha de acesso, grupos de usuário e lista de controle de acesso • Proteção por senha de acesso se resume a usuário ter conhecimento de senha que dá total poder de manipulação ao arquivo • Proteção por grupos de usuário implementada por diversos SOs • Cada usuário é associado a um grupo • Grupos de usuários objetivam compartilhar arquivos e diretórios • Três níveis de proteção: owner, group e all (public) • Na criação do arquivo, usuário especifica permissões que poderão ser modificadas posteriormente
Proteção de Acesso • Proteção por grupos de usuários:
Proteção de Acesso • A Lista de Controle de Acesso, ouAccess Control List (ACL), consiste em uma lista associada a cada arquivo especificando quais usuários e tipos de acesso são permitidos • Tamanho desta estrutura pode ficar muito grande caso arquivo seja compartilhado por muitos usuários • Pesquisa seqüencial na lista impõe overhead de tempo • Alguns SOs permitem o uso tanto de ACLs como de grupos de usuários
Implementação de Caches • Para minimizar problema do tempo de acesso ao disco (lento) para operações de E/S, faz-se uso de buffer cache • SO reserva área da MP para “cachear” operações de acesso ao disco • Comportamento análogo às diversas estruturas de cache presentes no sistema (hardware ou software) • Aspectos de segurança devem ser considerados: • Problemas de energia podem ocasionar perda de tarefas já realizadas em cache mas ainda não refletidas no disco • Atualizações no disco podem ser periódicas (menos operações de E/S) ou imediatamente após modificação do cache (mais seguro)