Baixe o app para aproveitar ainda mais
Prévia do material em texto
SISTEMAS OPERACIONAIS Sistemas de Arquivos Redes para Computadores Prof. Renato Leite renato.leite@unipe.br Um sistema operacional tem por finalidade permitir que o usuários do computador executem aplicações, como editores de texto, jogos, reprodutores de áudio e vídeo, etc. 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 módulo 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. OBJETIVOS • Compreender os mecanismos de persistência de dados no disco em arquivos; • Entender os diversos modos pelos quais o S.O gerencia/estrutura os dados dos arquivos logicamente; • Como são compostos os arquivos: organização lógica, atributos e meios de acesso; • Estudar a organização lógica do disco em diretórios; • Gerência de Espaço livre; • Métodos de alocação de arquivos. O QUE É? • Cria e manipula estruturas que organizam logicamente arquivos no disco; • Gerir de forma transparente às aplicações o modo como os dados são persistidos; • Aplicações precisam ser representadas em disco como arquivos e geram arquivos para manter dados processados ao longo de desligamentos e transferências de dados entre dispositivos; • Ao subsistema do S.O. que gere esses processos dá-se o nome de Sistema de Arquivos. ARQUIVOS • Conjunto de estruturas ligadas e gerenciadas pelo sistema de forma a armazenar dados logicamente relacionados; • O hardware é transparente, não importando o meio a ser armazenado, as aplicações enxergam apenas arquivos; • Todo arquivo possui como atributo mínimo, seu nome; • Arquivos são generalistas e podem conter dados texto, binários ou executáveis; • Alguns S.O possuem como parte do nome do arquivo sua extensão. ATRIBUTOS • Arquivos, analogamente as páginas em memória, possuem atributos que representam seu status: • Nome e tipo (extensão). Manipulados pelo usuário; • Momentos: criação, modificação, acesso. Manipulados pelo S.O; • Dono/Proprietário: Manipulados pelo S.O./Usuário; • Localização: em que parte entre os setores do sistema de arquivos (manipulado pelo S.O.); • Atributos específicos: tipo conteúdo, visibilidade, natureza do arquivo (sistema ou usuário). ATRIBUTOS Comando LS (Unix) DIRETÓRIOS • Organizam hierarquicamente os arquivos em disco; • São agrupamentos de arquivos (incluindo diretórios): • Contém estrutura com endereço físico do arquivo; • Todos os atributos dos arquivos estão armazenados na estrutura do diretório; • Esse dados dos arquivos são carregados em memória no momento em que são abertos e é referenciada por ponteiros ou índices (descritores) com a posição exata daquele arquivo na tabela de arquivo abertos; • Ao fechar um arquivo é preciso armazenar as modificações e liberar a estrutura do arquivo nesta tabela. ÁRVORE DE DIRETÓRIOS TIPOS DE ESTRUTURA DE DIRETÓRIOS • Nível único: apenas uma tabela que aponta aos arquivos. Limitado quanto ao nome dos arquivos que não podem se repetir dentro do sistema de arquivos; • UFD (User File Directory): é criado um diretório raiz (Master File Directory) MFD que possui índices a partir do nome de usuário apontando então os arquivos pertencentes a este; • Em árvore: diretório raiz (tronco) possui referências a outros diretórios (subdiretórios) (galhos) e estes indicam arquivos (folhas) ou outros diretórios (galhos). ESTRUTURA EM 1 NÍVEL ESTRUTURA EM 2 NÍVEIS ESTRUTURA EM ÁRVORE ORGANIZAÇÃO DE ARQUIVOS • Arquivos podem ter sua estrutura definida pelo S.O. ou pela aplicação; • Arquivos binários e texto; • A estrutura mais simples de um arquivo é uma sequência de bytes (como arquivos texto ou binários definidos pelas aplicações); • Arquivos organizados em estruturas normalmente são geridos pelo S.O. em registros fixos ou variáveis e se dividem em três formas: • Sequencial; • Relativa; • Indexada. ORGANIZAÇÃO DE ARQUIVOS (a) Sem organização (b) Arquivos divididos em registros e ligados até um registro final MÉTODOS DE ACESSO • Os arquivos são armazenados no hardware em diversas partes e a partir de métodos de acesso providos pelo Sistema Operacional de acordo com o tipo de sistema de arquivos definido, estes são acessados: • Método Sequencial: associado a fitas, cujo meio natural de acesso deve ser sequencial; • Método direto: utilizado a partir do advento de discos rígidos, cujas cabeças de leitura podem ser mover entre trilhas e setores. Um arquivo é referenciado pela posição a partir do início do disco; • Método indexado: Utiliza índice que aponta os diversos registros no disco, não sendo necessário percorrer todos os registros sequencialmente para obter-se o registro solicitado pela aplicação. ACESSO DIRETO Vamos desenhar os outros dois métodos de acesso?! Sequencial e Indexado. ENTRADA E SAÍDA (E/S) • Como já dito, o acesso aos arquivos é feito de forma transparente, entre aplicação e hardware; • O sistema operacional disponibiliza rotinas de Entrada e Saída; • Open, read, write, close, delete, create e change attributes. #include <stdio.h> struct s { char name[50]; int height; }; int main(){ struct s a[5],b[5]; FILE *fptr; int i; fptr=fopen("file.txt","wb"); for(i=0;i<5;++i) { fflush(stdin); printf("Enter name: "); gets(a[i].name); printf("Enter height: "); scanf("%d",&a[i].height); } fwrite(a,sizeof(a),1,fptr); fclose(fptr); fptr=fopen("file.txt","rb"); fread(b,sizeof(b),1,fptr); for(i=0;i<5;++i) { printf("Name: %s\nHeight: %d",b[i].name,b[i].height); } fclose(fptr); } EXEMPLO DE OPERAÇÕES COM ARQUIVOS EM C GERÊNCIA DE ESPAÇO LIVRE • Para inserir dados em disco o sistema operacional precisa conhecer quais blocos estão livres para alocação de registros dos arquivos; • Normalmente a informação é armazenada em um tipo de estrutura dedicada a indicar aqueles blocos disponíveis: • Essa estrutura ou simplesmente tabela, tem suas entradas modificadas a cada vez que um arquivo é deletado ou criado logicamente no disco. • São três os tipo de tabela utilizadas pelos S.O. para esta gerência: • Bitmap: para cada espaço no disco é preciso um bit que indique seu status; • Lista encadeada de blocos livre: cada bloco livre indica o próximo; • Tabela de espaço livre: Uma tabela que contém o início de cada conjunto de blocos livres. TIPOS GERÊNCIA DE ESPAÇO LIVRE GERÊNCIA DE ESPAÇO ALOCADO • Ao passo que é necessário no momento de se criar arquivos gerenciar o espaço em disco livre, em cada criação, abertura ou manipulação de arquivos o sistema de arquivos deve ser capaz de mapear como alocar e onde estão os registros; • São três os tipos de alocação: • Contígua; • Encadeada; • Indexada. ALOCAÇÃO CONTÍGUA • Nesse método de alocação os registros são gravados em disco de forma sequencial,fisicamente falando; • É preciso que haja uma sequência de blocos (clusters) com tamanho mínimo dos arquivo que se deseja alocar ; • O disco pode ser visto como um conjunto sequencial de clusters, cujos conjuntos são chamados segmentos. Conjuntos de clusters ocupados e livres são chamados segmentos ocupados e livres, respectivamente. • A localização desses segmentos livres deve utilizar estratégias para que haja menos fragmentação possível: • First-fit; • best-fit - percorre toda a lista de segmentos a menos que estejam ordenados por tamanho; • worst-fit - percorre toda a lista de segmentos a menos que estejam ordenados por tamanho. ALOCAÇÃO CONTÍGUA Problemas? Fragmentação DO ESPAÇO e crescimento dos arquivos! ALOCAÇÃO ENCADEADA • Os blocos que compõem um arquivo são espalhados no disco; • Cada bloco (extents) possui a referência para o próximo bloco do arquivo; • Não possui fragmentação de espaço, mas de arquivos; • Acesso é feito de forma sequencial; • Problemas: • Pesquisa sequencial pode exigir diversas buscas (seeks) para recuperar todo arquivo; • Exige desfragmentação. ALOCAÇÃO ENCADEADA ALOCAÇÃO INDEXADA • Possui uma tabela de índice de todos os arquivos em disco; • Soluciona o problema causado pelo acesso sequencial; • Os ponteiros permitem que partes do arquivo sejam encontrados pelo endereço em disco diretamente. ALOCAÇÃO INDEXADA COMANDOS LINUX • Listagem de diretórios e arquivos: comando pwd e ls: • Listam caminhos absolutos e relativos; • Variável de ambiente $PWD; • Manipulando arquivos: comando cp, mv e rm: • cp - copia (para diretórios use o argumento -r); • mv - move; • rm - remove (para diretórios use o argumento -r). • Manipulando diretórios: comando mkdir e rmdir : • mkdir - cria diretório; • rmdir - remove diretório. COMANDO LS COMANDO CP E MV COMANDOS RECURSIVOS
Compartilhar