Prévia do material em texto
TEMA 10: SISTEMA DE ARQUIVOS DISCIPLINA: SISTEMAS OPERACIONAIS MODERNOS PROFESSOR: MARIO A MONTEIRO APRESENTAÇÃO: Anteriormente nestes textos, foi explicado que os SO são organizações modulares, constituídos dos componentes (módulos) que administram (gerenciam) os diversos recursos que o usuário precisa de um sistema de computação. Entre esses recursos, cita-se o Processador (o SO é responsável pelas atividades de criar processos, alocar o processador aos processos e conduzir a alternância entre os processos em um ambiente de multiprogramação-assunto a ser apresentados nos textos dos Temas 6, 7 e 8), como também a Memória (o SO é responsável por alocar e desalocar e distribuir o espaço de armazenamento principal e secundário para os diversos processos em execução-assunto a ser apresentado nos textos dos Temas 9 e 10). Um dos recursos mais importantes que o SO administra refere-se a administração e uso das informações que são criadas e manipuladas pelos programas. Chama-se essas informações genericamente de Dados e a gerência desses dados pelo SO é realizada por um módulo conhecido como Sistema de Arquivos. Este texto apresenta alguns dos aspectos mais relevantes de Sistema de Arquivos, a saber: Conceito de Arquivo Organização de Arquivos Operações de E/S Alocação de espaço em disco Observações complementares Bons estudos! Ao final deste Conteúdo, você deve apresentar os seguintes aprendizados: Reconhecer os aspectos básicos do conceito de Arquivo e de Sistema de Arquivos Identificar as características de uma organização de arquivos Compreender os métodos de alocação de espaço em disco para armazenamento de arquivos. TEMA 10: SISTEMA DE ARQUIVOS DESCRIÇÃO DE ASPECTOS RELEVANTES DO ASSUNTO. Parte A: CONCEITO DE ARQUIVOS Tanto nesta disciplina de SO quanto em outras de TI, seja Arquitetura de Computadores ou de Programação, que se observa os objetivos dos computadores, como máquinas projetadas para manipular (processar, computar) informações. Esta manipulação segue sempre uma lógica, apropriada para solucionar os problemas do cotidiano, de forma rápida; esta lógica, conhecida como algoritmos, é codificada adequadamente para ser entendida pela máquina. A medida que a tecnologia foi evoluindo, essas informações a serem manipuladas (e que são conhecidos genericamente como DADOS), foram crescendo, em todo tipo de aplicação. Seja na indústria, para montagem ou fabricação ou manipulação de objetos, ou na vida comercial comum, em escritórios, bancos ou grandes corporações seja, na área de energia ou militar. No interior de um computador, todas as informações armazenadas ou processadas, estão sempre representadas por valores numéricos (códigos) binários e se enquadram em apenas duas categorias: INSTRUÇÕES ou DADOS No princípio da computação, os dados a serem manipulados por um programa estavam sempre associados a este programa; com passar do tempo, isso não pode permanecer desta forma em face do aumento da quantidade de dados a ser manipulada e, principalmente, com o surgimento da multiprogramação, com diversos programas e seus dados compartilhando a mesma memória finita e não tão grande quanto desejável. Além disso, esta memória de processamento (MP ou RAM0 é volátil e, desta forma, ao término do uso, os dados tendem a desaparecer. Em consequência desses fatores, pode-se resumir a ocorrência de alguns dos principais problemas encontrados pelos projetistas de sistemas e que levaram, naquela época, a se pesquisar e solucionar os referidos problemas com a criação de um conceito nos sistemas, chamado: ARQUIVO. A ideia que gerou a criação e desenvolvimento de Arquivos era a de dissociar os dados do programa que os utiliza, tornando esses dados independentes, os quais podem ser manipulados por diversas aplicações (multiprogramação) e permanecer íntegros, mesmo depois que o programa termine (pois antes eles poderiam desaparecer com o término do processamento). Por exemplo, em um sistema acadêmico, os dados de cada aluno de uma Instituição são organizados em conjuntos de registros (itens de informação, como nome, matrícula, endereço, etc.). Com a organização em Arquivos, esses dados podem ser manipulados de diversas formas: seja para atualizar informações cadastrais do aluno ou para incluir, excluir ou alterar graus, disciplinas, etc. Essa organização, então, TEMA 10: SISTEMA DE ARQUIVOS independe do programa; ela é individualmente tratada, sendo esse conceito uma das grandes vantagens da estrutura de um arquivo. Arquivo, então, é uma coleção de informações lógicas relacionadas (mesma afinidade, como as notas ou alunos de uma turma). O SO manipula os arquivos de todas as formas: criando ou excluindo, ou alterando para incluir ou excluir itens e gerenciando onde são armazenados e os atributos que podem possuir. Em resumo, esta atividade gerencial dos SO para manipulação de dados é um componente dos SO chamado SISTEMA DE ARQUIVOS. Um Arquivo pode conter diversos tipos de dados, caracterizando o arquivo em si: Dados com um específico objetivo (um conjunto de textos de um artigo, um trabalho escolar, contas de um banco, itens de um estoque de peças, etc. Informações de uma imagem (pixels) ou Som (pulsos PCM) ou Bits de um programa executável, já em linguagem binária de máquina ou pixels de uma imagem. Ainda sobre o conceito de Arquivos: Conforme já mencionado, um Arquivo é constituído por informações logicamente relacionadas, podendo representar instruções ou dados e pode ser armazenado em diferentes dispositivos físicos. São gerenciados pelo sistema operacional e é mediante a implementação de arquivos que o sistema operacional estrutura e organiza as informações (os dados). A parte do sistema responsável pela gerência é denominada sistema de arquivo que é a parte mais visível do sistema operacional, por ser uma atividade frequentemente realizada pelos usuários. Deste modo, a unidade básica de armazenamento de dados é o Arquivo, embora estes sejam organizados em itens (por exemplo, os graus de uma turma ou os itens de um estoque de um depósito). Os Arquivos, então, são unidades independentes, separando-se dos programas que os manipula; podem, desta forma, se manter armazenados, mesmo depois do término da execução do programa que manipulou com eles. Podem ser bem grandes, por estar armazenados em memória secundária (HDs ou outros dispositivos semelhantes), sendo trazidos em partes para MP (RAM) durante a execução de um programa. Cada Arquivo possui uma identificação para o usuário que o criou, chamado Nome (como os seres humanos). A partir do nome, o sistema de arquivos localiza e TEMA 10: SISTEMA DE ARQUIVOS manipula o conteúdo do arquivo. Naturalmente, as características de definição do nome de um Arquivo dependem do SO (do seu módulo gerenciados de dados - Sistema de Arquivos). Ao longo do tempo, os desenvolvedores e pesquisadores criaram diferentes tipos de Sistemas de Arquivo, cada um com suas características, parâmetros, capacidades, vantagens e desvantagens. Usualmente, estão associados a um fabricante de HW (como IBM, Apple ou SUN) ou desenvolvedor de SW (como Microsoft ou Google). Exemplos de Sistemas de Arquivo, cujos detalhes podem ser estudados pelos diversos textos e livros sobre o assunto: FAT (16 ou 32) – File Alocation Table (Windows) – Microsoft NTFS – new technology file system -Windows NT e seguintes) – Microsoft Ext-3 e ext-4– third and forth extend file system - (Linux) Android – Google APFS – Apple File System - Apple ORGANIZAÇÃO DE ARQUIVOS Conforme já vem sendo mencionado nos textos anteriores, SO variam de modelo para modelo, na forma de exercer a gerência dos recursos específicos de um módulo. Ou seja, o gerente de processos (doprocessamento) de um determinado SO pode usar técnicas de processamento em tempo compartilhado, enquanto outros usam processamento em tempo real. Desta mesma forma, a organização e operação do Sistema de Arquivo varia de SO para SO, não só devido a forma de gerenciamento dos Arquivos, mas também do tipo de arquivos gerenciados pelo específico SO. Um SO pode organizar internamente os dados em arquivos de uma maneira, enquanto outro organiza de maneira diferente, embora ambos realizem tarefas semelhantes, como cria um arquivo ou excluir um arquivo ou acrescentar e excluir itens individuais do arquivo. A forma de usar os dados de um arquivo influencia a organização dos mesmos. Uma aplicação que manipula textos usa arquivos de uma forma bem diversa de uma aplicação que usa arquivos de som ou imagem ou um código executável. A organização básica dos arquivos em um sistema consiste na forma pelo qual os dados são “arranjados” entre si e como o SO localiza um dado específico desejado pela aplicação em execução. TEMA 10: SISTEMA DE ARQUIVOS Atualmente, pode-se classificar arranjos de dados em arquivos de duas formas básicas: NÃO ESTRUTURADA ESTRUTURADA (suportada pelo SO) NÃO ESTRUTURADA A figura 1 mostra uma organização não estruturada de arquivos. Nesse formato, os dados são simplesmente arranjados de uma forma contínua de Bytes, sem nenhuma outra especificação. Essa forma de organização é bastante flexível, pois não se preocupa com a aplicação; pode ser um código executável ou um conjunto de caracteres de um texto ou ainda uma imagem. O SO não trata o conteúdo do arquivo, sendo essa uma tarefa da aplicação. Por outro lado, o SO não ajuda em nada na manipulação (ele desconhece seu significado). Em resumo: O sistema de arquivo não impõe estrutura lógica para os dados e não interfere nas operações realizadas, conforme mencionou-se linhas acima. Figura 1 – Exemplo de organização não estruturada Também já foi mencionado que é tarefa da aplicação conhecer a estrutura interna do arquivo e manipulá-la corretamente. Se algum programa (a aplicação) cometer um erro e a estrutura for corrompida o sistema operacional não tem como detectar ou interferir, já que não conhece a estrutura do interior do arquivo. Isso proporciona maior flexibilidade, permitindo-se a liberdade para criar qualquer tipo de estrutura. TEMA 10: SISTEMA DE ARQUIVOS A figura 2 mostra exemplo de funcionalidade de uma organização não estruturada, quando uma aplicação acessa dados em um arquivo gerenciados pelo gerenciados de banco de dados e o sistema de arquivos do SO. Figura 2 – Exemplo de funcionamento de organização não estruturada Os SO Windows e Linux usam forma Não Estruturada de organização de arquivos. Estruturada Não é uma forma usada com frequência, mas é possível que sistemas de arquivos de alguma versão dos conhecidos SO suportem também a forma estruturada para atender a operação de algumas aplicações. Uma forma interessante deste tipo é a organização indexada. Os itens do arquivo não são acessados em sequência, mas sim pelo índice (chave de acesso), conforme pode ser observado no exemplo da figura 3. Figura 3-Exemplo de organização estruturada -indexada TEMA 10: SISTEMA DE ARQUIVOS ATRIBUTOS DE ARQUIVOS O módulo Sistema de Arquivos dos SO devem ser capazes de manipular os arquivos e seguir algumas necessidades dos aplicativos (usuários), assim com atender informações criadas, como por exemplo, registrar o tamanho dos arquivos ou o momento em que foi modificado (registro de log do SO). Essas informações sobre cada arquivo são denominadas atributos do arquivo (características que identificam aquele arquivo e servem para diversas atividades do SO. O conjunto de atributos possíveis varia com o sistema de arquivos. Alguns atributos podem ser alterados pelo usuário, outros somente pelo sistema operacional. O quadro a seguir mostra alguns exemplos de atributos de arquivos: Atributo Descrição Tamanho Tamanho do arquivo Permissão Permissões de acesso ao arquivo (somente leitura ou leitura/escrita) Proprietário Usuário “dono” do arquivo Criador Usuário que criou o arquivo Criação Data/hora em que o arquivo foi criado Modificação Data/hora em que o arquivo foi modificado Escondido Indica se o arquivo deve ser omitido em listagens DIRETÓRIOS Assim, como determinadas organizações tem um processo de organizar o armazenamento e localização de produtos, os Sistemas de Arquivos também precisam organizar de forma lógica a localização dos arquivos nos dispositivos de armazenamento. Deste modo, o Sistema de Arquivo pode rapidamente localizar e acessar o arquivo desejado por uma aplicação. A forma geralmente utilizada de organização dos arquivos é conhecida como Diretório. Antigamente, as companhias telefônicas possuam Diretórios (chamadas listas telefônicas) que continham a identificação e localização de linhas telefônicas. Diretórios podem ser organizados em um único nível (poucos arquivos, poucos usuários) ou em múltiplos níveis (uma árvore). No primeiro caso (um nível), todos os arquivos ficam contidos em um único Diretório, sendo uma forma simples de criar e entender, conforme mostrado na figura 4. TEMA 10: SISTEMA DE ARQUIVOS Figura 4-Exemplo de diretório de um nível (fig de Silberschatz) Por ser uma organização simples tem seus inconvenientes, principalmente quando o sistema é usado por múltiplos usuários. Isso porque não devem haver 2 ou mais arquivos com mesmo nome. Apesar de se poder criar até 255 nomes, é muito pouco para os sistemas atuais. A primeira das soluções desenvolvidas para superar o problema de conflito de nomes em um diretório foi criar mais um nível, de modo que cada usuário pode ocupar um 2º nível e, assim, deixa de haver conflito de nomes para múltiplos usuários. A figura 5 mostra um exemplo de diretório de 2 níveis. Figura 5- Exemplo de diretório de 2 níveis (fig de Silberschatz) Neste esquema, o sistema possui um Diretório Mestre (MFD-master file directory); este possui entradas para cada usuário e estes têm um diretório de usuário (UFD -user file directory). Assim, deixa de ocorrer conflito d enomes, pois cada usuário fica independente do outro. Nesse caso, acessar um arquivo requer indicar nome do usuário (ou conta ou ID) e nome do arquivo (é um primeiro passo para criação de caminhos (path) que levam ao arquivo em sistemas com múltiplos níveis. Cada SO possui uma forma diferente (sintaxe) para indicar-se o acesso a um arquivo desejado. Em um determinado sistema de arquivos, poderia ser, por exemplo, usuário b/notas x, indicando o arquivo notas x do usuário b. Sistemas como Windows ou Linux requerem, ainda indicar o volume (o HD); o Windows, p.ex., usa letras (B, C, etc.) para indicar o volume. No exemplo anterior, então, seria indicado D: usuário b/notas x. Tendo-se acostumado com o uso e a flexibilização (ainda pequena) de sistema com árvores de dois níveis (costuma-se também usar o termo: árvore de altura 2), pode-se, Diretório Arquivos TEMA 10: SISTEMA DE ARQUIVOS em seguida, ampliar e flexibilizar mais ainda o sistema de arquivos, usando-se diversos níveis (árvore de altura n), conforme mostrado na figura 6. Neste esquema, um usuário pode criar seus próprios subdiretórios e, assim, organizar melhor o armazenamento e acesso a seus arquivos. Figura 6 – Exemplo de diretório em árvore de múltiplos níveis Para acessar um arquivo, o usuário normalmente precisa indicar ao sistema o caminho, a partir do volume, como por exemplo, D:/user a/sub-dir 1/notas x ou, com outra sintaxe, D:/user a.sub-dir 1.notas x. Cada sistema possui sua própria sintaxe,que o usuário, trabalhando com um determinado SO, em pouco tempo assimila. Conforme já mencionado anteriormente, o acesso a um arquivo em sistemas com múltiplos níveis ocorre com o usuário devendo especificar todos os níveis desde a raiz (MFD). Chama-se de Caminho Representação para permitir a referência de qualquer arquivo. A separação entre os diversos níveis também varia de sistema para sistema: No Windows usa-se o traço diagonal para a esquerda -----------\ No Linux – usa-se traço diagonal para direita---------------------/ - Exemplos: /home/jose/sistemas/slide1.ppt Unix C:\Usuarios\Jose\Sistemas\slide1.ppt Windows TEMA 10: SISTEMA DE ARQUIVOS MÉTODOS DE ACESSO O acesso a dados de um arquivo depende da forma que são organizados e da organização definida para o Sistema de Arquivos. O primeiro dos métodos de acesso usados era sequencial, isto é, um dado era armazenado em seguida ao outro, método típico das antigas fitas magnéticas (igual ao armazenamento em fitas de vídeo cassete). Uma grande evolução de acesso a arquivos foi o surgimento do método Direto, usado em discos magnéticos (HDs). Este método é muito mais rápido pois se acessa diretamente o dado (pelo seu endereço). Mais tarde surgiu outro método, Indexado. Nesse caso, o arquivo possui um índice e o sistema controla a localização dos arquivos pelos índices de cada um. IV – OPERAÇÕES COM ARQUIVOS Um sistema de arquivos deve ser capaz de realizar diversas operações sobre um arquivo, de modo que as aplicações usem os dados da melhor forma possível. Mais uma vez deve-se ressaltar que cada sistema possui seus modos de manipular com arquivos, porém de forma genérica as operações são as mesmas. Por exemplo, sempre se terá necessidade de criar um arquivo (operação Criar), mas a sintaxe do respectivo comando e sua forma de implementação pode variar de sistema para sistema. Há diversas rotinas do SO que implementam diferentes operações que manipulam com um arquivo. Elas servem de interface entre os programas aplicativos e os arquivos. A figura 7 mostra desse: Figura 7- posicionamento das rotinas de e/s do sistema de arquivos TEMA 10: SISTEMA DE ARQUIVOS O quadro a seguir mostra as principais operações que podem ser realizadas com Arquivos, indicando-se o comando usualmente empregado para cada uma. Rotina Descrição CREATE Criação de um arquivo OPEN Abertura de um arquivo READ Leitura de um arquivo WRITE Gravação em um arquivo APPEND Variação do Write. Escreve no fim do arquivo SEEK Especificar a posição do arquivo onde deseja ler/escrever CLOSE Fechamento de um arquivo DELETE Eliminação de um arquivo GET/SET ATTRIBUTES Buscar/alterar atributos do arquivo ALOCAÇÃO DE ESPAÇO EM DISCO Um dos aspectos mais importantes a serem tratados no projeto de um Sistema de Arquivos refere-se ao controle do armazenamento dos arquivos em memória secundária (usualmente os HDs, mas podem ser outros dispositivos se o SO estiver preparado para isso). Um ponto refere-se ao efetivo controle de espaço de livre para armazenamento dos arquivos e outro ponto refere-se a forma dos dados serem organizados no arquivo e, consequentemente, quanto a alocação de espaço no dispositivo de armazenamento (HD) Alocação de espaço para os arquivos Durante a evolução de tecnologia de projeto de SO (e mais especificamente, de sistema de arquivos) foram sendo desenvolvidos alguns métodos para alocação de espaço em disco dos arquivos. Estes métodos referem-se a como os blocos de um arquivo são arranjados no HD. Podem ser: Alocação Contígua Alocação Encadeada Alocação Indexada Alocação Contígua Neste modo, o mais simples de todos, os blocos são armazenados de forma contígua (adjacentes) no disco. O Sistema controla a localização dos arquivos pelo primeiro bloco. Os demais ficam registrados na lista como extensão. Na tabela de alocação o AS (sistema de arquivos) tem uma entrada por cada arquivo; a entrada contém a localização do primeiro bloco e o nr de blocos seguintes (extensão). A figura 8 mostra exemplo deste tipo de alocação. TEMA 10: SISTEMA DE ARQUIVOS Figura 8 – Exemplo de alocação contígua No exemplo, observa-se a alocação de 3 arquivos, A, B e C. O arquivo A tem 1º bloco na área 4, seguido de mais 2 blocos, sendo o total de 3 blocos. Enquanto o bloco B só tem um bloco e se encontra na área 10. Na figura também se observa espaços vazios, livres (em branco), como o conjunto de blocos de 0 até 3 e de 7 até 9, além do 11 e 12. Estes espaços são decorrentes de exclusão, inclusão de arquivos e seus blocos. Por exemplo, poderia ter havido 2 arquivos D (com 3 blocos), ocupando os blocos 0, 1 e 2 e um arquivo de 1 bloco, armazenado no bloco 3. No decorrer do funcionamento do sistema, ambos foram excluídos. Estes 3 conjuntos de espaços livres constituem o que se chama Fragmentação. Isso pode se tornar ruim com o tempo, pois o disco pode ficar cheio de buracos pequenos (poucos blocos), não se podendo, assim, armazenar arquivos maiores. Por exemplo, na figura observa-se a existência de 9 blocos livres, mas nenhum arquivo de 5 blocos pode ser armazenado. A fragmentação pode ser solucionada, temporariamente, por rotinas periódicas de reorganização. Quando um novo arquivo está para ser incluído, o SO deve decidir qual espaço livre usará (no exemplo da figura o AS deveria decidir se usaria o espaço do bloco 0 ou do 7 ou do 11 ou do 13. O principal problema é a determinação do espaço em disco requerido por um arquivo. Naturalmente, depende primeiro do tamanho do arquivo no momento da TEMA 10: SISTEMA DE ARQUIVOS alocação. SE, p.ex., o arquivo ocupa 3 blocos, o espaço dos blocos 11 e 12 não serve e se for de 4 blocos, nem o 7 e nem o 11 servem. Mas pode e ocorre muito de haver diversos espaços em que o arquivo pode ser armazenado e o AS, então, deve decidir em qual espaço armazenar o arquivo. A literatura aponta algumas soluções: First-Fit-este modo indica que o AS ocupe imediatamente o primeiro bloco com tamanho suficiente, a partir do primeiro na lista (por exemplo da figura, o bloco 0 se tivesse espaço). A lista é normalmente sequencial crescente. Best-Fit- nesse caso, o AS deve percorrer toda a lista e escolher o conjunto que mais se encaixa no tamanho do arquivo, para não haver desperdícios. Alocação Encadeada No modo de alocação encadeada (linked list allocation), consegue-se evitar fragmentação, pois não há blocos de espaços livres como na alocação contígua. Neste caso, conforme se observa na figura 9, o arquivo não precisa ter blocos contíguos (juntos), embora isso acarrete bom desempenho (evita muitos movimentos do braço do disco). Cada bloco tem espaço para os dados e também um conjunto de bits que indica o endereço do bloco seguinte na lista; este pode estar armazenado em qualquer ponto do disco. Figura 9 – Exemplo de alocação encadeada Conforme se observa mais uma vez na figura 9, neste tipo de alocação, um arquivo é armazenado, com os blocos sendo logicamente encadeados no disco, independente de sua posição física (os ponteiros fazem a ligação). O AS mantém registro da localização do primeiro bloco do arquivo; à medida que dados vão sendo incluídos e TEMA 10: SISTEMA DE ARQUIVOS um novo bloco se faz necessário, o AS localiza, na lista de espaço disponível, um bloco livre e cria o link do último existente para este novo bloco e assim por diante. Não há problema decorrente da fragmentação entre espaços livres entre segmentos. Mas ocorre fragmentação nos arquivos, por estarem encadeados em espaços não contíguos. Um problema que pode ocorrer com este método é a impossibilidade de acesso direto a um bloco (o acesso é sequencial pelos ponteiros), como se pode observarda figura. Além disso, ocorre, também, aumento de espaço de memória pois cada bloco tem que armazenar um ponteiro para o próximo bloco. Mas o limite de tamanho de cada arquivo não é afetado por este problema, nem pelo tamanho dos blocos. No exemplo da figura, observa-se que o último bloco encadeado é o bloco 8. O campo de índice normalmente tem um código (p.ex., o valor -1) que indica final atual do arquivo. O sistema MS-DOS e primeiras versões do Windows usavam o Sistema FAT 16 e depois 32 (o primeiro deles era FAT 12), o qual usava este modo de alocação. FAT-File Allocation Table ou Tabela de alocação de arquivos. A figura 10 mostra outro exemplo, semelhante, de alocação encadeada Figura 10 – Alocação encadeada (fig do Silberschatz) Alocação Indexada Observou-se na alocação encadeada diversas vantagens em relação à alocação contígua e, naturalmente, algumas desvantagens. Uma delas é a impossibilidade de acesso direto a um bloco dos arquivos, pois a lista encadeada só permite percorrer TEMA 10: SISTEMA DE ARQUIVOS sequencialmente. Além, também, da fragmentação do arquivo, que pode ficar espalhado pelo disco, acarretando muitos movimentos do bração do HD (operação de busca - seek), tornando o acesso muitas vezes bem lento. A solução encontrada chama-se alocação indexada e consiste, como mostrado na figura 10, de criação de um bloco contendo índices que apontam (endereços) para cada bloco do arquivo. Assim, o acesso ao bloco desejado é direto, sem passar por blocos anteriores. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Bloco de índice 3 10 11 7 Figura 10 – Exemplo de alocação indexada. Com este método, o limite de tamanho de cada arquivo é determinado pela largura, em bits, de cada índice e pelo tamanho do bloco de índices. Se o bloco de índices estiver cheio, não é possível inserir novos índices e o arquivo não pode aceitar mais blocos, o que pode ser um inconveniente em arquivos muito grandes. TEMA 10: SISTEMA DE ARQUIVOS Parte B- Arquivos com Slides que complementam o assunto abordado: SO-TEMA 10-Sistema de Arquivos.pptx REFERÊNCIAS: Básica: Disponíveis na Biblioteca Digital MACHADO, F. B.; MAIA, L. P. M. Arquitetura de sistemas operacionais. 5. ed. Rio de Janeiro: LTC, 2013. SILBERSCHATZ, A. Fundamentos de Sistemas operacionais – Princípios básicos. 1. ed. Rio de Janeiro: LTC, 2013. TANEMBAUM, A. S.; WOODHULL, A.S.. Sistemas Operacionais -Projeto e Implementação. 3. ed. São Paulo: Pearson, 2008 Complementar: TANEMBAUM, A. S.; WOODHULL, A.S.. Sistemas Operacionais Modernos. 4. ed. São Paulo: Pearson, 2016 FLYNN, I. M.; MCHOES, A. M. Introdução aos Sistemas Operacionais. 1. ed. São Paulo: Pioneira Thomson Learning, 2002. MACHADO, F. B.; MAIA, L. P. M. Fundamentos de sistemas operacionais. 1. ed. Rio de Janeiro: LTC, 2011. MARQUES, J. A.; FERREIRA, P.; RIBEIRO, C.; VEIGA, L.; RODRIGUES, R. Sistemas Operacionais. 1. ed. Rio de Janeiro: LTC, 2011. OLIVEIRA, R. S.; CARISSIMI, A. S.; TOSCANI, S. S. Sistemas operacionais. 4. ed. Porto Alegre: Bookman, 2010. (Livros Didáticos Informática UFRGS, v. 11).