Como o sistema operacional gerencia os arquivos?

Atualizámos a nossa política de privacidade de modo a estarmos em conformidade com os regulamentos de privacidade em constante mutação a nível mundial e para lhe fornecer uma visão sobre as formas limitadas de utilização dos seus dados.

Pode ler os detalhes abaixo. Ao aceitar, está a concordar com a política de privacidade atualizada.

Obrigado!

Ver política de privacidade atualizada

Encontrámos um problema, por favor tente novamente.

1 GERÊNCIA DE ARQUIVOS AULA 13 Sistemas Operacionais Gil Eduardo de Andrade O conteúdo deste documento é baseado no livro do Prof. Dr. Carlos Alberto Maziero, disponível no link: Introdução Um sistema operacional tem por finalidade permitir que os usuários do computador executem aplicações, como editores de texto, jogos, reprodutores de áudio e vídeo. Essas aplicações processam informações como textos, músicas e filmes, armazenados sob a forma de arquivos em um disco rígido ou outro meio. Este aula apresenta a noção de arquivo, suas principais características e formas de acesso, a organização de arquivos em diretórios e as técnicas usadas para criar e gerenciar arquivos nos dispositivos de armazenamento. Arquivos Desde os primórdios da computação, percebeu-se a necessidade de armazenar informações para uso posterior, como programas e dados. Hoje, parte importante do uso de um computador consiste em recuperar e apresentar informações previamente armazenadas, como documentos, fotografias, músicas e vídeos. O próprio sistema operacional também precisa manter informações armazenadas para uso posterior, como programas, bibliotecas e configurações. Geralmente essas informações devem ser armazenadas em um dispositivo não volátil, que preserve seu conteúdo mesmo quando o computador estiver desligado. Para simplificar o armazenamento e busca de informações, surgiu o conceito de arquivo, que será discutido a seguir. O conceito de Arquivos Um arquivo é basicamente um conjunto de dados armazenados em um dispositivo físico não volátil, com um nome ou outra referência que permita sua localização posterior. Do ponto de vista do usuário e das aplicações, o arquivo é a unidade básica de armazenamento de informação em um dispositivo não volátil, pois para eles não há forma mais simples de armazenamento persistente de dados. Arquivos são extremamente versáteis em conteúdo e capacidade: podem conter desde um texto ASCII com alguns bytes até sequências de vídeo com dezenas de gigabytes, ou mesmo mais. Como um dispositivo de armazenamento pode conter milhões de arquivos, estes são organizados em estruturas hierárquicas denominadas diretórios (conforme ilustrado na figura 01). A organização física e lógica dos arquivos e diretórios dentro de um dispositivo é denominada sistema de arquivos. Um sistema de arquivos pode ser visto como uma imensa estrutura de dados armazenada de forma persistente em um dispositivo físico. Existe um grande número de sistemas de arquivos, dentre os quais podem ser citados o NTFS (nos sistemas Windows), Ext2/Ext3/Ext4 (Linux), HPFS (MacOS), FFS (Solaris) e FAT (usado em pendrives USB, máquinas fotográficas digitais e leitores MP3). Atributos Conforme apresentado, um arquivo é uma unidade de armazenamento de informações que podem ser dados, código executável, entre outros. Cada arquivo é caracterizado por um conjunto de atributos, que podem variar de acordo com o sistema de arquivos utilizado. Os atributos mais usuais são: Nome: string de caracteres que identifica o arquivo para o usuário, como foto1.jpg, relatório.pdf e hello.c ;

