Buscar

Sistemas Operacionais - Livro

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 9 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 9 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 9 páginas

Prévia do material em texto

Sistemas operacionais/Sistemas de arquivos 
Os sistemas de arquivos estruturam a informação guardada em uma unidade de armazenamento, podendo ser 
representada de forma textual ou graficamente utilizando um gerenciador de arquivos. 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. O software do sistema de arquivos é responsável pela organização destes setores em arquivos e diretórios 
e mantém um registo de que setores pertencem a que arquivos e quais não têm sido utilizados. Na prática, um 
sistema de arquivos também pode ser utilizado para acessar dados gerados dinamicamente, como os recebidos 
através de uma conexão de rede (sem a intervenção de um dispositivo de armazenamento). 
Em geral os sistemas de arquivos proveem métodos essenciais para criar, mover, renomear e eliminar tanto 
arquivos como diretórios. Outros permitem a criação de enlaces (links) adicionais a um diretório ou arquivo (enlace 
duro ou hard links em Unix). 
A estrutura de diretórios costuma ser hierárquica, ramificada ou "em árvore", ainda que pode ser plana. Em alguns 
sistemas de arquivos os nomes de arquivos são estruturados, com sintaxes especiais para extensão de arquivos e 
números de versão. Em outros, os nomes de arquivos são simplesmente correntes de texto (ou strings de texto, 
em inglês) e os metadados da cada arquivo são alojados separadamente. 
Nos sistemas de arquivos hierárquicos, usualmente, declara-se a localização precisa de um arquivo com uma 
corrente de texto (string de texto, em inglês) chamada "rota" ou "caminho" — ou path em inglês —. A nomenclatura 
para rotas - ou caminho - varia ligeiramente de sistema em sistema, mas mantêm pelo geral uma mesma estrutura. 
Uma rota vem dada por uma sucessão de nomes de diretórios e subdiretórios, ordenados hierarquicamente de 
esquerda a direita e separados por algum caractere especial que costuma ser uma barra ('/') ou barra invertida ('\') 
e pode terminar no nome de um arquivo presente ao último ramo de diretórios especificada. 
Índice 
 
 1 Características dos sistemas de arquivos 
 2 Conceitos de arquivos 
o 2.1 Tipos de Arquivos 
o 2.2 Nomes de Arquivos 
o 2.3 Operações com Arquivos 
 3 Implementação de arquivos 
o 3.1 Alocação contígua 
o 3.2 Alocação por lista encadeada 
o 3.3 Alocação indexada 
o 3.4 Alocação combinada 
 4 Múltiplos sistemas de arquivos 
o 4.1 Virtual File System 
o 4.2 Mapa Conceitual ilustrando o conceito de 
múltiplos sistemas de arquivos 
 5 Cache de sistemas de arquivos 
o 5.1 Vantagens e Desvantagens da Buffer Cache 
 6 Gerência de Espaço livre 
o 6.1 Lista Encadeada 
o 6.2 Mapa de Bits 
o 6.3 Mapa Conceitual sobre a gerência de espaço 
livre 
 7 Conceitos de diretórios 
o 7.1 Diretórios 
o 7.2 Implementação de Diretórios 
o 7.3 Diretórios no MS-DOS 
 8 Implementação de diretórios 
 9 Ligações externas 
 
Características dos sistemas de arquivos 
Segurança ou permissões 
 listas de controle de acesso (ACLs) 
 Mecanismo para evitar a fragmentação 
 Capacidade de enlaces simbólicos (symbolic links) ou duros (hard links) 
 Integridade do sistema de arquivos (Journaling) 
 Suporte para arquivos dispersos 
 Suporte para quotas de discos 
 Suporte de crescimento do sistema de arquivos nativo 
 
Conceitos de arquivos 
 
Observações sobre o mapa conceitual acima: 
 Arquivos de texto Windows por padrão são codificados em ASCII e não em Unicode. 
 Arquivos de texto Unix por padrão são codificados em Unicode e não em ASCII. 
 O termo "arquivos de repositório" não é uma terminologia reconhecida, tudo indica que se quis dizer "arquivos 
de dados". 
 
Tipos de Arquivos 
Geralmente os Sistemas Operacionais suportam vários tipos de arquivos. O Unix e o Windows, por exemplo, 
suportam diretórios e arquivos organizados em sequência de bytes, sequência de registros e árvores, conhecidos 
como arquivos regulares. O Unix, em especial, suporta além dos tipos regulares, arquivos de dispositivo de 
caracteres e de blocos. Os arquivos de dispositivo de caracteres são utilizados para modelar dispositivos de E/S, 
tais como terminais, redes, impressoras. Já os arquivos de dispositivo de blocos dão suporte aos dispositivos de 
armazenamento em massa tais como discos e 'pen-drives'. 
 
Nomes de Arquivos 
Nomear os arquivos é uma tarefa importante, pois será através do nome que um arquivo será encontrado no 
sistema de arquivos. Por exemplo, uma aplicação cria um arquivo chamado "dados.txt" e com esse nome outras 
aplicações poderão acessar este mesmo arquivo. 
As regras referentes a nomenclatura de arquivos variam de acordo com o sistema de arquivos. Alguns sistemas de 
arquivos não fazem distinção de letras maiúsculas ou minúsculas, enquanto outros aceitam apenas caracteres em 
maiúsculo. 
O tipo do arquivo pode ser indicado na extensão do mesmo, que é uma última parte escrita após um ponto(.) no 
nome do arquivo. Alguns sistemas operacionais utilizam essa extensão para automatizar as ações referentes 
aquele arquivo. Por exemplo, no Windows um arquivo com extensão '.txt' é interpretado como um documento de 
texto, e ao executá-lo o sistema já procura uma aplicação que trata este tipo de arquivo, como um editor de texto. 
 
Operações com Arquivos 
Seguem uma descrição das operações em arquivos encontradas na maioria dos sistemas de arquivo: 
 Criação: criação sem escrita de dado algum. 
 Destruição: remoção do arquivo para liberação do espaço. 
 Abertura: abertura do arquivo, para colocar na memória os atributos e a lista de endereços para tornar as 
operações posteriores mais rápidas. 
 Fechamento: remover as referências do arquivos da memória principal. 
 Leitura: abertura do arquivo para leitura do seu conteúdo. 
 Escrita: processo de escrita do arquivo. Geralmente a escrita começa a partir de onde estiver o ponteiro, caso 
esse ponteiro esteja no final do arquivo ou durante a escrita o final for atingido, o arquivo aumentará de 
tamanho. 
 Concatenação: forma de escrita que só permite adicionar dados no final do arquivo 
 Busca: chamada que coloca o ponteiro em uma posição específica do arquivo. Depois dessa chamada, dados 
podem ser lidos/escritos a partir daquela posição. 
 Ver atributos: essa chamada verifica certos atributos como permissões, por exemplo. Às vezes é necessário 
escrever em um arquivo, porém é necessário verificar se esse arquivo possui permissão de escrita. 
 Definir atributos: Serve para definir ou alterar os atributos de certos arquivos. Flags de proteção podem ser 
definidas com essa chamada. 
 Renomeação: Chamada de sistema para renomear um arquivo. 
 
 
Implementação de arquivos 
A criação de arquivos exige que o sistema operacional tenha controle de quais áreas ou blocos no disco estão 
livres. É importante o controle de quais blocos de discos estão relacionados a quais arquivos. Este gerenciamento 
pode ser feito, principalmente de varias formas: Alocação contígua, alocação por lista encadeada, alocação 
indexada e alocação combinada. 
 
 
Alocação contígua 
É o esquema mais simples de alocar e armazenar os arquivos no disco. Consiste em armazenar um arquivo em 
blocos sequencialmente dispostos. Neste tipo, o sistema localiza um arquivo através do endereço do primeiro 
bloco e da sua extensão em blocos. 
Este tipo de alocação apresenta duas vantagens significativas. 
 É bastante simples de implementar e de realizar o controlesobre os onde os blocos estão. 
 O desempenho de leitura é excelente, pois todo o arquivo pode ser lido em uma única operação a partir do 
primeiro bloco de dados. 
No entanto este tipo de implementação apresenta uma grande problema: Fragmentação do disco. Como os 
arquivos podem ser criados e eliminados frequentemente, os segmentos livres vão se fragmentando em pequenos 
pedaços por todo o disco. O problema pode tornar-se crítico quando um disco possui blocos livres disponíveis, 
porém não existe um segmento contíguo em que o arquivo possa ser alocado. 
O problema da fragmentação pode ser contornado através de rotinas que reorganizem todos os arquivos no disco 
de maneira que só exista um único segmento de blocos livres. Este procedimento, denominado desfragmentação, 
geralmente utiliza uma área de trabalho no próprio disco ou em fita magnética. 
A alocação contígua é amplamente utilizada em CD-ROMS e em discos apenas para leitura. Neles o tamanho do 
arquivo é conhecido anteriormente e nunca vai ser alterado. 
 
Alocação por lista encadeada 
Alocação encadeada consiste em manter os arquivos, cada um, como uma lista encadeada de blocos de disco. 
Dessa forma uma parte de cada bloco é usada como ponteiro para o próximo bloco. O restante do bloco é usado 
para dados. 
Uma vantagem desse tipo de alocação é que o tamanho do arquivo não precisa ser conhecido antes de sua 
criação, já que cada bloco terá um ponteiro para o próximo bloco. Assim o fato de o disco estar fragmentado não 
ocasiona problemas para a criação do arquivo. 
O problema deste tipo de alocação é o tempo de leitura extremamente lento. O acesso deverá ser sempre 
sequencial. Assim para acessar um bloco intermediário será necessário percorrer o arquivo desde o inicio. 
 
Alocação indexada 
Alocação indexada é uma forma de resolver o problema do tempo de leitura da alocação por lista encadeada. Isso 
é feito por meio de uma tabela de endereços dos blocos ocupados pelo arquivo. Para cada novo bloco alocado, 
inclui-se mais um novo item na tabela. 
Usando alocação indexada, o acesso aleatório fica mais fácil, pois não é necessário percorrer todos os blocos de 
forma sequencial, o endereço de cada bloco fica armazenado na tabela de alocação. 
A desvantagem desta abordagem é que a tabela alocação deverá ser mantida na memória principal e dependendo 
do tamanho dos blocos do disco ocupará muito espaço de memória o tempo todo. 
 
Alocação combinada 
Outra abordagem é a alocação combinada, envolvendo o uso de blocos de índices e de encadeamento dos 
mesmos. Essa técnica combina a baixa ocupação de espaço em memória da técnica de lista encadeada e o bom 
desempenho da técnica de tabela de índices. 
No método de alocação combinada é usado uma técnica chamada de níveis de indireção na indexação. Nesta 
técnica, parte de um bloco é utilizado para apontar diretamente blocos de dados, chamado de apontadores diretos, 
e outra parte é utilizada pode ser utilizada para apontadores para blocos, chamado de apontadores indiretos. Se 
usarmos outros níveis de apontadores, podemos estender essa mesma técnica para apontadores duplamente 
indiretos e apontadores triplamente indiretos. 
Esta abordagem é tipicamente utilizada na implementação do sistema de arquivos Unix, chamada de I-nodes. Um 
I-node (index-node) são os metadados, armazenado em estrutura de dados própria, que relaciona atributos e os 
endereços dos blocos de um arquivo. 
 
Múltiplos sistemas de arquivos 
Os sistemas atuais podem acessar vários sistemas de arquivos ao mesmo tempo. Isto é feito de forma 
transparente ao usuário e as diferenças no formato dos descritores de arquivos de cada sistema são espelhadas 
em descritores virtuais que o sistema operacional mantém. 
Soluções envolvendo a coexistência simultânea de vários sistemas de arquivos no mesmo sistema operacional, 
começaram a surgir a partir dos anos 80. A princípio, surgiram três soluções, que tiveram um maior destaque 
nesse sentido(para o sistema operacional UNIX), são elas: 
 File System Switch da AT&T 
 arquitetura "gnode" da Digital Equipament Corporation 
 Virtual File System da Sun (Solução abordada neste trabalho para exemplificar) 
A ideia básica abordada por estas soluções é fazer com que o sistema operacional suporte diversos sistemas de 
arquivos diferentes simultaneamente. A solução empregada para facilitar a inclusão de novos sistemas de 
arquivos, foi inspirada na gerência de periféricos. 
 
Virtual File System 
VFS é uma camada de abstração entre a aplicação e as implementações do sistema de arquivos. O VFS pode, por 
exemplo, ser usado para acessar dispositivos de armazenamento locais e de rede de forma transparente, sem que 
a aplicação cliente perceba a diferença. 
O propósito principal de um VFS é permitir que as várias aplicações clientes possam acessar diversos tipos de 
sistemas de arquivos concretos de uma maneira uniforme. 
 
Mapa Conceitual ilustrando o conceito de múltiplos sistemas de arquivos 
 
 
Cache de sistemas de arquivos 
Uma cache de disco pode ser definida como parte da memória RAM ou memória buffer cache, utilizada para 
acelerar o acesso aos dados que estão sendo mais frequentemente requeridos. Para isso a cache de disco pode 
ser implementado de duas formas principais: 
1 - Através da memória RAM inserida no próprio disco rígido. 
2 - Utilização de parte da memória RAM. 
Representação da localização da memória Buffer Cache: 
 
Caches de disco rígido são mais eficientes, mas são também muito mais caras. Todos os disco rígidos modernos 
possuem uma cache interna. Para complementar a cache interno, os sistemas operacionais criam um segundo 
cache usando a memória RAM. 
Caches de disco funcionam armazenando os dados mais acessados. Quando um programa precisa acessar um 
novo dado, o SO primeiramente verifica se os dados estão na cache antes de lê-lo do disco. Isso porque o acesso 
à memória RAM é muito mais rápido do que o acesso ao disco. 
 
Vantagens e Desvantagens da Buffer Cache 
Minimização do número de transferências entre o disco e a memória (cache hits); 
 O acesso a disco é tratado de uma forma uniforme. Existe apenas uma interface para acessar os dados de um 
disco; 
 Ajudar a manter a coerências dos blocos. Se dois processos tentam acessar o mesmo bloco a buffer cache 
ordena os acessos; 
 Torna o sistema mais vulnerável a acidentes de parada total (falta de energia, por exemplo) ("crashes"); 
 Torna a transferência de grandes quantidades de informação mais lenta. 
Buffers 
O número de buffers é configurável de acordo com a memória disponível e o tipo de utilização do sistema. Cada 
buffer é constituido de 2 partes: 
1 - Zona que contém a cópia de um bloco do disco.O mesmo buffer pode guardar blocos de discos diferentes em 
instantes diferentes. 
2 - Cabeçalho que contém informação de controle sobre esse buffer. 
 
Segue um mapa conceitual que ilustra os conceitos de mapeamento da memória cache do sistemas de arquivos: 
 
 
Gerência de Espaço livre 
O monitoramento de espaço livre em um disco é realizado principalmente através de dois diferentes métodos:lista 
encadeada e mapa de bits. Esses métodos são descritos abaixo. 
 
Lista Encadeada 
Nesta forma de gerenciamento, primeiramente é preciso entender que os blocos livres são blocos que não contém 
arquivos (de usuários e programas). Entretanto os mesmos não ficam em branco, pois enquanto não estão sendo 
utilizados, eles contém informações que o Sistema Operacional armazena para mapear o espaço livre. Ou seja, 
estes blocos estão livres porém não estão vazios. 
Desta forma cada bloco livre no disco possui ponteiros para os seguintes espaços livres em disco. Assim, se 
considerarmosque um bloco possui um tamanho de 1 KBytes, e um ponteiro tem tamanho de 32 bits, dentro de 
um bloco livre temos 255 ponteiros para os próximos blocos livres do disco(uma entrada é reservada ao ponteiro 
para o bloco seguinte). 
 
Mapa de Bits 
Nesta forma de gerenciamento, é utilizado um espaço fixo adicional em disco especificamente para o mapeamento 
do espaço livre, de forma que para cada bloco em disco é utilizado um bit no mapa. Sendo assim, um disco com n 
blocos requer um mapa de bits com n bits. Não surpreende, portanto, que os mapas de bits requeiram menos 
espaço, já que ele usa 1 bit por bloco, contra 32 bits no modelo de lista encadeada. Somente se o disco estiver 
quase cheio é que o esquema de lista encadeada precisará de menos blocos que o mapa de bits. Por outro lado, 
se houver muitos blocos livres, alguns deles poderão ser emprestados para conter a lista de livres sem qualquer 
perda de capacidade de disco. 
Para um mapa de bits, é possível manter apenas um bloco na memória e usar o disco somente quando o bloco 
tornar-se cheio ou vazio. 
Uma vantagem dessa estratégia é que as alocações em um bloco único de mapa de bits faz com que os blocos de 
disco fiquem próximos uns dos outros, minimizando assim os movimentos dos braços de leitura do disco. 
 
Mapa Conceitual sobre a gerência de espaço livre 
 
Conceitos de diretórios 
Diretórios 
O diretório é uma estrutura de dados que contém entradas associadas aos arquivos onde são armazenadas 
informações como localização física, nome, organização e demais atributos; Ou seja, um diretório (ou subdiretório) 
é simplesmente outro arquivo, mas é tratado de modo especial; Todos os diretórios têm um bit em cada entrada de 
diretório que define a entrada como um arquivo (0) ou um subdiretório (1); Chamadas ao sistema especiais criam e 
excluem diretórios; Quando um arquivo é aberto, o SO 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; Há, basicamente, 2 organizações possíveis p/ as entradas: 
 (a) cada entrada contém o nome do arquivo, seus atributos e os endereços no disco onde ele está 
armazenado; 
 (b) nome do arquivo e um ponteiro para outra estrutura de dados onde podem ser encontrados os atributos do 
arquivos. 
 
Implementação de Diretórios 
Independente da forma adotada para a implementação de arquivos, a principal função do diretório é mapear o 
nome ASCII do arquivo na informação necessária à localização do dado. Cada sistema operacional possui uma 
forma própria de entrada de diretório; Serão Apresentados os formatos dos sistemas operacionais MS-DOS e 
UNIX. 
 
Diretórios no MS-DOS 
No MS-DOS, diretórios podem conter outros diretórios, o que leva a uma estrutura hierárquica para o sistema de 
arquivos; O MS-DOS utiliza uma entrada de diretórios de 32 bytes, contendo o nome do arquivo, seus atributos e o 
número do primeiro bloco do disco.

Outros materiais