Programação de Sistemas



Documentos relacionados
Programação de Sistemas

Programação de Sistemas

Sistemas Operacionais

Funções de um SO. Gerência de processos Gerência de memória Gerência de Arquivos Gerência de I/O Sistema de Proteção

Sistemas de Ficheiros. Ficheiros Diretórios Implementação de sistemas de ficheiros Exemplos de sistemas de ficheiros

SOP - TADS Sistemas de Arquivos Cap 4 Tanenmbaum

Unix: Sistema de Arquivos. Geraldo Braz Junior

Sistemas Operacionais: Sistema de Arquivos

DISCOS RÍGIDOS. O interior de um disco rígido

Programação de Sistemas

Programador/a de Informática

O AMBIENTE DE TRABALHO DO WINDOWS

Estrutura Interna do KernelUNIX Sistema O. Estrutura Interna de Arquivos (1) Estrutura Seqüência. User application. Standard Unix libraries

SISTEMAS DE ARQUIVOS Sistemas operacionais

Capacidade = 512 x 300 x x 2 x 5 = ,72 GB

Sistemas de Arquivos. Sistemas Operacionais - Professor Machado

Armazenamento Secundário. SCE-183 Algoritmos e Estruturas de Dados II

Capítulo 6. Gerenciamento de Arquivos. 6.1 Arquivos 6.2 Diretórios 6.3 Implementação (6.3.1 a 6.3.6) 6.4 Exemplos

Curso de Instalação e Gestão de Redes Informáticas

Sistema de Entrada/Saída

Gerência do Sistema de Arquivos. Adão de Melo Neto

Sistema de Arquivos EXT3

implementação Nuno Ferreira Neves Faculdade de Ciências de Universidade de Lisboa Fernando Ramos, Nuno Neves, Sistemas Operativos,

Aula 01 Visão Geral do Linux

Sistemas de Arquivos. Gerenciamento de Espaço em Disco

Capítulo 6 Sistemas de Arquivos

03/11/2011. Apresentação. SA do Linux. Sistemas de Arquivos. Curso Tecnologia em Telemática. Disciplina Administração de Sistemas Linux

Introdução a Informática. Prof.: Roberto Franciscatto

GERENCIAMENTO DE DISPOSITIVOS

Referencial do Módulo B

Sistema de Arquivos FAT

LABORATÓRIO DE SISTEMAS OPERACIONAIS. PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO

Apontamentos do livro de AI Linux. 1.5 Modo texto e modo gráfico

Laboratório de Hardware

Introdução aos Sistemas Operativos

Recuperando o GRUB após instalação do Windows

Introdução aos Computadores

Sistemas de Arquivos. Arquivos e Diretórios Características e Implementação Tadeu Ferreira Oliveira - tadeu.ferreira@ifrn.edu.br

Fundamentos de Sistemas Operacionais

PLANEAMENTO DA INSTALAÇÃO DO WINDOWS SERVER 2003

CONCEITOS BÁSICOS DE UM SISTEMA OPERATIVO

ROM-BIOS Inicialização Sistemas de Arquivos Formatação

Sistemas Operacionais

Introdução a Administração de Sistemas GNU/Linux

UFRJ IM - DCC. Sistemas Operacionais I. Unidade IV Sistema de arquivos. Prof. Valeria M. Bastos Prof. Antonio Carlos Gay Thomé 13/06/2012 1

Programação de Sistemas

Instalação do Sistema Operativo Windows XP

Sistemas Operacionais 3º bimestre. Dierone C.Foltran Jr.

Revisão Aula Explique a MBR(Master Boot Record)

Periféricos e Interfaces Ano lectivo 2003/2004 Docente: Ana Paula Costa. Aula Teórica 11

Sistemas Operacionais. Andrique Amorim Gerência de Arquivos

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

SISTEMA DE ARQUIVOS. Instrutor: Mawro Klinger

Sistemas de Ficheiros. 1. Ficheiros 2. Directórios 3. Implementação de sistemas de ficheiros 4. Exemplos de sistemas de ficheiros

Gerenciamento de Boot

AULA 5 Sistemas Operacionais

Sistema de Arquivos. Ambientes Operacionais. Prof. Simão Sirineo Toscani

Programação de Sistemas

Programação de Sistemas

Sistemas Operacionais Sistemas de Arquivos. Thiago Leite

Introdução à Computação: Sistemas de Computação