2 Tipo: indicação do formato dos dados contidos no arquivo, como áudio, vídeo, imagem e texto. Muitos sistemas operacionais usam parte do nome do arquivo para identificar o tipo de seu conteúdo, na forma de uma extensão:.doc,.jpg e.mp3 ; Tamanho: indicação do tamanho do conteúdo do arquivo, em bytes ou registros; Datas: para fins de gerência, é importante manter as datas mais importantes relacionadas ao arquivo, como suas datas de criação, de último acesso e de última modificação do conteúdo; Proprietário: em sistemas multiusuários, cada arquivo tem um proprietário, que deve estar corretamente identificado; Permissões de acesso: indicam que usuários têm acesso àquele arquivo e que formas de acesso são permitidas (leitura, escrita, remoção, etc.); Localização: indicação do dispositivo físico onde o arquivo se encontra e da posição do arquivo dentro do mesmo; Outros atributos: vários outros atributos podem ser associados a um arquivo, por exemplo para indicar se é um arquivo de sistema, se está visível aos usuários, se tem conteúdo binário ou textual, etc. Cada sistema de arquivos normalmente define seus próprios atributos específicos, além dos atributos usuais. Figura 01: Arquivos organizados em diretórios dentro de um dispositivo. Operações As aplicações e o sistema operacional usam arquivos para armazenar e recuperar dados. O uso dos arquivos é feito através de um conjunto de operações, geralmente implementadas sob a forma de chamadas de sistema e funções de bibliotecas. As operações básicas envolvendo arquivos são: Criar: a criação de um novo arquivo implica em alocar espaço para ele no dispositivo

3 de armazenamento e definir seus atributos (nome, localização, proprietário, permissões de acesso, etc.); Abrir: antes que uma aplicação possa ler ou escrever dados em um arquivo, ela deve solicitar ao sistema operacional a abertura desse arquivo. O sistema irá então verificar se o arquivo existe, verificar se as permissões associadas ao arquivo permitem aquele acesso, localizar seu conteúdo no dispositivo de armazenamento e criar uma referência para ele na memória da aplicação; Ler: permite transferir dados presentes no arquivo para uma área de memória da aplicação; Escrever: permite transferir dados na memória da aplicação para o arquivo no dispositivo físico; os novos dados podem ser adicionados no final do arquivo ou sobrescrever dados já existentes; Mudar atributos: para modificar outras características do arquivo, como nome, localização, proprietário, permissões, etc. Fechar: ao concluir o uso do arquivo, a aplicação deve informar ao sistema operacional que o mesmo não é mais necessário, a fim de liberar as estruturas de gerência do arquivo na memória do núcleo; Remover: para eliminar o arquivo do dispositivo, descartando seus dados e liberando o espaço ocupado por ele. Além dessas operações básicas, outras operações podem ser definidas, como truncar, copiar, mover ou renomear arquivos. Todavia, essas operações geralmente podem ser construídas usando as operações básicas. Formatos Em sua forma mais simples, um arquivo contém basicamente uma sequência de bytes, que pode estar estruturada de diversas formas para representar diferentes tipos de informação. O formato ou estrutura interna de um arquivo pode ser definido e reconhecido pelo núcleo do sistema operacional ou somente pelas aplicações. O núcleo do sistema geralmente reconhece apenas alguns poucos formatos de arquivos, como binários executáveis e bibliotecas. Os demais formatos de arquivos são vistos pelo núcleo apenas como sequências de bytes sem um significado específico, cabendo às aplicações interpretá-los. Os arquivos de dados convencionais são estruturados pelas aplicações para armazenar os mais diversos tipos de informações, como imagens, sons e documentos. Uma aplicação pode definir um formato próprio de armazenamento ou seguir formatos padronizados. Por exemplo, há um grande número de formatos públicos padronizados para o armazenamento de imagens, como JPEG, GIF, PNG e TIFF, mas também existem formatos de arquivos proprietários, definidos por algumas aplicações específicas, como o formato PSD (do editor Adobe Photoshop) e o formato XCF (do editor gráfico GIMP). A adoção de um formato proprietário ou exclusivo dificulta a ampla utilização das informações armazenadas, pois somente aplicações que reconheçam aquele formato conseguem ler corretamente as informações contidas no arquivo. Arquivos de texto Um tipo de arquivo de uso muito frequente é o arquivo de texto puro (ou plain text). Esse tipo de arquivo é muito usado para armazenar informações textuais simples, como códigos-fonte de programas, arquivos de configuração, páginas HTML, dados em XML, etc. Um arquivo de

