·
Engenharia de Software ·
Arquitetura de Computadores
Envie sua pergunta para a IA e receba a resposta na hora
Recomendado para você
74
Algebra Booleana e Circuitos Lógicos Digitais - Teoria e Aplicações
Arquitetura de Computadores
UNIFACS
3
Atividades Práticas de Simulação com Escalonamento Circular no SOsim
Arquitetura de Computadores
UNIFACS
23
Introdução aos Processos em Sistemas Operacionais
Arquitetura de Computadores
UNIFACS
27
Sistemas de Numeração: Fundamentos e Representação da Informação
Arquitetura de Computadores
UNIFACS
1
Links da Aula LMC - Versão WEB e Tutorial
Arquitetura de Computadores
UNIFACS
19
Estrutura dos Sistemas Operacionais - Parte 03
Arquitetura de Computadores
UNIFACS
81
Assembly Language Tutorial - Simply Easy Learning
Arquitetura de Computadores
UNIFACS
33
Comunicação entre Processos e Sincronização em Sistemas Operacionais
Arquitetura de Computadores
UNIFACS
22
Gerência de Dispositivos em Sistemas Operacionais
Arquitetura de Computadores
UNIFACS
29
Escalonamento de Processos em Sistemas Operacionais
Arquitetura de Computadores
UNIFACS
Texto de pré-visualização
Sistemas de Arquivos Sistemas Operacionais Prof Eduardo Xavier Um processo deve ser capaz de ler e gravar de forma permanente grande volume de dados em dispositivos além de poder compartilhálos com outros processos A maneira pela qual o sistema operacional estrutura e organiza estas informações é por intermédio da implementação de arquivos 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 responsável por essa gerência é denominada sistema de arquivos Introdução Um arquivo é constituído por informações logicamente relacionadas Estas informações podem representar instruções ou dados Na realidade um arquivo é um conjunto de registros definidos pelo sistema de arquivos tornando seu conceito abstrato e generalista Arquivos A organização de arquivos consiste em como os seus dados estão internamente armazenados A estrutura dos dados pode variar em função do tipo de informação contida no arquivo Arquivostextos possuem propósitos completamente distintos de arquivos executáveis consequentemente estruturas diferentes podem adequarse melhor a um tipo do que a outro No momento da criação de um arquivo seu criador pode definir qual a organização adotada Esta organização pode ser uma estrutura suportada pelo sistema operacional ou definida pela própria aplicação Organização de Arquivos Alguns sistemas operacionais possuem diferentes organizações de arquivos Neste caso cada arquivo criado deve seguir um modelo suportado pelo sistema de arquivos As organizações mais conhecidas e implementadas são a sequencial a relativa e a indexada Nestes tipos de organização podemos visualizar um arquivo como um conjunto de registros Os registros podem ser classificados em registros de tamanho fixo quando possuírem sempre o mesmo tamanho ou registros de tamanho variável Organização de Arquivos Organização de Arquivos Em função de como o arquivo está organizado o sistema de arquivos pode recuperar registros de diferentes maneiras Inicialmente nos primeiros sistemas operacionais 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 Este tipo de acesso era chamado de acesso sequencial Com o advento dos discos magnéticos foi possível a introdução de métodos de acesso mais eficientes Métodos de Acesso O primeiro a surgir foi o acesso direto que permite a leituragravação de um registro diretamente na sua posição Este método é realizado através do número do registro que é a sua posição relativa ao início do arquivo No acesso direto não existe restrição à ordem em que os registros são lidos ou gravados sendo sempre necessária a especificação do número do registro É importante notar que o acesso direto somente é possível quando o arquivo é definido com registros de tamanho fixo Métodos de Acesso Organização de Arquivos O acesso direto pode ser combinado com o acesso sequencial Com isso é possível acessar diretamente um registro qualquer de um arquivo e a partir deste acessar sequencialmente os demais Um método de acesso mais sofisticado que tem como base o acesso direto é o chamado acesso indexado ou acesso por chave Para este acesso o arquivo deve possuir uma área de índice onde existam ponteiros para os diversos registros Sempre que a aplicação desejar acessar um registro deverá ser especificada uma chave através da qual o sistema pesquisará na área de índice o ponteiro correspondente A partir desta informação é realizado um acesso direto ao registro desejado Métodos de Acesso O sistema de arquivos disponibiliza um conjunto de rotinas que permite às aplicações realizarem operações de ES como tradução de nomes em endereços leitura e gravação de dados e criaçãoeliminação de arquivos Na realidade as rotinas de ES têm como função disponibilizar uma interface simples e uniforme entre a aplicação e os diversos dispositivos Operações de EntradaSaída Tabela 112 Rotinas de entradasaída Cada arquivo possui informações de controle denominadas atributos Os atributos variam dependendo do sistema de arquivos porém alguns como tamanho do arquivo proteção identificação do criador e data de criação estão presentes em quase todos os sistemas Alguns atributos especificados na criação do arquivo não podem ser modificados em função de sua própria natureza como organização e datahora de criação Outros são alterados pelo próprio sistema operacional como tamanho e datahora do último backup realizado Existem ainda atributos que podem ser modificados pelo próprio usuário como proteção do arquivo tamanho máximo e senha de acesso Atributos O diretório é uma estrutura de dados que contém entradas associadas aos arquivos em que cada entrada armazena 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 sobre atributos e localização 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 É importante que ao término do uso de arquivos estes sejam fechados ou seja que se libere o espaço na tabela de arquivos abertos Diretórios A implementação mais simples de uma estrutura de diretórios é chamada de nível único singlelevel directory Neste caso somente existe um único diretório contendo todos os arquivos do disco Este modelo é 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 Diretórios Uma evolução do modelo de nível único foi a implementação de uma estrutura em que para cada usuário existiria um diretório particular denominado User File Directory UFD 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 Nesta abordagem deve haver um nível de diretório adicional para controlar os diretórios individuais dos usuários Este nível denominado Master File Directory MFD é indexado pelo nome do usuário e nele cada entrada aponta para o diretório pessoal Diretórios Sob o ponto de vista do usuário a organização dos seus arquivos em um único diretório não permite uma organização adequada A extensão do modelo de dois níveis para um de múltiplos níveis permitiu que os arquivos fossem logicamente mais bem organizados Este novo modelo chamado estrutura de diretórios em árvore tree structured directory é adotado pela maioria dos sistemas Na estrutura em árvore cada usuário pode criar diversos níveis de diretórios também chamados subdiretórios Cada diretório pode conter arquivos ou outros diretórios O número de níveis de uma estrutura em árvore é dependente do sistema de arquivos de cada sistema operacional Diretórios 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 utilizandose alguma estrutura de dados que armazena informações que possibilitam ao sistema de arquivos gerenciar o espaço livre do disco Nesta estrutura geralmente uma lista ou tabela é 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 de espaços livres Gerência de Espaço Livre em Disco A forma mais simples de implementar uma estrutura de espaços livres é através de uma tabela denominada mapa de bits bit map Cada entrada na tabela é associada a um bloco do disco representado por um bit podendo assumir valor igual a 0 indicando bloco livre ou 1 indicando bloco alocado O principal problema desta solução é o gasto excessivo de memória já que para cada bloco do disco deve existir uma entrada na tabela Gerência de Espaço Livre em Disco Uma segunda maneira de realizar este controle é com uma estrutura de lista encadeada de todos os blocos livres do disco Para que isto seja possível 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 de forma encadeada Este esquema apresenta algumas restrições se considerarmos que além do espaço utilizado no bloco com informação de controle o algoritmo de busca de espaço livre sempre deve realizar uma pesquisa sequencial na lista Gerência de Espaço Livre em Disco Outra solução 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 Com base neste conceito é possível manter uma tabela com o endereço do primeiro bloco de cada segmento e o número de blocos livres contíguos que se seguem Esta técnica de gerência de espaço livre é conhecida como tabela de blocos livres Gerência de Espaço Livre em Disco Da mesma forma que o sistema operacional gerencia os espaços livres no disco a gerência dos espaços alocados aos arquivos é de fundamental importância em um sistema de arquivos Gerência de ALOCAÇÃO de Espaço Disco 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 através do endereço do primeiro bloco e da sua extensão em blocos O acesso a arquivos é bastante simples tanto para a forma sequencial quanto para a direta Seu principal problema é a alocação de espaço livre para novos arquivos 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 Gerência de ALOCAÇÃO de Espaço Disco Alocação Contígua Gerência de ALOCAÇÃO de Espaço Disco Alocação Contígua continuação Caso exista mais de um segmento livre disponível com o tamanho exigido como escolher Firstfit O primeiro segmento livre com tamanho suficiente para alocar o arquivo é selecionado Bestfit Seleciona o menor segmento livre disponível com tamanho suficiente para armazenar o arquivo Exige uma busca em toda a lista para a seleção do segmento ou a lista deve ser ordenada por tamanho Worstfit O maior segmento é alocado Mais uma vez a busca em toda a lista se faz necessária a menos que exista uma ordenação por tamanho Gerência de ALOCAÇÃO de Espaço Disco Alocação Contígua continuação Caso exista mais de um segmento livre disponível com o tamanho exigido como escolher Firstfit O primeiro segmento livre com tamanho suficiente para alocar o arquivo é selecionado Bestfit Seleciona o menor segmento livre disponível com tamanho suficiente para armazenar o arquivo Exige uma busca em toda a lista para a seleção do segmento ou a lista deve ser ordenada por tamanho Worstfit O maior segmento é alocado Mais uma vez a busca em toda a lista se faz necessária a menos que exista uma ordenação por tamanho Gerência de ALOCAÇÃO de Espaço Disco Alocação Contígua continuação Independentemente da estratégia utilizada a alocação contígua apresenta um problema chamado fragmentação dos espaços livres O problema da fragmentação pode ser contornado através de rotinas de desfragmentação Gerência de ALOCAÇÃO de Espaço Disco Alocação Encadeada Na alocação encadeada um arquivo pode ser organizado como um conjunto de blocos ligados logicamente no disco independente da sua localização física Cada bloco deve possuir um ponteiro para o bloco seguinte do arquivo e assim sucessivamente A alocação encadeada só permite que se realize acesso sequencial aos blocos dos arquivos Além disso essa técnica desperdiça espaço nos blocos com o armazenamento de ponteiros Gerência de ALOCAÇÃO de Espaço Disco Alocação Encadeada Gerência de ALOCAÇÃO de Espaço Disco Alocação Encadeada continuação A fragmentação dos espaços livres apresentada no método anterior não ocasiona nenhum problema na alocação encadeada pois os blocos livres alocados para um arquivo não precisam necessariamente estar contíguos O que ocorre neste método é a fragmentação de arquivos que é a quebra do arquivo em diversos pedaços denominados extents Isso aumenta o tempo de acesso aos arquivos Para otimizar o tempo das operações de ES neste tipo de sistema é importante que o disco seja periodicamente desfragmentado Gerência de ALOCAÇÃO de Espaço Disco Alocação Indexada A alocação indexada soluciona uma das principais limitações da alocação encadeada que é a impossibilidade do acesso direto aos blocos dos arquivos O princípio desta técnica é manter os ponteiros de todos os blocos do arquivo em uma única estrutura denominada bloco de índice A alocação indexada além de permitir o acesso direto aos blocos do arquivo não utiliza informações de controle nos blocos de dados como existente na alocação encadeada Gerência de ALOCAÇÃO de Espaço Disco Alocação Indexada Gerência de ALOCAÇÃO de Espaço Disco Em geral o tipo de acesso a arquivos é implementado mediante a concessão ou não dos diferentes acessos que podem ser realizados como leitura read gravação write execução execute e eliminação delete O controle de acesso às operações realizadas com diretórios possui diferenças em relação às operações com arquivos Controle da criaçãoeliminação de arquivos nos diretórios visualização do seu conteúdo e eliminação do próprio diretório são operações que também devem ser protegidas Existem diferentes mecanismos e níveis de proteção cada qual com suas vantagens e desvantagens para cada tipo de sistema um modelo é mais adequado do que outro Proteção de Acesso Senhas de Acesso O controle de acesso se resume ao usuário ter o conhecimento da senha e consequentemente ter a liberação do acesso ao arquivo concedida pelo sistema Como cada arquivo possui apenas uma senha o acesso é liberado ou não na sua totalidade Isto significa que não é possível determinar quais tipos de operação podem ou não ser concedidas Outra desvantagem deste método é a dificuldade de compartilhamento de arquivos pois além do dono do arquivo todos os demais usuários teriam que conhecer a senha de acesso Proteção de Acesso Grupos de Usuários Este tipo de proteção tem como princípio a associação de cada usuário do sistema a um grupo Os grupos de usuários são organizados logicamente com o objetivo de compartilhar arquivos e diretórios os usuários que desejam compartilhar arquivos entre si devem pertencer a um mesmo grupo Esse mecanismo implementa três níveis de proteção ao arquivo owner dono group grupo e all todos Na criação do arquivo o usuário especifica como o arquivo deve ser acessado em cada nível Nessa especificação é necessário associar o tipo de acesso leitura escrita execução e eliminação aos três níveis de proteção Proteção de Acesso Lista de Controle de Acesso Consiste em uma lista associada a cada arquivo onde são especificados quais os usuários e os tipos de acesso permitidos Nesse caso quando um usuário tenta acessar um arquivo o sistema operacional verifica se a lista de controle autoriza a operação desejada O tamanho dessa estrutura de dados pode ser bastante extenso se considerarmos que um arquivo pode ter seu acesso compartilhado por diversos usuários Existe um overhead adicional devido à pesquisa sequencial que o sistema deverá realizar na lista sempre que um acesso for solicitado Proteção de Acesso Proteção de Acesso Com o objetivo de minimizar o tempo de acesso das operações de ES a maioria dos sistemas de arquivos implementa uma técnica denominada buffer cache Neste esquema o sistema operacional reserva uma área da memória para que se tornem disponíveis caches utilizados em operações de acesso ao disco Como existe uma limitação no tamanho do cache cada sistema adota políticas para substituição de blocos como a FIFO ou a LRU Implementação de Caches Diretórios Apesar de esta implementação melhorar o desempenho do sistema aspectos de segurança devem ser levados em consideração No caso de blocos de dados permanecerem por um longo período de tempo na memória principal a ocorrência de problemas de energia pode ocasionar a perda de tarefas já realizadas e consideradas já salvas em disco Existem duas maneiras distintas de tratar este problema O SO executa uma rotina periodicamente atualizando em disco todos os blocos modificados do cache menos ES e mais risco Toda vez que um bloco do cache for modificado deve ocorrer uma atualização no disco writethrough caches mais ES Implementação de Caches Diretórios Arquitetura de sistemas operacionais Capítulo 11 Francis Berenger Machado Luiz Paulo Maia 5 edição Referência
Envie sua pergunta para a IA e receba a resposta na hora
Recomendado para você
74
Algebra Booleana e Circuitos Lógicos Digitais - Teoria e Aplicações
Arquitetura de Computadores
UNIFACS
3
Atividades Práticas de Simulação com Escalonamento Circular no SOsim
Arquitetura de Computadores
UNIFACS
23
Introdução aos Processos em Sistemas Operacionais
Arquitetura de Computadores
UNIFACS
27
Sistemas de Numeração: Fundamentos e Representação da Informação
Arquitetura de Computadores
UNIFACS
1
Links da Aula LMC - Versão WEB e Tutorial
Arquitetura de Computadores
UNIFACS
19
Estrutura dos Sistemas Operacionais - Parte 03
Arquitetura de Computadores
UNIFACS
81
Assembly Language Tutorial - Simply Easy Learning
Arquitetura de Computadores
UNIFACS
33
Comunicação entre Processos e Sincronização em Sistemas Operacionais
Arquitetura de Computadores
UNIFACS
22
Gerência de Dispositivos em Sistemas Operacionais
Arquitetura de Computadores
UNIFACS
29
Escalonamento de Processos em Sistemas Operacionais
Arquitetura de Computadores
UNIFACS
Texto de pré-visualização
Sistemas de Arquivos Sistemas Operacionais Prof Eduardo Xavier Um processo deve ser capaz de ler e gravar de forma permanente grande volume de dados em dispositivos além de poder compartilhálos com outros processos A maneira pela qual o sistema operacional estrutura e organiza estas informações é por intermédio da implementação de arquivos 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 responsável por essa gerência é denominada sistema de arquivos Introdução Um arquivo é constituído por informações logicamente relacionadas Estas informações podem representar instruções ou dados Na realidade um arquivo é um conjunto de registros definidos pelo sistema de arquivos tornando seu conceito abstrato e generalista Arquivos A organização de arquivos consiste em como os seus dados estão internamente armazenados A estrutura dos dados pode variar em função do tipo de informação contida no arquivo Arquivostextos possuem propósitos completamente distintos de arquivos executáveis consequentemente estruturas diferentes podem adequarse melhor a um tipo do que a outro No momento da criação de um arquivo seu criador pode definir qual a organização adotada Esta organização pode ser uma estrutura suportada pelo sistema operacional ou definida pela própria aplicação Organização de Arquivos Alguns sistemas operacionais possuem diferentes organizações de arquivos Neste caso cada arquivo criado deve seguir um modelo suportado pelo sistema de arquivos As organizações mais conhecidas e implementadas são a sequencial a relativa e a indexada Nestes tipos de organização podemos visualizar um arquivo como um conjunto de registros Os registros podem ser classificados em registros de tamanho fixo quando possuírem sempre o mesmo tamanho ou registros de tamanho variável Organização de Arquivos Organização de Arquivos Em função de como o arquivo está organizado o sistema de arquivos pode recuperar registros de diferentes maneiras Inicialmente nos primeiros sistemas operacionais 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 Este tipo de acesso era chamado de acesso sequencial Com o advento dos discos magnéticos foi possível a introdução de métodos de acesso mais eficientes Métodos de Acesso O primeiro a surgir foi o acesso direto que permite a leituragravação de um registro diretamente na sua posição Este método é realizado através do número do registro que é a sua posição relativa ao início do arquivo No acesso direto não existe restrição à ordem em que os registros são lidos ou gravados sendo sempre necessária a especificação do número do registro É importante notar que o acesso direto somente é possível quando o arquivo é definido com registros de tamanho fixo Métodos de Acesso Organização de Arquivos O acesso direto pode ser combinado com o acesso sequencial Com isso é possível acessar diretamente um registro qualquer de um arquivo e a partir deste acessar sequencialmente os demais Um método de acesso mais sofisticado que tem como base o acesso direto é o chamado acesso indexado ou acesso por chave Para este acesso o arquivo deve possuir uma área de índice onde existam ponteiros para os diversos registros Sempre que a aplicação desejar acessar um registro deverá ser especificada uma chave através da qual o sistema pesquisará na área de índice o ponteiro correspondente A partir desta informação é realizado um acesso direto ao registro desejado Métodos de Acesso O sistema de arquivos disponibiliza um conjunto de rotinas que permite às aplicações realizarem operações de ES como tradução de nomes em endereços leitura e gravação de dados e criaçãoeliminação de arquivos Na realidade as rotinas de ES têm como função disponibilizar uma interface simples e uniforme entre a aplicação e os diversos dispositivos Operações de EntradaSaída Tabela 112 Rotinas de entradasaída Cada arquivo possui informações de controle denominadas atributos Os atributos variam dependendo do sistema de arquivos porém alguns como tamanho do arquivo proteção identificação do criador e data de criação estão presentes em quase todos os sistemas Alguns atributos especificados na criação do arquivo não podem ser modificados em função de sua própria natureza como organização e datahora de criação Outros são alterados pelo próprio sistema operacional como tamanho e datahora do último backup realizado Existem ainda atributos que podem ser modificados pelo próprio usuário como proteção do arquivo tamanho máximo e senha de acesso Atributos O diretório é uma estrutura de dados que contém entradas associadas aos arquivos em que cada entrada armazena 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 sobre atributos e localização 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 É importante que ao término do uso de arquivos estes sejam fechados ou seja que se libere o espaço na tabela de arquivos abertos Diretórios A implementação mais simples de uma estrutura de diretórios é chamada de nível único singlelevel directory Neste caso somente existe um único diretório contendo todos os arquivos do disco Este modelo é 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 Diretórios Uma evolução do modelo de nível único foi a implementação de uma estrutura em que para cada usuário existiria um diretório particular denominado User File Directory UFD 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 Nesta abordagem deve haver um nível de diretório adicional para controlar os diretórios individuais dos usuários Este nível denominado Master File Directory MFD é indexado pelo nome do usuário e nele cada entrada aponta para o diretório pessoal Diretórios Sob o ponto de vista do usuário a organização dos seus arquivos em um único diretório não permite uma organização adequada A extensão do modelo de dois níveis para um de múltiplos níveis permitiu que os arquivos fossem logicamente mais bem organizados Este novo modelo chamado estrutura de diretórios em árvore tree structured directory é adotado pela maioria dos sistemas Na estrutura em árvore cada usuário pode criar diversos níveis de diretórios também chamados subdiretórios Cada diretório pode conter arquivos ou outros diretórios O número de níveis de uma estrutura em árvore é dependente do sistema de arquivos de cada sistema operacional Diretórios 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 utilizandose alguma estrutura de dados que armazena informações que possibilitam ao sistema de arquivos gerenciar o espaço livre do disco Nesta estrutura geralmente uma lista ou tabela é 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 de espaços livres Gerência de Espaço Livre em Disco A forma mais simples de implementar uma estrutura de espaços livres é através de uma tabela denominada mapa de bits bit map Cada entrada na tabela é associada a um bloco do disco representado por um bit podendo assumir valor igual a 0 indicando bloco livre ou 1 indicando bloco alocado O principal problema desta solução é o gasto excessivo de memória já que para cada bloco do disco deve existir uma entrada na tabela Gerência de Espaço Livre em Disco Uma segunda maneira de realizar este controle é com uma estrutura de lista encadeada de todos os blocos livres do disco Para que isto seja possível 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 de forma encadeada Este esquema apresenta algumas restrições se considerarmos que além do espaço utilizado no bloco com informação de controle o algoritmo de busca de espaço livre sempre deve realizar uma pesquisa sequencial na lista Gerência de Espaço Livre em Disco Outra solução 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 Com base neste conceito é possível manter uma tabela com o endereço do primeiro bloco de cada segmento e o número de blocos livres contíguos que se seguem Esta técnica de gerência de espaço livre é conhecida como tabela de blocos livres Gerência de Espaço Livre em Disco Da mesma forma que o sistema operacional gerencia os espaços livres no disco a gerência dos espaços alocados aos arquivos é de fundamental importância em um sistema de arquivos Gerência de ALOCAÇÃO de Espaço Disco 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 através do endereço do primeiro bloco e da sua extensão em blocos O acesso a arquivos é bastante simples tanto para a forma sequencial quanto para a direta Seu principal problema é a alocação de espaço livre para novos arquivos 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 Gerência de ALOCAÇÃO de Espaço Disco Alocação Contígua Gerência de ALOCAÇÃO de Espaço Disco Alocação Contígua continuação Caso exista mais de um segmento livre disponível com o tamanho exigido como escolher Firstfit O primeiro segmento livre com tamanho suficiente para alocar o arquivo é selecionado Bestfit Seleciona o menor segmento livre disponível com tamanho suficiente para armazenar o arquivo Exige uma busca em toda a lista para a seleção do segmento ou a lista deve ser ordenada por tamanho Worstfit O maior segmento é alocado Mais uma vez a busca em toda a lista se faz necessária a menos que exista uma ordenação por tamanho Gerência de ALOCAÇÃO de Espaço Disco Alocação Contígua continuação Caso exista mais de um segmento livre disponível com o tamanho exigido como escolher Firstfit O primeiro segmento livre com tamanho suficiente para alocar o arquivo é selecionado Bestfit Seleciona o menor segmento livre disponível com tamanho suficiente para armazenar o arquivo Exige uma busca em toda a lista para a seleção do segmento ou a lista deve ser ordenada por tamanho Worstfit O maior segmento é alocado Mais uma vez a busca em toda a lista se faz necessária a menos que exista uma ordenação por tamanho Gerência de ALOCAÇÃO de Espaço Disco Alocação Contígua continuação Independentemente da estratégia utilizada a alocação contígua apresenta um problema chamado fragmentação dos espaços livres O problema da fragmentação pode ser contornado através de rotinas de desfragmentação Gerência de ALOCAÇÃO de Espaço Disco Alocação Encadeada Na alocação encadeada um arquivo pode ser organizado como um conjunto de blocos ligados logicamente no disco independente da sua localização física Cada bloco deve possuir um ponteiro para o bloco seguinte do arquivo e assim sucessivamente A alocação encadeada só permite que se realize acesso sequencial aos blocos dos arquivos Além disso essa técnica desperdiça espaço nos blocos com o armazenamento de ponteiros Gerência de ALOCAÇÃO de Espaço Disco Alocação Encadeada Gerência de ALOCAÇÃO de Espaço Disco Alocação Encadeada continuação A fragmentação dos espaços livres apresentada no método anterior não ocasiona nenhum problema na alocação encadeada pois os blocos livres alocados para um arquivo não precisam necessariamente estar contíguos O que ocorre neste método é a fragmentação de arquivos que é a quebra do arquivo em diversos pedaços denominados extents Isso aumenta o tempo de acesso aos arquivos Para otimizar o tempo das operações de ES neste tipo de sistema é importante que o disco seja periodicamente desfragmentado Gerência de ALOCAÇÃO de Espaço Disco Alocação Indexada A alocação indexada soluciona uma das principais limitações da alocação encadeada que é a impossibilidade do acesso direto aos blocos dos arquivos O princípio desta técnica é manter os ponteiros de todos os blocos do arquivo em uma única estrutura denominada bloco de índice A alocação indexada além de permitir o acesso direto aos blocos do arquivo não utiliza informações de controle nos blocos de dados como existente na alocação encadeada Gerência de ALOCAÇÃO de Espaço Disco Alocação Indexada Gerência de ALOCAÇÃO de Espaço Disco Em geral o tipo de acesso a arquivos é implementado mediante a concessão ou não dos diferentes acessos que podem ser realizados como leitura read gravação write execução execute e eliminação delete O controle de acesso às operações realizadas com diretórios possui diferenças em relação às operações com arquivos Controle da criaçãoeliminação de arquivos nos diretórios visualização do seu conteúdo e eliminação do próprio diretório são operações que também devem ser protegidas Existem diferentes mecanismos e níveis de proteção cada qual com suas vantagens e desvantagens para cada tipo de sistema um modelo é mais adequado do que outro Proteção de Acesso Senhas de Acesso O controle de acesso se resume ao usuário ter o conhecimento da senha e consequentemente ter a liberação do acesso ao arquivo concedida pelo sistema Como cada arquivo possui apenas uma senha o acesso é liberado ou não na sua totalidade Isto significa que não é possível determinar quais tipos de operação podem ou não ser concedidas Outra desvantagem deste método é a dificuldade de compartilhamento de arquivos pois além do dono do arquivo todos os demais usuários teriam que conhecer a senha de acesso Proteção de Acesso Grupos de Usuários Este tipo de proteção tem como princípio a associação de cada usuário do sistema a um grupo Os grupos de usuários são organizados logicamente com o objetivo de compartilhar arquivos e diretórios os usuários que desejam compartilhar arquivos entre si devem pertencer a um mesmo grupo Esse mecanismo implementa três níveis de proteção ao arquivo owner dono group grupo e all todos Na criação do arquivo o usuário especifica como o arquivo deve ser acessado em cada nível Nessa especificação é necessário associar o tipo de acesso leitura escrita execução e eliminação aos três níveis de proteção Proteção de Acesso Lista de Controle de Acesso Consiste em uma lista associada a cada arquivo onde são especificados quais os usuários e os tipos de acesso permitidos Nesse caso quando um usuário tenta acessar um arquivo o sistema operacional verifica se a lista de controle autoriza a operação desejada O tamanho dessa estrutura de dados pode ser bastante extenso se considerarmos que um arquivo pode ter seu acesso compartilhado por diversos usuários Existe um overhead adicional devido à pesquisa sequencial que o sistema deverá realizar na lista sempre que um acesso for solicitado Proteção de Acesso Proteção de Acesso Com o objetivo de minimizar o tempo de acesso das operações de ES a maioria dos sistemas de arquivos implementa uma técnica denominada buffer cache Neste esquema o sistema operacional reserva uma área da memória para que se tornem disponíveis caches utilizados em operações de acesso ao disco Como existe uma limitação no tamanho do cache cada sistema adota políticas para substituição de blocos como a FIFO ou a LRU Implementação de Caches Diretórios Apesar de esta implementação melhorar o desempenho do sistema aspectos de segurança devem ser levados em consideração No caso de blocos de dados permanecerem por um longo período de tempo na memória principal a ocorrência de problemas de energia pode ocasionar a perda de tarefas já realizadas e consideradas já salvas em disco Existem duas maneiras distintas de tratar este problema O SO executa uma rotina periodicamente atualizando em disco todos os blocos modificados do cache menos ES e mais risco Toda vez que um bloco do cache for modificado deve ocorrer uma atualização no disco writethrough caches mais ES Implementação de Caches Diretórios Arquitetura de sistemas operacionais Capítulo 11 Francis Berenger Machado Luiz Paulo Maia 5 edição Referência