Acadêmicos: Luís Fernando Martins Nagata Gustavo Rezende Vinícius Rezende Santos

BC Sistemas Operacionais Sistema de Arquivos (aula 10 Parte 2) Prof. Marcelo Z. do Nascimento

Sistemas de Arquivos NTFS, FAT16, FAT32, EXT2 e EXT3

Fundamentos de Arquivos e Armazenamento Secundário

Disciplina: Sistemas Operacionais Professor: Cristiano Mariotti

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande

6 - Gerência de Dispositivos

Sistemas de Arquivos NTFS

Google File System. Danilo Silva Marshall Érika R. C. de Almeida

Sistema de Ficheiros

Sistemas Operacionais Gerência de Dispositivos

Escola Secundária de Emídio Navarro

Sistemas Operativos I

DESMISTIFICANDO A FSTAB

Microsoft Windows. Aspectos gerais

AULA TEÓRICA 2 Tema 2. Conceitos básicos de informática, computadores e tecnologias de informação. Sistemas de numeração (continuação)

Fundamentos de Sistemas Operacionais. Sistema de Arquivos. Prof. Edwar Saliba Júnior Março de Unidade Sistemas de Arquivos

Exercícios de revisão V2. FAT: 300 GB / 2KB = 150MB X 8 bytes (64 bits / 8) = 1.2GB

>>> OBJETIVOS... === FHS - Filesystem Hierarchy Standard. === Sistemas de arquivos e Partições

Sistemas Operacionais

Linux. Quota de disco

Programação de Sistemas

Sistemas de Arquivos

PROGRAMAÇÃO Microsoft WINDOWS XP

E.E.E.P. Dr. Solon Tavares Sistemas Operacionais Prof. Henrique Cordeiro. Programação Concorrente em Linux

Introdução ao Linux. Professor Breno Leonardo G. de M. Araújo

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

Grupo I [4v] executaprograma();

Faculdade de Ciências da Universidade de Lisboa CURSO DE GPS. Módulo x. (Aula Prática) Reliance - Ashtech. Suas Aplicações Em SIG.

Manual de Instalação Solução Alinex Salas TIC Pág. 1/32

1.5. Computador Digital --Software. INFormática Tipos de Software. Software. Hardware. Software do Sistema. Software de Aplicação.

Componentes de um Sistema de Operação

ARQUITETURA DE COMPUTADORES

Conjunto organizado de informações da mesma natureza, agrupadas numa unidade independente de processamento informático

Aula 3. Sistemas Operacionais. Prof: Carlos Eduardo de Carvalho Dantas

Transcrição:

Programação de Sistemas Introdução aos Sistemas de ficheiros Programação de Sistemas Introdução ao FS : 1/46 Conceitos base (1) [Def] Um ficheiro é um contentor de dados, acedidos sequencialmente ou alteatoriamente. [Def] Num sistema de ficheiros são determinados: A organização dos vários ficheiros existentes no meio (disco, memória RAM, ), Os mecanismos de localização de um ficheiro no meio. Exemplos de sistemas de ficheiros ( a estudar neste capítulo) ext2 e ext3, para Linux (número mágico 0xEF53) iso9660, para CDs nfs, para acesso por rede fat, para MSDOS e Windows 95/98 (versões 16 e 32 bits) ntfs, para Windows NT/2000/XP/Vista swap, em Unix Programação de Sistemas Introdução ao FS : 2/46

Conceitos base (2) O sistema de ficheiros de um disco tem de resolver vários problemas: A. Que tipos de ficheiros podem existir? B. Como determinar, de forma eficiente, a localização de cada um dos blocos constituintes de um ficheiro? C. Que estrutura de directórios é aceite, e como implementá-la? D. Como identificar rapidamente o estado (livre ou ocupado) de cada um dos blocos disponíveis? E. Como aceder rapidamente a dados em ficheiros de acesso aleatório? Programação de Sistemas Introdução ao FS : 3/46 Partição de disco (1) [Def] Uma partição, por vezes designado volume, é um grupo contínuo de cilindros, vista pelo sistema operativo como um disco lógico. Um disco inteiro é dividido em: Sector 0 : MBR- master boot record, com código para seleccionar a partição de onde será carregado o sistema operativo. Nota: No final do MBR existe a tabela das partições no disco. Uma, ou mais, partições (limite máximo de 4 em discos ATA- Advanced Technology Attachment, designados por IDE- Integrated Drive Electronis pela Western Digital). A selecção e instalação do SO é feita por um programa boot loader, por exemplo GRUB-GRand Unified Bootloader. Programação de Sistemas Introdução ao FS : 4/46