4 texto é formado por linhas de caracteres ASCII de tamanho variável, separadas por caracteres de controle. Nos sistemas UNIX, as linhas são separadas por um caractere New Line (ASCII 10 ou \n ). Já nos sistemas DOS/Windows, as linhas de um arquivo de texto são separadas por dois caracteres: o caractere Carriage Return (ASCII 13 ou \r ) seguido do caractere New Line. Por exemplo, considere o seguinte programa em C armazenado em um arquivo hello.c (os caracteres ս indicam espaços em branco): O arquivo de texto hello.c seria armazenado da seguinte forma2 em um ambiente UNIX: Por outro lado, o mesmo arquivo hello.c seria armazenado da seguinte forma em um sistema DOS/Windows: Essa diferença na forma de representação da separação entre linhas pode provocar problemas em arquivos de texto transferidos entre sistemas Windows e UNIX, caso não seja feita a devida conversão. Arquivos Especiais O conceito de arquivo é ao mesmo tempo simples e poderoso, o que motivou sua utilização de forma quase universal. Além do armazenamento de código e dados, arquivos também podem ser usados como: Abstração de dispositivos de baixo nível: os sistemas UNIX costumam mapear as interfaces de acesso de vários dispositivos físicos em arquivos dentro do diretório /dev

5 (de devices), como por exemplo: /dev/ttys0: porta de comunicação serial COM1; /dev/audio: placa de som; /dev/sda1: primeira partição do primeiro disco SCSI (ou SATA). Abstração de interfaces do núcleo: em sistemas UNIX, os diretórios /proc e /sys permitem consultar e/ou modificar informações internas do núcleo do sistema operacional, dos processos em execução e dos drivers de dispositivos. Por exemplo, alguns arquivos oferecidos pelo Linux: /proc/cpuinfo: informações sobre os processadores disponíveis no sistema; /proc/3754/maps: disposição das áreas de memória alocadas para o processo cujo identificador (PID) é 3754; /sys/block/sda/queue/scheduler: definição da política de escalonamento de disco a ser usada no acesso ao disco /dev/sda. Canais de comunicação: na família de protocolos de rede TCP/IP, a metáfora de arquivo é usada como interface para os canais de comunicação: uma conexão TCP é apresentada aos dois processos envolvidos como um arquivo, sobre o qual eles podem escrever (enviar) e ler (receber) dados entre si. Vários mecanismos de comunicação local entre processos de um sistema também usam a metáfora do arquivo, como é o caso dos pipes em UNIX. Em alguns sistemas operacionais experimentais, como o Plan 9 [Pike et al., 1993, Pike et al., 1995] e o Inferno [Dorward et al., 1997], todos os recursos e entidades físicas e lógicas do sistema são mapeadas sob a forma de arquivos: processos, threads, conexões de rede, usuários, sessões de usuários, janelas gráficas, áreas de memória alocadas, etc. Assim, para finalizar um determinado processo, encerrar uma conexão de rede ou desconectar um usuário, basta remover o arquivo correspondente. Organização de Volumes Um computador normalmente possui um ou mais dispositivos para armazenar arquivos, que podem ser discos rígidos, discos óticos (CD-ROM, DVD-ROM) e discos de estado sólido (baseados em memória flash, como pendrives USB). Um disco rígido pode ser visto basicamente como um grande vetor de blocos de bytes. Esses blocos de dados, também denominados setores, têm tamanho fixo geralmente entre 512 e bytes e são numerados sequencialmente. As operações de leitura e escrita de dados nesses dispositivos são feitas bloco a bloco, por essa razão esses dispositivos são chamados dispositivos de blocos (block devices). Em um computador no padrão PC, o espaço de armazenamento de cada dispositivo é dividido em uma pequena área inicial de configuração e uma ou mais partições, que podem ser vistas como espaços independentes. A área de configuração é denominada MBR - Master Boot Record, e contém uma tabela de partições com informações sobre o particionamento do dispositivo. Além disso, contém também um pequeno código executável, usado no processo de inicialização do sistema operacional. No início de cada partição geralmente há um bloco reservado, utilizado para a descrição do conteúdo daquela partição e para armazenar o código de lançamento do sistema operacional, se for uma partição inicializável (bootable partition). Esse bloco reservado é denominado bloco de inicialização ou VBR - Volume Boot Record. O restante dos blocos da partição está disponível para o armazenamento de arquivos. A figura 02 ilustra a organização básica do espaço de armazenamento em um dispositivo de blocos típico: um disco rígido.

