Baixe o app para aproveitar ainda mais
Prévia do material em texto
CCT0011 – Sistemas Operacionais Aula 11 – Sistema de Arquivos Sistemas Operacionais Conteúdo da Aula Conceito de Arquivos e Diretórios Métodos de Alocação Gerência de Espaços Livres Proteção de Acesso Sistema de Arquivos Definições Existem várias definições possíveis para o conceito de arquivos. Tanembaum afirma que, de forma simplificada, os arquivos podem ser entendidos como sequências de bytes não interpretadas pelo sistema, dependendo-se de aplicações apropriadas para sua correta utilização (1995, p. 246). Deitel coloca que arquivos são uma coleção identificada de dados (1992, p. 389) enquanto Guimarães explica: “Um arquivo é um conjunto de informações relacionadas entre si e residentes no sistema de memória secundária: discos, fitas, cartões, etc.” (1986, p. 211) Sistemas Operacionais Introdução Grandes quantidades de informação têm de ser armazenadas Informação armazenada tem de sobreviver ao fim do processo que a utiliza Múltiplos processos devem poder acessar a informação de um modo concorrente O sistema de arquivos é a parte visível do sistema operacional. Cria um recurso lógico a partir de recursos físicos através de uma interface coerente e simples, fácil de usar. Mecanismo para armazenamento e acesso a dados e a programas Duas partes básicas: • Arquivos • Armazenamento de dados e de programas • Diretórios • Organização e informações sabre arquivos. Sistemas Operacionais Objetivos do Sistema de Arquivos Fornecer mecanismos para o usuário manipular arquivos e diretórios Garantir a validade e coerência de dados • Minimizar ou eliminar o risco de perda e/ou eliminação de dados Otimizar o acesso Fornecer suporte a outros sistemas de arquivos Suporte a vários usuários (multiprogramação) • Uso compartilhado (proteção e acesso concorrente) Sistemas Operacionais Requisitos Mínimos Cada usuário deve ser capaz de: Criar, apagar, ler e alterar arquivos Controlar as permissões de acesso a seus arquivos Nomear arquivos de forma simbólica Estruturar os arquivos de forma a adequá-los a suas necessidades específicas Criação de diretórios e subdiretórios Realizar backups e recuperar arquivos em casos de problemas Sistemas Operacionais Requisitos Mínimos O sistema operacional deve ser capaz de: Descrever a localização de todos os arquivos e de seus atributos. • Via diretório. Gerenciar espaço físico do disco. • Alocar blocos livres de arquivos removidos. • Liberar blocos de arquivos removidos. • Mecanismos para localizar eficientemente blocos (setores) que compõem arquivos. Sistemas Operacionais Sistema de Arquivos Arquivos Recipientes que contêm dados Diretórios Conjunto de referências a arquivos Partição Abstração que permite, a partir do disco físico criar discos lógicos Sistemas Operacionais Conceito de Arquivos Informação pode ser armazenada em diferentes tipos de mídia. • O sistema operacional deve oferecer uma visão uniforme da informação independente do dispositivo físico de armazenamento • Visão lógica é o arquivo Arquivos são mapeados para dispositivos físicos Arquivos possuem: • Nome • Atributos • Estrutura interna • Tipo • Método de acesso • Operações Sistemas Operacionais Conceito de Arquivos Nomes de arquivos Quando arquivos são criados, nomes são atribuídos a esses arquivos, os quais passam a ser referenciados por meio desses nomes; Tamanho: até 255 caracteres; • Restrição: MS-DOS aceita de 1-8 caracteres; Letras, números, caracteres especiais podem compor nomes de arquivos: • Caracteres permitidos: A-Z, a-z, 0-9, $, %, ´, @, {, }, ~, `, !, #, (, ), & • Caracteres não permitidos: ?, *, /, \, “, |, , : Alguns Sistemas Operacionais fazem distinção entre letras maiúsculas e minúsculas (case sensitive). Sistemas Operacionais Conceito de Arquivos Nomes de arquivos Alguns sistemas suportam uma extensão relacionada ao nome do arquivo: MS-DOS: 1-3 caracteres; • Suporta apenas uma extensão; UNIX: • Extensão pode conter mais de 3 caracteres; • Suporta mais de uma extensão: Ex.: exemplo.c.Z (arquivo com compressão); • Permite que arquivos sejam criados sem extensão; SO pode ou não associar as extensões aos aplicativos: • Unix não associa; • Windows associa; Sistemas Operacionais Conceito de Arquivos Estrutura de arquivos Arquivos podem ser estruturados de diferentes maneiras: a) Sequência não estruturada de byte • Para o SO arquivos são apenas conjuntos de bytes • SO não se importa com o conteúdo do arquivo; • Significado deve ser atribuído pelos programas em nível de usuário (aplicativos); Vantagem: • Flexibilidade: os usuários nomeiam seus arquivos como quiserem; Ex.: UNIX e Windows; Sistemas Operacionais Conceito de Arquivos Atributos de um arquivo Informações sobre arquivos • Nome: informação simbólica empregada para referenciar o arquivo. • Tipo: binário, texto, executável, caracter ou bloco. • Localização: posição do arquivo em um determinado dispositivo de E/S. • Tamanho: número de bytes que compõem o arquivo. • Proteção: controla acesso de leitura, escrita e execução ao arquivo. • Hora e data de criação, identificação do usuário: informações destinadas a proteção, segurança e monitoração. Varia de acordo com o sistema operacional Atributos são mantidos em estrutura a parte (diretório) Sistemas Operacionais Conceito de Arquivos Estruturas de arquivos Sequência de bytes • sistema não “interpreta “ o conteúdo do arquivo, enxerga apenas bytes. • Interpretação é a nível do programa do usuário. Sequência de registro • Arquivo é “interpretado” como uma sequência de registro, isto é, tamanho fixo e estrutura interna. • Operações leem/escrevem registros (emprego raro). Árvore • Conjunto de registro não necessariamente de mesmo tamanho • Cada registro associado a um campo de acesso (chave). • Computadores de grande porte / aplicações que fazem muita leitura aleatória. Sistemas Operacionais Conceito de Arquivos Estruturas de arquivos Sistemas Operacionais Tipos de Arquivos Regulares (arquivos comuns) • Contém informações dos usuários • Podem ser ASCII ou binários • Arquivos binários normalmente contém estrutura interna conhecida Diretórios • Arquivos do sistema • Mantém a estrutura do sistema de arquivos Links • Utilizados para compartilhamento de arquivos Especiais • Utilizados para acesso à dispositivos de E/S • Caracter: terminais, impressoras, rede • Bloco: disco Sistemas Operacionais Conceito de Arquivos Métodos de Acesso Acesso sequencial • Leitura dos dados (bytes/registros) se dá a partir do início • Não permite acesso fora de ordem • Primeiros SOs só armazenavam arquivos em fitas magnéticas Acesso aleatório • Leitura dos dados (bytes/registros) pode ser feito fora de ordem • Essencial para sistemas tal como base de dados • Sistemas de arquivo atuais empregam este tipo Sistemas Operacionais Conceito de Arquivos Métodos de Acesso Acesso Direto + Acesso Sequencial: Possível acessar diretamente um registro qualquer de um arquivo, e, a partir deste, acessar sequencialmente os demais. Acesso Indexado ou Acesso por Chave: É o mais sofisticado dos métodos; Tem como base o acesso direto; O arquivo deve possuir uma área de índice onde existam ponteiros para os diversos registros. Quando a aplicação deseja acessar um registro, deverá ser especificada uma chave através da qual o sistema.pesquisará, na área de índice, o ponteiro correspondente, a partir disso, acessando diretamente o arquivo. Sistemas Operacionais Path de umArquivo Programas Carlos PauloIvan PessoalPessoalTeste Disco C:/ Soma.exe Sistemas Operacionais Organização de Arquivos Consiste no modo como seus dados estão internamente armazenados. Quando o arquivo é criado pode-se definir que organização será adotada que pode ser uma estrutura suportada pelo sistema operacional ou definida pela própria aplicação. A forma mais simples de organização de arquivos é através de uma sequência não estruturada de bytes, onde o sistema de arquivos não impõe nenhuma estrutura lógica para os dados, a aplicação deve definir toda a organização. 20/68 Sistemas Operacionais Organização de Arquivos A grande vantagem deste modelo é a flexibilidade para criar estruturas de dados, porém todo o controle de dados é de responsabilidade da aplicação. Alguns sistemas operacionais estabelecem diferentes organizações de arquivos e cada um deve seguir um modelo suportado pelo sistema de arquivos. As organizações mais conhecidas e implementadas são a sequencial, relativa e indexada. 21/68 Sistemas Operacionais Organização de Arquivos Nestes tipos de organização, podemos visualizar um arquivo como um conjunto de registros. Quando definidos sempre com o mesmo tamanho são chamados de registros de tamanho fixo e caso contrário são chamados de registros de tamanho variável. 22/68 Sistemas Operacionais Diretórios A estrutura de diretórios é o mecanismo utilizado pelo sistema para organizar logicamente os diversos arquivos contidos no disco. O diretório é uma estrutura de dados que contém entradas associadas aos arquivos onde cada entrada armazena informações como localização física, nome, organização e outros atributos. Quando um arquivo é aberto, o S.O. 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. / 6 8 Sistemas Operacionais Diretórios Características Contém informações que permitem acessar aos arquivos Possui várias entradas • Uma por arquivo Organização de diretórios • Cada entrada contém o nome e os atributos do arquivo • Cada entrada contém o nome do arquivo e um ponteiro para uma estrutura de dados com os atributos Sistemas Operacionais Diretórios Tipos de diretório: Sistema de diretório em nível único Sistema de diretório com dois níveis Sistema de diretório hierárquico Sistemas Operacionais Diretórios Tipos de diretórios Sistema de diretório em nível único • Implementação mais simples • Diretório raiz • Contém os arquivos de todos os usuários • Não permite que arquivos com mesmo nome... • Empregado em sistemas embarcados • Telefones, câmeras fotográficas, etc. Sistemas Operacionais Diretórios Tipos de diretórios Sistema de diretório em dois níveis • Cada usuário possui um diretório • Nomes dos arquivos tem de ser garantidos no diretório do usuário • Deve haver um diretório a mais, indexado pelo nome do usuário Sistemas Operacionais Diretórios Tipos de diretórios Sistema de diretório hierárquico (árvore) • Adotado pela maioria do sistemas operacionais • Permite que cada usuário crie seus arquivos e (sub)diretórios • Cada arquivo possui um caminho, desde a raiz Sistemas Operacionais Estrutura de diretórios em árvore Diretório Raiz Sistemas Operacionais Diretórios Caminho (path name) O método hierárquico requer métodos pelos quais os arquivos são acessados; Dois métodos diferentes: • Caminho absoluto (absolute path name); • Caminho relativo (relative path name); Sistemas Operacionais Diretórios Caminho (path name) Caminho absoluto: consiste de um caminho a partir do diretório raiz até o arquivo; • É ÚNICO; • Funciona independentemente de qual seja o diretório • Ex.: UNIX: /usr/ast/mailbox; • Windows: c:\usr\ast\mailbox; Sistemas Operacionais Diretórios Caminho (path name) Diretório de Trabalho (working directory) ou diretório corrente (current directory); Caminho relativo é utilizado em conjunto com o diretório corrente; Usuário estabelece um diretório como sendo o diretório corrente; nesse caso caminhos não iniciados no diretório raiz são tido como relativos ao diretório corrente; • Exemplo: • cp /usr/ast/mailbox /usr/ast/mailbox.bak • Diretório corrente: /usr/ast cp mailbox mailbox.bak Sistemas Operacionais Diretórios Caminho (path name) “.” diretório corrente; “..” diretório pai (anterior ao corrente); Ex.: diretório corrente /usr/ast: cp .. /lib /dictionary . cp /usr/lib/dictionary . cp /usr/lib/dictionary /usr/ast/dictionary Sistemas Operacionais Métodos de Alocação Arquitetura de um disco Latência do disco= tempo médio de busca + tempo médio de atraso rotacional + tempo de transferência + controlador Seagate Barracuda 320Gb (2 discos /4 cabeças) Tempo médio de busca = 8.5 ms Atraso rotacional = 0.5 *(1/7200rpm) Tempo de transferência = 78 Mbytes/s Tempo controlador= 0.1 ms Track-to-track seek time: 1.0 ms (leitura) Sistemas Operacionais Métodos de Alocação Latência do disco Leitura de 64 Kb Latência do disco= 8.5 ms + 0.5 * (7200rpm) + 64Kb/ (78MBytes) + 0.1 ms Latência do disco= 8.5 ms + 0.5 * (7200/60000 ms) + 64Kb / (78Kbytes/ms) + 0.1 ms Latência do disco= 8.5 + 4.2 + 0.8 + 0.1 Latência do disco= 13.6 ms Sistemas Operacionais Gerência de Alocação de Espaço em Disco Alocação contígua • Consiste em armazenar um arquivo em blocos sequencialmente dispostos • O sistema localiza um arquivo através do endereço do primeiro bloco e da sua extensão em blocos • O acesso é bastante simples • Seu principal problema é a alocação de novos arquivos nos espaços livres • Para armazenar um arquivo que ocupa n blocos, é necessário uma cadeia com n blocos dispostos sequencialmente no disco • Além disso, como determinar o espaço necessário a um arquivo que possa se estender depois da sua criação? Sistemas Operacionais Gerência de Alocação de Espaço em Disco Alocação contígua Sistemas Operacionais Gerência de Alocação de Espaço em Disco Analisaremos as três principais estratégias de alocação contígua : First-fit: o primeiro segmento livre com tamanho suficiente para alocar o arquivo é selecionado. A busca na lista é sequencial, sendo interrompida tão logo se encontre um segmento adequado. Best-fit: seleciona o menor segmento livre disponível com tamanho suficiente para armazenar o arquivo. A busca em toda a lista se faz necessária para a seleção do segmento, a não ser que a lista esteja ordenada por tamanho. Worst-fit: o maior segmento é alocado e a busca por toda a lista se faz necessária, a menos que exista uma ordenação por tamanho. 38/68 Sistemas Operacionais Gerência de Alocação de Espaço em Disco Alocação contígua • Vantagens: • Simplicidade: somente o endereço do primeiro bloco e número de blocos no arquivo são necessários; • Desempenho para o acesso ao arquivo: acesso sequencial; • Desvantagens (discos rígidos): • Fragmentação externa: • Compactação alto custo; • Reuso de espaço atualização da lista de espaços livres; • Conhecimento prévio do tamanho do arquivo para alocar o espaço necessário; Sistemas Operacionais Gerência de Alocação de Espaço em Disco Fragmentação externa Espaços vazios entre blocos de arquivos. À medida que o sistema evolui: • arquivos são criados e removidos • mais espaços vazios aparecem. • os espaços vazios ficam menores. Alocar novos arquivos torna-se difícil ! 40/68 Sistemas Operacionais Gerência de Alocaçãode Espaço em Disco Alocação encadeada • O arquivo é organizado como um conjunto de blocos ligados logicamente no disco, independente da sua localização física; • A primeira palavra de cada bloco é um ponteiro para o bloco seguinte e assim sucessivamente; • Aumenta o tempo de acesso ao arquivo, pois o disco deve deslocar-se diversas vezes para acessar todos os blocos; • É necessário que o disco seja desfragmentado periodicamente para otimizar o tempo das operações de E/S; • Esta alocação só permite acesso sequencial aos blocos; • Essa técnica desperdiça espaço nos blocos com armazenamento de ponteiros; Sistemas Operacionais Gerência de Alocação de Espaço em Disco Alocação encadeada Desvantagens: Acesso aos arquivos é feito aleatoriamente processo mais lento; A informação armazenada em um bloco não é mais uma potência de dois, pois existe a necessidade de se armazenar o ponteiro para o próximo bloco; Vantagem: Não se perde espaço com a fragmentação externa; Sistemas Operacionais Gerência de Alocação de Espaço em Disco Alocação indexada • A alocação indexada soluciona uma das principais limitações da alocação encadeada, que é a impossibilidade de acesso direto aos blocos dos arquivos. • O principio 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 dos arquivos, não utiliza informações de controles nos blocos de dados, como na alocação encadeada. Sistemas Operacionais Gerência de Alocação de Espaço em Disco Alocação indexada • Todos os ponteiros para o arquivo são armazenados em uma tabela • Tabela de índices • Acesso randômico Sistemas Operacionais Gerência de Alocação de Espaço em Disco Fragmentação interna Arquivos são alocados em blocos: Os blocos têm tamanho fixo. Entre 512 bytes e 8 Kbytes. Um bloco não pode ser alocado parcialmente. Se usarmos blocos de 4096 bytes: um arquivo de 5700 bytes ocupará 2 blocos. 2492 bytes serão perdidos no último bloco. Em média, perde-se 1/2 bloco por arquivo. 45/68 Sistemas Operacionais Gerência de Alocação de Espaço em Disco A escolha do tamanho dos blocos é importante para a eficiência do sistema. Blocos pequenos: menor perda por fragmentação interna mais blocos por arquivo: maior custo de gerência Blocos grandes: maior perda por fragmentação interna menos blocos por arquivo: menor custo de gerência 46/68 Sistemas Operacionais Gerência de Alocação de Espaço em Disco Mapa de bit • Cada bit representa um bloco do disco • Calculo do bloco livre • (número de bits por palavra) * (número de 0) + deslocamento até o primeiro bit 1 • É necessário armazenar os mapas de bits no disco • Qual o overhead? • Fácil obtenção de um espaço contíguo Sistemas Operacionais Operações de Entrada / Saída O sistema de arquivos oferece um conjunto de system calls que permite às aplicações realizar operações de E/S, como tradução de nomes em endereços, leitura e gravação de dados e criação/eliminação de arquivos. As system calls de E/S tem como função oferecer uma interface simples e uniforme entre a aplicação e os diversos dispositivos. 48/68 Aplicação System calls de E/S Dispositivos Sistemas Operacionais Operações de Entrada/Saída 49/68 Comando Descrição create open read write close rename erase Criação de um arquivo Abertura de um arquivo Leitura de dados de um arquivo Gravação de dados de um arquivo Fechamento de um arquivo Alteração de nome de um arquivo Eliminação de um arquivo Sistemas Operacionais Atributos São informações de controle que dependendo do sistema de arquivos variam, porém alguns como tamanho, criador, proteção e data estão presentes em quase todos. Alguns atributos especificados na criação do arquivo não podem ser mudados e outros são modificados pelo próprio sistema operacional. E ainda existe alguns que podem ser alterados pelo usuário tais como proteção, tamanho e senha. 50/68 Sistemas Operacionais Atributos de Arquivos 51/68 Atributos Descrição Tamanho Proteção Dono Criação Backup Organização Senha Especifica o tamanho do arquivo Código de proteção de acesso Identifica o criador do arquivo Data e hora da criação do arquivo Data e hora do último backup realizado Indica a organização lógica dos registros Senha necessária para acessar o arquivo Sistemas Operacionais Exemplo de Atributos 52/68 $ ls –l drwxr-xr-x 5 laureano prof 4096 Abr 14 11:34 a drwxr-xr-x 3 laureano prof 4096 Mar 31 12:25 abc -rw-r--r-- 1 laureano prof 647 Abr 28 12:24 arqcut1 -rw-r--r-- 1 laureano prof 2335 Abr 28 12:24 arqgrep drwxr-xr-x 11 laureano prof 4096 Mai 30 2005 arquivos drwxr-xr-x 2 laureano prof 4096 Mai 18 2005 asu drwx------ 11 laureano prof 4096 Jul 5 2004 bash-2.05b -rw-r--r-- 1 laureano prof 8437760 Jul 5 2004 bash5.tar drwxr-xr-x 2 laureano prof 4096 Mai 22 2005 c -rw------- 1 laureano prof 1470 Set 28 2004 client.c Sistemas Operacionais Proteção de Acesso Considerando que os meios de armazenamento são compartilhados é necessário ter mecanismos de proteção par garantir a proteção de arquivos e diretórios. Qualquer sistema de arquivos deve possuir mecanismos próprios para proteger o acesso as informações gravadas e o tipo de acesso é mediante concessão ou não de acessos que podem ser realizados como a leitura (read), gravação (write), execução (execute) e eliminação (delete). Há diferenças entre o controle de acesso a diretórios e arquivos.O controle da criação/eliminaçã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 e para cada tipo de sistema um modelo é mais adequado do que o outro. 53/68 Sistemas Operacionais Tipos de Acesso 54/68 Acesso Descrição Leitura Qualquer tipo de operação em que o arquivo possa ser visualizado, como a exibição de seu conteúdo, edição ou cópia de um novo arquivo Gravação Alteração no conteúdo do arquivo, como inclusão ou alteração de registros. Execução Associado a arquivos executáveis ou arquivos de comandos, indicando o direito de execução do arquivo. Eliminação Permissão para se eliminar um arquivo. Sistemas Operacionais Senha de Acesso É bastante simples e se resume ao usuário ter conhecimento da senha e a liberação do acesso ao arquivo concedida pelo sistema. Cada arquivo possui apenas uma senha, o acesso é liberado ou não na sua totalidade. Não é possível determinar quais tipos de operações podem ou não ser concedidas e outra desvantagem é a dificuldade de compartilhamento já que todos os demais usuários deveriam ter conhecimento da senha. 55/68 Sistemas Operacionais Grupos de Usuários Tem como princípio a associação de cada usuário do sistema a um grupo. Os usuários são organizados com o objetivo de compartilhar arquivos entre si. Implementa três tipos de proteção: owner (dono), group (grupo) a all (todos) e na criação do arquivo é especificado quem e o tipo de acesso aos três níveis de proteção. Em geral, somente o dono ou usuários privilegiados é que podem modificar a proteção dos arquivos. 56/68 Sistemas Operacionais Proteção por Grupo de Usuários dados.txt Nível de proteção Tipo de Acesso Owner Leitura Escrita Execução Eliminação Group Leitura All -- Sistemas Operacionais Lista de Controle de Acesso Access Control List – ACL consiste em uma lista associada a cada arquivo onde são especificados quais os usuáriose os tipos de acesso permitidos. O tamanho desta estrutura pode ser bastante extenso se um arquivo tiver seu acesso compartilhado por diversos usuários. Existe um overhead adicional devido a pesquisa sequencial que o sistema deverá realizar na lista sempre que solicitado. É possível encontrar tanto a proteção por grupos de usuários quanto pela lista de acesso oferecendo uma maior flexibilidade ao mecanismo de proteção. 58/68 Sistemas Operacionais Lista de Controle de Acesso 59/68 Usuário: Laureano Acesso: leitura + escrita + execução Usuário: Maziero Acesso: eliminação Usuário: Laureano Acesso: leitura + escrita Usuário: Maziero Acesso: leitura Sistemas Operacionais Implementação de Caches O acesso a disco é bastante lento se comparado a memória principal e este é o fator para que as operações de E/S serem um problema ao desempenho do sistema. Com o objetivo de minimizar este problema, a maioria dos sistemas operacionais implementa a técnica de buffer cache onde o sistema reserva uma área na memória para que se tornem disponíveis caches utilizados em operações de acesso a disco. Quando uma operação é realizada o sistema procura no cache a informação e caso não encontre, ele busca no disco e depois atualiza a buffer cache. 60/68 Sistemas Operacionais Implementação de Caches Como existe limite para o tamanho do cache o sistema adota políticas de substituição como o FIFO (First in First out) ou a LRU (Least Recently Used). No caso de dados permanecerem por um longo tempo na memória a ocorrência com problemas de energia pode resultar na perda de tarefas já executadas e consideradas salvas em disco. Existem duas maneiras de tratar deste problema: o sistema pode possuir uma rotina que executa, em intervalos de tempo, atualizações em disco de todos os blocos modificados no cache. 61/68 Sistemas Operacionais Implementação de Caches Uma segunda alternativa é que toda vez que um bloco do cache for modificado, realizar uma atualização no disco (write-through caches). Podemos concluir que a primeira técnica implica em menor quantidade de operações de E/S porém o risco de perda de dados é maior, pois pode ocorrer que dados atualizados de um arquivo ainda no cache sejam perdidos na falta de energia. Isso já não acontece nos caches tipo write-through em função de seu funcionamento porém existe um aumento considerável nas operações de E/S o que o torna menos eficiente. A maioria dos sistemas utiliza a primeira técnica. 62/68 Sistemas Operacionais Dúvidas
Compartilhar