Partição de disco (2) Primeiros 446B: boot loader primário, contendo código executável* e mensagens de erro. 64B seguintes: tabela de partição. Termina com 2B (número mágico) para verificação de validade do MBR. * Sendo o espaço reduzido, a interface é muito pobre e o boot loader continua depois do MBR. Nota: Para consultar o MBR, executar em modo root dd if=/dev/hda of=mbr.bin bs=512 count=1 od xa mbr.in # lê ficheiro binário # imprime fich. em ASCII Programação de Sistemas Introdução ao FS : 5/46 Partição de disco (3) No Linux, a gestão de partições (criação, eliminação, listagem) é feita pelo comando /sbin/fdisk dispositivo O comando é interactivo com diversas opções l lista códigos dos sistemas de ficheiros m - lista opções p imprime tabela de partição t altera sistema de ficheiros na partição w escreve no disco a tabela de partição Nota: as alterações têm efeito só depois de executada a opção w. Programação de Sistemas Introdução ao FS : 6/46

Partição de disco (4) Exemplo charlie.ist.utl.pt> /sbin/fdisk -l /dev/hda Disk /dev/hda: 20.0 GB, 20003880960 bytes 255 heads, 63 sectors/track, 2432 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disco principal Device Boot Start End Blocks Id System /dev/hda1 1 13 104391 83 Linux /dev/hda2 14 1656 13197397+ 8e Linux LVM /dev/hda3 * 1657 2432 6233220 7 HPFS/NTFS Partição Programação de Sistemas Introdução ao FS : 7/46 GRUB (1) Permite utilizador seleccionar o sistema operativo a carregar ( dual boot ). Configuração armazenada no ficheiro /boot/grub.conf,, existente na partição /boot Master Boot Record Partition 1: 100M EXT3 (Linux) /boot Partition 2: 10GB NTFS (Windows XP) Partition 3: 512MB Linux Swap GRUB MBR Passes control to the /boot partition GRUB then boots to an OS (Windows or Linux) Partition 4: 10GB EXT3 (Linux) / Programação de Sistemas Introdução ao FS : 8/46

GRUB (2) Configuração #boot=/dev/sda default=0 timeout=20 Opção por omissão Tempo de espera para utilizador escolher splashimage=(hd0,1)/grub/splash.xpm.gz hiddenmenu Título da partição title Fedora (2.6.27.30-170.2.82.fc10.i686) root (hd0,1) Imagem do núcleo a carregar (mais opções) kernel /vmlinuz-2.6.27.30-170.2.82.fc10.i686 ro root=/dev/volgroup00/logvol00 rhgb quiet initrd /initrd-2.6.27.30-170.2.82.fc10.i686.img title WinXP rootnoverify (hd0,0) chainloader +1 Programação de Sistemas Introdução ao FS : 9/46 GRUB (3) Em caso de esquecimento da passwd de root, o GRUB permite arrancar o núcleo no nível 1. Depois de seleccionar a partição, premir comando e (editar). Adicionar no fim da linha a opção single. Premir return e depois premir comando b (comando boot ). No nível 1 pode-se alterar directament a passwd com o comando passwd root. Nota: o teclado é o Inglês, porque no nível 1 não são carregados outros dispositivos. Como evitar que um intruso se aproprie do PC c/ Linux? Introduzir no grub uma passwd de acesso, acrescentando depois do initrd password --md5 $1$w7Epf0$vX6rxpozznLAVxZGkcFcs Programação de Sistemas Introdução ao FS : 10/46

Estrutura de ficheiros (1) Um ficheiro guarda informação de forma persistente em dispositivos de memória de massa (disco, CDROM, ) Ficheiros podem ser estruturados em diversas formas: Figura 6-2, Modern Operating Systems Programação de Sistemas Introdução ao FS : 11/46 Estrutura de ficheiros (2) a) Sequência de Bytes O sistema operativo desconhece estrutura interna dos ficheiros - solução adoptado pelo Linux e Windows. b) Sequência de registos Os registos possuem comprimento fixo solução adoptada pelos computadores antigos de grande porte (ex: registo corresponde a um cartão perfurado de 80 caracteres, ou linha de impressora de 132 caracteres) c) Árvore de registos Cada registo pode ter comprimento distinto mas contendo uma chave - solução adoptada nas bases de dados, que facilita o rápido acesso ao registo. Programação de Sistemas Introdução ao FS : 12/46