6 Figura 02: Organização em partições de um disco rígido típico. Cada partição deve ser formatada, ou seja, estruturada para conter um sistema de arquivos, que pode conter arquivos, diretório, atalhos e outras entradas. Cada dispositivo ou partição devidamente preparado e formatado para receber um sistema de arquivos é designado como um volume. Diretórios A quantidade de arquivos em um sistema atual pode ser muito grande, chegando facilmente a milhões deles em um computador desktop típico, e muito mais em servidores. Embora o sistema operacional possa tratar facilmente essa imensa quantidade de arquivos, essa tarefa não é tão simples para os usuários: identificar e localizar de forma inequívoca um arquivo específico em meio a milhões de outros arquivos pode ser impraticável. Para permitir a organização de arquivos dentro de uma partição, são usados diretórios. Um diretório, também chamado de pasta (folder), representa um contêiner de informações, que pode conter arquivos ou mesmo outros diretórios. Da mesma forma que os arquivos, diretórios têm nome e atributos, que são usados na localização e acesso aos arquivos neles contidos. O uso de diretórios permite construir uma estrutura hierárquica (em árvore) de armazenamento dentro de um volume, sobre a qual os arquivos são distribuídos.

7 Figura 03: Estrutura de diretórios típica de um sistema Linux. Os primeiros sistemas de arquivos implementavam apenas o diretório raiz, que continha todos os arquivos do volume. Posteriormente, ofereceram sub-diretórios, ou seja, um nível de diretórios abaixo do diretório raiz. Os sistemas atuais oferecem uma estrutura muito mais flexível, com um número de níveis de diretórios muito mais elevado, ou mesmo ilimitado (como no NTFS e no Ext3). A implementação de diretórios é relativamente simples: um diretório é implementado como um arquivo estruturado, cujo conteúdo é uma relação de entradas. Figura 04: Implementação de uma estrutura de diretórios. A relação de entradas em um diretório, também chamada de índice do diretório, pode ser implementada como uma lista linear, como no caso do MS-DOS e do Ext2 (Linux) ou como algum tipo de tabela hash ou árvore, o que é feito no NTFS e no Ext3, entre outros. A implementação em lista linear é mais simples, mas tem baixo desempenho. A implementação em tabela hash ou árvore provê um melhor desempenho quando é necessário percorrer a estrutura de diretórios em busca de arquivos, o que ocorre frequentemente. Montagem de Volumes Para que o sistema operacional possa acessar o sistema de arquivos presente em um determinado volume, ele deve ler os dados presentes em seu bloco de inicialização, que descrevem o tipo de sistema de arquivos presente, e criar as estruturas em memória que representam esse volume dentro do núcleo. Além disso, ele deve definir um identificador para o volume, de forma que os processos possam acessar seus arquivos. Esse procedimento é

8 denominado montagem do volume, e seu nome vem do tempo em que era necessário montar fisicamente os discos rígidos ou fitas magnéticas nos leitores, antes de poder acessar seus dados. O procedimento oposto, a desmontagem, consiste em fechar todos os arquivos abertos no volume e remover as estruturas de memória usadas para gerenciá-lo. A montagem é um procedimento frequente no caso de mídias móveis, como CD-ROMs, DVD-ROMs e pendrives USB. Neste caso, a desmontagem do volume inclui também ejetar a mídia (CD, DVD) ou avisar o usuário que ela pode ser removida (discos USB). Ao montar um volume, deve-se fornecer aos processos e usuários uma referência para seu acesso, denominada ponto de montagem (mounting point). Sistemas UNIX normalmente definem os pontos de montagem de volumes como posições dentro da árvore principal do sistema de arquivos. Dessa forma, há um volume principal, montado durante a inicialização do sistema operacional, onde normalmente reside o próprio sistema operacional e que define a estrutura básica da árvore de diretórios. Os volumes secundários são montados como subdiretórios na árvore do volume principal, através do comando mount. A figura 05 apresenta um exemplo de montagem de volumes em plataformas UNIX. Nessa figura, o disco rígido 1 contém o sistema operacional e foi montado como raiz da árvore de diretórios durante a inicialização do sistema. O disco rígido 2 contém os diretórios de usuários e seu ponto de montagem é o diretório /home. Já o diretório /media/cdrom é o ponto de montagem de uma mídia removível (CD-ROM), com sua árvore de diretórios própria. Figura 05: Montagem de volumes em UNIX. Em sistemas de arquivos de outras plataformas, como DOS e Windows, é comum definir cada volume montado como um disco lógico distinto, chamado simplesmente de disco ou drive e identificado por uma letra ( A:, C:, D:, etc.). Todavia, o sistema de arquivos NTFS do Windows também permite a montagem de volumes como subdiretórios, da mesma forma que o UNIX. Sistema de Arquivos Vários problemas importantes devem ser resolvidos na construção de um sistema de arquivos, que vão do acesso de baixo nível aos dispositivos físicos de armazenamento à implementação da interface de acesso a arquivos para os programadores. Na implementação de

9 um sistema de arquivos, considera-se que cada arquivo possui dados e meta-dados. Os dados de um arquivo são o seu conteúdo em si (uma música, uma fotografia, um documento ou uma planilha); por outro lado, os meta-dados do arquivo são seus atributos (nome, datas, permissões de acesso, etc) e todas as informações de controle necessárias para localizar e manter seu conteúdo no disco. Arquitetura Real Os principais elementos que constituem a gerência de arquivos estão organizados em camadas, conforme apresentado na figura 06. No nível mais baixo dessa arquitetura estão os dispositivos de armazenamento, como discos rígidos ou bancos de memória flash, responsáveis pelo armazenamento dos dados e meta-dados dos arquivos. Esses dispositivos são acessados através de controladores, que são circuitos eletrônicos dedicados ao controle e interface dos dispositivos. A interface entre controladores e dispositivos de armazenamento segue padrões como SATA, ATAPI, SCSI, USB e outros. Figura 06: Camadas da implementação da gerência de arquivos. Os controladores de dispositivos são configurados e acessados pelo núcleo do sistema operacional através de drivers de dispositivos, que são componentes de software capazes de interagir com os controladores. Os drivers usam portas de entrada/saída, interrupções e canais de acesso direto à memória (DMA) para interagir com os controladores e realizar as operações de controle e de entrada/saída de dados. Como cada controlador define sua própria interface,