Estrutura de ficheiros (3) Ficheiros divididos pelo seu tipo, indicado pelo primeiro caractere no comando ls - l - Regular (texto, programa executável, ) b Dispositivo de blocos c Dispositivo de caracteres d Directório l Ligação simbólica p Tubos ( pipes ) s Socket Nota: Informação sobre ficheiro pelo comandostat fich [rgc@asterix 09]$ stat Real.html File: `Real.html' Size: 21859 Blocks: 48 IO Block: 4096 regular file Device: fd00h/64768d Inode: 12583147 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 7012/ rgc) Gid: ( 7000/docentes) Access: 2009-11-22 22:49:14.000000000 +0000 Modify: 2009-11-22 22:49:14.000000000 +0000 Change: 2009-11-22 22:49:14.000000000 +0000 Programação de Sistemas Alocação de ficheiros (1) Um ficheiro ocupa um, ou mais, blocos. Cada bloco corresponde a um, ou mais, sectores de disco (512B). Nota: no Linux, cada bloco ocupa 4KB. Existem 4 estratégias de alocação dos blocos de um ficheiro pela partição: 1. Contínua 2. Lista ligada 3. Tabela 4. Bloco indexado Programação de Sistemas Introdução ao FS : 14/46

Alocação de ficheiros (2) 1. Alocação contínua: Para cada ficheiro o directório contém apenas posição do primeiro bloco e o tamanho. Usado em CDROM, DVD e smart-cards. Vantagens: simplicidade de implementação leitura de um ficheiro feita numa única operação. Inconvenientes: fragmentação de disco após múltiplas operações de inserção e eliminação de ficheiros. Degrada significativamente o desempenho para ficheiros de acesso aleatório. Programação de Sistemas Introdução ao FS : 15/46 Alocação de ficheiros (3) Directório Ficheíro Início Comprimento A 0 4 B 4 3 C 7 6 E 18 12 Figura 6-12, Modern Operating Systems G 36 3 Programação de Sistemas Introdução ao FS : 16/46

Alocação de ficheiros (4) 2. Alocação por lista ligada : em cada bloco é indicada a localização do bloco seguinte. Para cada ficheiro o directório contém apenas posição do primeiro bloco e último blocos. Vantagens: Evita fragmentação de disco, porque todos os blocos livres podem ser usados independentemente da sua posição Inconvenientes: Acesso aleatório mais lento, por em cada acesso ser necessário posicionar-se desde início. Espaço extra ocupado pela localização do bloco seguinte. Os inconvenientes são resolvidos por transferência das localizações para uma tabela. Programação de Sistemas Introdução ao FS : 17/46 Alocação de ficheiros (5) Ex: alocação por lista de ficheiros A (5 blocos) e B (4 blocos) Directório Ficheíro Início Fim A 4 12 Figura 6-13, Modern Operating Systems B 6 14 Programação de Sistemas Introdução ao FS : 18/46

Alocação de ficheiros (6) 3. Alocação por tabela : localizações dos blocos armazenadas num única tabela residente na memória. Em cada índice é indicada a localização do bloco seguinte. Ex : ficheiro A, iniciado no bloco 4, prossegue nos blocos 7,2,10 e 12. Último bloco identificado por marcador (ex: -1). Ficheíro Directório Índice início A 4 B 6 Figura 6-14, Modern Operating Systems Programação de Sistemas Introdução ao FS : 19/46 Alocação de ficheiros (7) 4. Alocação por bloco indexado : localizações dos blocos armazenadas num bloco com índices. O directório apenas indica localização do bloco dos índices. Entradas irrelevantes por o ficheiro ser mais curto, indicadas por marcadores (-1). Solução adoptada pelo UNIX Exemplo: para ficheiros da figura 6-14 Directório Bloco 32 Ficheíro Bloco índices A 32 B 47 Programação de Sistemas Introdução ao FS : 20/46 4 7 2 10 12-1 -1

Alocação de ficheiros (8) Exemplo : seja um simples ficheiro de teste [rgc@asterix ~]$ cat > test.txt Ola [rgc@asterix ~]$ ls -l test.txt Dimensão do ficheiro = 4B -rw-r--r-- 1 rgc docentes 4 2008-11-26 11:03 test.txt [rgc@asterix ~]$ du -s test.txt 4 test.txt Programação de Sistemas Introdução ao FS : 21/46 Alocação de directorias (1) Nas directorias são armazenados atributos diversos: Acessíveis a utilizadores : identificador, dimensão, datas (criação, ) Internas ao sistema operativo : localização em disco, espaço ocupado em disco, Existem 2 estratégias de alocação dos atributos dos ficheiros: a) No próprio directório (estratégia adoptada pelo Windows) b) Num ficheiro especial, designado por i-node (estratégia adoptada pelo Linux) Programação de Sistemas Introdução ao FS : 22/46

Alocação de directorias (2) Figura 6-16, Modern Operating Systems Programação de Sistemas Introdução ao FS : 23/46 Ficheiros partilhados (1) APUE 4.16 Pode haver conveniência de um ficheiro ser partilhado ( shared ) por vários utilizadores. Membros da mesma equipa de projecto. Entrada de página WWW reside noutro directório de trabalho (por exemplo, a entrada ec-ps do nó comp.ist.utl.pt está no ficheiro /var/www/html/ec-ps da máquina comp,, mas reside no ficheiro /home/ec-ps/public_html/index.html). Idealmente, o ficheiro reside num directório mas é listado como fazendo parte noutro directório. O ficheiro é acedido, se o dono tiver privilégios para tal, através de uma ligação simbólica ( soft link ). Programação de Sistemas Introdução ao FS : 24/46

Ficheiros partilhados (2) A estrutura dos directórios em árvore passa a grafo directo acíclico (DAG-Directed Acyclic Graph) Figura 6-18, Modern Operating Systems Programação de Sistemas Introdução ao FS : 25/46 Ficheiros partilhados (3) No Linux, a ligação simbólica é criada pelo comando ln -s ficheiro_alvo ligação 1º Problema : se um dos utilizadores acrescentar dados ao ficheiro, como evitar que os novos blocos sejam apenas acrescentados na directoria do utilizador que efectuou a operação? Solução A (adoptada pelo Linux) : Os endereços dos blocos são armazenados no i-node. Como os directórios dos dois utilizadores referenciam a mesma estrutura, qualquer alteração ao ficheiro passa a ser acessível aos dois utilizadores. Programação de Sistemas Introdução ao FS : 26/46

Ficheiros partilhados (4) Figura 6-19, Modern Operating Systems No i-node é mantido um contador das ligações para o ficheiro, que só é eliminado quando o contador chega a 0. Solução B : Uma ligação simbólica é um tipo especial de ficheiro LINK. Programação de Sistemas Introdução ao FS : 27/46 Ficheiros partilhados (5) 2º Problema : quando se copia uma ligação, o que se transfere? a referência (e para onde, o caminho absoluto para o ficheiro ou o caminho relativo?) - inconveniente: noutro computador o caminho ou o ficheiro referenciado podem não existir. o ficheiro referenciado? - inconvenientes: duplicação do espaço em disco e a nova referência passa a ser um ficheiro independente. No Linux: A cópia transfere a referência se o ficheiro destino tiver o mesmo identificador, caso contrário transfere o ficheiro referenciado. As operações de abertura e leitura sobre uma ligação actuam sobre o ficheiro referenciado, a eliminação actua apenas sobre a ligação. Programação de Sistemas Introdução ao FS : 28/46

Ficheiros partilhados (6) As funções podem seguir, ou não, as ligações. A criação e leitura de ligações simbólicas definidas no POSIX. POSIX: #include <unistd.h> int *symlink(char *,char *); O 1º parâmetro é o caminho actual #include <unistd.h> int readlink(char *,char *,size_t); O 2º parâmetro é a localização do buffer O 3º parâmetro é a dimensão do buffer Função access chdir chmod chown creat exec Segue? (S/N) S S S N(até ver 2.1.81)/S Figura 4-17, Advanced Programming UNIX Environment Programação de Sistemas Introdução ao FS : 29/46 link lstat open,opendir readlink remove,rename readlink stat unlink S S S N S N N N S S Estrutura de directorias (1) [Def] Directoria é um ficheiro especial que contém as referência a ficheiros (programas, texto, subdirectorias, ) nele contidos. A ligação da directoria a um ficheiro nele contido é designada por ligação dura ( hard link ). As directorias são organizadas em árvore, com a raíz no Linux designada por / - root. Em cada directoria todos os ficheiros devem ter identificadores distintos (directorias distintas podem conter ficheiros com mesmo identificador) A cada utilizador é atribuído um directório quando ele(a) entra em sessão. O directório de entrada é referido por $HOME ou ~. Em cada directório existem duas referências:. Próprio directório.. Directório ascendente na hierarquia Programação de Sistemas Introdução ao FS : 30/46

Estrutura de directorias (2) A. Sistema de directoria única Vantagens: estrutura muito simples Inconvenientes: obriga identificadores distintos Exemplo: directoria única com 4 ficheiros de 3 donos (A,B e C) Figura 6-7, Modern Operating Systems Programação de Sistemas Introdução ao FS : 31/46 Estrutura de directorias (3) B. Sistema de directoria de dois níveis: todos os ficheiros colocados nas folhas, com directoria ascendente atribuído a dono dos ficheiros. Vantagens: permite utilizadores distintos possuirem ficheiros com mesmo identificador. Inconvenientes: obriga cada utilizador ter cópia dos ficheiros binários de sistema e é incómodo para utilizadores com muitos ficheiros. Figura 6-8, Modern Operating Systems Programação de Sistemas Introdução ao FS : 32/46

Estrutura de directorias (4) C. Sistema de directoria hierárquica: cada utilizador define a sua própria organização hierárquica de directorias, por onde os ficheiros são distribuídos. Figura 6-9, Modern Operating Systems Programação de Sistemas Introdução ao FS : 33/46 Acesso a directorias (1) APUE 4.21 O POSIX define várias funções de manipulação de directorias. POSIX: #include <sys/types.h> #include <sys/dirent.h> DIR *opendir(const char *); Em caso de erro devolve NULL. POSIX: #include <sys/types.h> #include <sys/dirent.h> int closedir(dir *); Em caso de sucesso devolve 0, em caso de erro devolve -1. Programação de Sistemas Introdução ao FS : 34/46

Acesso a directorias (2) POSIX: #include <sys/types.h> #include <sys/dirent.h> struct dirent *readdir(const char *); A estrutura dirent deve conter campo char d_name[] com o identificador da entrada (ficheiro regular, directório ou outro). struct dirent { ino_t d_ino; char d_name[name_max + 1]; } POSIX: #include <sys/types.h> #include <sys/dirent.h> void rewinddir(dir *); Retorna início a posição do directório. Programação de Sistemas Introdução ao FS : 35/46 Tipo de ficheiros no ls (1) Cada interpretador de comandos ( shell ) tem uma forma particular para indicar o tipo de ficheiros no comando ls. A. O csh acrescenta um caractere no prefixo Directorias: / Executáveis: * Ligações: @ Tubos: Texto: asterix.ist.utl.pt> ls /etc/x11 applnk/ lbxproxy/ serverconfig/ twm/ xinit/ xorg.conf xserver/ fs/ prefdm* starthere/ X@ xkb@ Xresources xsm/ gdm/ proxymngr/ sysconfig/ xdm/ Xmodmap X.rpmsave@ Programação de Sistemas Introdução ao FS : 36/46

Tipo de ficheiros no ls (2) B. O bash utiliza cores no identificador, definidas na variável LS_COLORS no ~/.bashrc alias ls='ls --color LS_COLORS='di=1:fi=0:ln=31:pi=5:so=5:bd=5:cd=5:or=31:mi=0:ex=35:*.rpm=90 export LS_COLORS Letras determinam tipo de ficheiro (di=directory, fi=file, ln=symbolic link, ex=executable file, ) Inteiro indica código de cor (0-omissão, 1-bold, 31-red, 90-dark gray, ) [rgc@asterix ~]$ ls /etc/x11 applnk lbxproxy serverconfig twm xinit xorg.conf xserver fs prefdm starthere X xkb Xresources xsm gdm proxymngr sysconfig xdm Xmodmap X.rpmsave Programação de Sistemas Introdução ao FS : 37/46 Gestão espaços de disco (1) A. Dimensão dos blocos Blocos de grande dimensão levam a desperdício de disco (por exemplo, blocos de dimensão 4KB levam um ficheiro de 1KB a despediçar 75% do espaço) Blocos de reduzida dimensão diminuem capacidade de disco, medida por N * D bloco (N número de entradas da tabela de disco) Blocos de reduzida dimensão levam a perdas de tempo na transferência do ficheiro entre memória e disco. k bits demoram S t R k S t - tempo de posicionamento ( seek ) t + + Rt R t - período rotacional 2 d d - densidade bits na faixa Programação de Sistemas Introdução ao FS : 38/46

Gestão espaços de disco (2) Mediana da dimensão dos ficheiros ronda 1K7 Bytes. Seja um ficheiro de 2KB e diferentes tamanhos de bloco A tracejado é representada a eficiência da ocupação de disco, que é máxima até o bloco se tornar maior que o ficheiro. A contínuo é representada a taxa de transferência de dados, que aumenta com a dimensão do bloco devido ao peso do posicionamento Figura 6-20, Modern Operating Systems Adoptado pelo Linux Programação de Sistemas Introdução ao FS : 39/46 Gestão espaços de disco (3) B. Acompanhamento dos blocos livres Existem duas técnicas de registo dos blocos livres, listas ligadas e mapas de bits Listas ligadas: num bloco armazenada tabela com endereços de blocos livres. Para referências de E Bytes, um bloco de dimensão D armazena D/E-1 localizações de blocos livres (-1 destinado a ponteiro para bloco seguinte) Figura 6-21, Modern Operating Systems Ex: Para D=1KB e B=4, um bloco armazena 1KB/4-1=255 localizações Programação de Sistemas Introdução ao FS : 40/46 (a) (b)

Gestão espaços de disco (4) Nas listas ligadas, os blocos de localizações livres são recolhidos entre os blocos livres. Quando um bloco de localizações livres é esvaziado, naturalmente é liberto. Mapas de bits: o estado do bloco i determinado pelo valor do bit (0-livre, 1- ocupado). Um bloco de dimensão D armazena estado de 8.D blocos. Ex : Para D=1KB, o bloco armazena estados de 8 KB blocos bit [ i] 0 bloco = 1 bloco [ i] [ i] livre ocupado Programação de Sistemas Introdução ao FS : 41/46 Gestão espaços de disco (5) C. Quota de disco Limites a observar, por cada utilizador, no número de ficheiros e espaço de disco soft : pode ser ultrapassado. No log-in seguinte recebe um aviso, reduzindo em 1 o número de avisos disponíveis. O utilizador deve eliminar ficheiros em excesso. O sistema operativo recusa admissão de utilizadores com 0 avisos disponíveis. hard : nunca pode ser ultrapassado. Tentativa de escrita em ficheiros com limite hard atingido gera erro. Programação de Sistemas Introdução ao FS : 42/46

Gestão espaços de disco (6) Abertura de ficheiro, mesmo doutro utilizador, leva sistema operativo instala tabela de quotas na memória. A tabela de quotas é salva em disco quando último ficheiro é fechado. Figura 6-23, Modern Operating Systems Programação de Sistemas Introdução ao FS : 43/46 Gestão espaços de disco (7) No Linux, a determinação de quotas de disco para utilizadores segue os seguintes passos (exemplo para partição/home): 1. Entrar em modo de utilizador único, através do comando init 1 2. Alterar sistema de ficheiros por forma a admitir quotas de disco, adicionando a opção usrquota no ficheiro/etc/fstab /etc/fstab anterior LABEL=/home /home ext3 defaults 1 2 /etc/fstab alterado LABEL=/home /home ext3 defaults,usrquota 1 2 3. Remontar sistema de ficheiro, através do comando mount -o remount /home Programação de Sistemas Introdução ao FS : 44/46

Gestão espaços de disco (8) limites blocos 4. Criar ficheiro aquota.user no topo da partição, através dos comandos touch /home/aquota.user chmod 600 /home/aquota.user 5. Instruir Linux a ler ficheiro aquota.user quotacheck vagum 6. Alterar quotas de utilizador com comando edquota u, que invoca o editor por omissão (por exemplo, vi) Disk quota for user rgc (uid 500): Filesystem blocks soft hard inodes soft hard /dev/hda3 24 5000 0 7 0 0 Blocos correntes (1KB) Limite soft i-nodes correntes limites inodes Programação de Sistemas Introdução ao FS : 45/46 Gestão espaços de disco (9) 7. Terminar modo de utilizador único, através do comando init 3 O Linux não verifica as quotas quando o ficheiro é aberto, pelo que deve ser lançado periodicamente essa verificação com cron #!/bin/bash quotacheck vagu Relatórios de utilização podem ser gerados pelo comando repquota partição Programação de Sistemas Introdução ao FS : 46/46