10 também possui um driver específico. Os drivers ocultam essas interfaces e fornecem às camadas superiores do núcleo uma interface padronizada para acesso aos dispositivos de armazenamento. Desta forma, os detalhes tecnológicos e particularidades de cada dispositivo são isolados, tornando o restante do sistema operacional independente da tecnologia subjacente. Acima dos drivers está a camada de gerência de blocos, que gerencia o fluxo de blocos de dados entre a memória e os dispositivos de armazenamento. É importante lembrar que os discos são dispositivos orientados a blocos, ou seja, as operações de leitura e escrita de dados são sempre feitas com blocos de dados, e nunca com bytes individuais. As funções mais importantes desta camada são efetuar o mapeamento de blocos lógicos nos blocos físicos do dispositivo, oferecer às camadas superiores a abstração de cada dispositivo físico como sendo um imenso vetor de blocos lógicos, independente de sua configuração real, e também efetuar o caching/buffering de blocos. A seguir está a camada de alocação de arquivos, que tem como função principal alocar os arquivos sobre os blocos lógicos oferecidos pela gerência de blocos. Cada arquivo é visto como uma sequência de blocos lógicos que deve ser armazenada nos blocos dos dispositivos de forma eficiente, robusta e flexível. Acima da alocação de arquivos está o sistema de arquivos virtual (VFS - Virtual File System), que provê uma interface de acesso a arquivos independente dos dispositivos físicos e das estratégias de alocação de arquivos empregadas pelas camadas inferiores. O sistema de arquivos virtual normalmente gerencia as permissões associadas aos arquivos e as travas de acesso compartilhado, além de construir as abstrações de diretórios e atalhos. Outra responsabilidade importante desta camada é manter informações sobre cada arquivo aberto pelos processos, como a posição da última operação no arquivo, o modo de abertura usado e o número de processos que estão usando o arquivo. A interface de acesso ao sistema de arquivos virtual é oferecida aos processos através de um conjunto de chamadas de sistema. Finalmente, as bibliotecas de entrada/saída usam as chamadas de sistema oferecidas pelo sistema operacional para construir funções padronizadas de acesso a arquivos para cada linguagem de programação. Blocos Físicos e Lógicos Um dos aspectos mais importantes dos sistemas de arquivos é a forma como o conteúdo dos arquivos é disposto dentro do disco rígido ou outro dispositivo de armazenamento secundário. Conforme visto anteriormente, um disco rígido pode ser visto como um conjunto de blocos de tamanho fixo (geralmente de 512 bytes). Os blocos do disco rígido são normalmente denominados blocos físicos. Como esses blocos são pequenos, o número de blocos físicos em um disco rígido recente pode ser imenso: um disco rígido de 250 GBytes contém mais de 500 milhões de blocos físicos! Para simplificar a gerência dessa quantidade de blocos físicos e melhorar o desempenho das operações de leitura/escrita, os sistemas operacionais costumam trabalhar com blocos lógicos ou clusters, que são grupos de 2n blocos físicos consecutivos. Blocos lógicos com 4K, 8K, 16K e 32K bytes são frequentemente usados. A maior parte das operações e estruturas de dados definidas nos discos pelos sistemas operacionais são baseadas em blocos lógicos, que também definem a unidade mínima de alocação de arquivos e diretórios: cada arquivo ou diretório ocupa um ou mais blocos lógicos para seu armazenamento. O número de blocos físicos em cada bloco lógico de uma partição é definido pelo sistema operacional ao formatar a partição, em função de vários parâmetros, como o tamanho da partição, o sistema de arquivos usado e o tamanho das páginas de memória RAM. Blocos lógicos muito pequenos implicam em ter mais blocos a gerenciar e menos bytes transferidos em cada operação de leitura/escrita, o que tem impacto negativo sobre o desempenho do sistema. Por outro lado, blocos lógicos muito grandes podem levar à fragmentação interna: um arquivo com 200 bytes armazenado em um sistema de arquivos com blocos lógicos de bytes (32K) ocupará um bloco lógico, do qual bytes serão desperdiçados, pois ficarão alocados ao arquivo sem serem usados.

11 A fragmentação interna diminui o espaço útil do disco rígido, por isso deve ser evitada. Uma forma de evitá-la é escolher um tamanho de bloco lógico adequado ao tamanho médio dos arquivos a armazenar no disco, ao formatá-lo. Além disso, alguns sistemas de arquivos (como o UFS do Solaris e o ReiserFS do Linux) permitem a alocação de partes de blocos lógicos, através de técnicas denominadas fragmentos de blocos ou sub-alocação de blocos [Vahalia, 1996]. Caching de Entrada e Saída A funcionalidade de caching é muito importante para o desempenho das operações de leitura e escrita no sistema de arquivos. É possível fazer caching de leitura e de escrita. No caching de leitura (read caching), blocos de dados são mantidos em memória de acordo com uma política LRU (Least Recently Used), para acelerar leituras posteriores dos mesmos. No caching de escrita (write caching, também chamado buffering), dados a escrever no disco são mantidos em memória para leituras posteriores, ou para concentrar várias escritas pequenas em poucas escritas maiores (e mais eficientes). Quatro estratégias de caching são usuais: Read-behind: esta é a política mais simples, na qual somente os dados já lidos em requisições anteriores são mantidos em cache; outros acessos aos mesmos dados serão beneficiados pelo cache; Read-ahead: nesta política, ao atender uma requisição de leitura, são trazidos para o cache mais dados que os solicitados pela requisição; além disso, leituras de dados ainda não solicitados podem ser agendadas em momentos de ociosidade dos discos. Dessa forma, futuras requisições podem ser beneficiadas pela leitura antecipada dos dados. Essa política pode melhorar muito o desempenho de acesso sequencial a arquivos; Write-through: nesta política, ao atender uma requisição de escrita, uma cópia dos dados a escrever no disco é mantida em cache, para beneficiar possíveis leituras futuras desses dados; Write-back: nesta política, além de copiar os dados em cache, sua escrita efetiva no disco é adiada; esta estratégia melhora o desempenho de escrita de duas formas: por liberar mais cedo os processos que solicitam escritas (eles não precisam esperar pela escrita real no disco) e por concentrar as operações de escrita, gerando menos acessos a disco. Todavia, pode ocasionar perda de dados, caso ocorram erros de hardware ou falta de energia antes que os dados sejam efetivamente escritos no disco.

12 Figura 07: Estratégias de caching de blocos (t1 e t2 indicam dois instantes de tempo). Referências [Pike et al., 1995] Pike, R., Presotto, D., Dorward, S., Flandrena, B., Thompson, K., Trickey, H., andwinterbottom, P. (1995). Plan 9 from Bell Labs. Journal of Computing Systems, 8(3): [Pike et al., 1993] Pike, R., Presotto, D., Thompson, K., Trickey, H., andwinterbottom, P. (1993). The use of name spaces in Plan 9. Operating Systems Review, 27(2): [Dorward et al., 1997] Dorward, S., Pike, R., Presotto, D., Ritchie, D., Trickey, H., and Winterbottom, P. (1997). The Inferno operating system. Bell Labs Technical Journal, 2(1):5 18. [Vahalia, 1996] Vahalia, U. (1996). UNIX Internals The New Frontiers. Prentice-Hall.

Como funciona o gerenciamento de arquivos do sistema operacional?

Quando um arquivo é aberto o sistema de arquivos busca sua entrada na estrutura de diretórios e armazena a localização e nome do arquivo em uma tabela mantida na memória principal. Esta tabela mantem todos os arquivos abertos e é mantida em memória por questões de desempenho das operações de arquivos.

O que faz a gerência do sistema de arquivos?

O gerenciamento de arquivos tem como função: gerenciar espaços alocados, criar e deletar arquivos .exe, criar e deletar diretórios de memória swap, mapear arquivos em disco em massa, fazer a manipulação de arquivos e diretórios (directx, copyling, cding, etc).

O que o sistema operacional gerência?

Um sistema operacional é responsável pelo gerenciamento de todo o hardware do seu computador. É ele que vai diz, por exemplo, qual processo (programa em execução) poderá utilizar o processador e por quanto tempo. Outro papel do sistema operacional é garantir que um programa não interfira no outro.

Como funciona a organização de arquivos nos sistemas operacionais?

A maioria dos sistemas operacionais possuem seu próprio sistema de arquivos. O habitual é utilizar dispositivos de armazenamento de dados que permitem o acesso aos dados como uma corrente (cadeia) de blocos de um mesmo tamanho, às vezes chamados setores, usualmente de 512 bytes de largura.