SORC-Tema 5
SORC-Tema 5
Bibliografia
Basica ꞉ Sistemas operacionais modernos 3ª edição Tanenbaum
24 de outubro de 2024 - Curso e ano: Engenharia Mecatrónica , 2º ano semestre 4 Docente: Engo. Essitone Lote Gimo Pag. 1 de 22
UniZambeze – U n i v e r s i d a d e Z a m b e z e Sistemas operativos e Redes de Computadores
5 Sistemas de arquivos
5.1 Arquivos
5.2 Diret´orios
5.3 Servi¸cos do sistema operacional
5.4 Implementa¸c˜ao L´ogica
5.5 Implementa¸c˜ao F´ısica
5.6 Fragmenta¸c˜ao
Como vimos na se¸c˜ao 4.3, os dispositivos de armazenamento secund´ario s˜ao utilizados para armazenar dados
de forma perene, isto ´e, o armazenamento ´e feito de forma confi´avel e ´ıntegra, mesmo quando o sistema
computacional permanece desligado por longos per´ıodos de tempo. O armazenamento perene de informa¸c˜oes ´e
desejado pelas seguintes raz˜oes [TAN92, p. 145]:
• Existem uma outra infinidade de problemas pr´aticos que produzem dados durante sua execu¸c˜ao, raz˜ao
de sua existˆencia, que n˜ao podem ser descartados pois ser˜ao utilizados por outros processos, tal como o
cruzamento de dados informados em declara¸c˜oes de imposto de renda, o resultado de simula¸c˜oes f
´ısicas/qu´ımicas/matem´aticas, a solu¸c˜ao de problemas diversos etc.
• Certos conjuntos de dados n˜ao podem pertencer a um u´nico processo, isto ´e, serem dispostas no espa¸co
de endere¸camento de um simples programa, devendo ser compartilhada por muitos outros processos, tal
como os dados de lota¸c˜ao de avi˜oes de uma companhia a´erea, as informa¸c˜oes de tarifa¸c˜ao de uma
companhia telefˆonica etc.
Todas estas raz˜oes justificam a necessidade do armazenamento de informa¸c˜oes em meios distintos da mem
´oria prim´aria, que tem capacidade limitada, e de forma independente dos processos, dada as quest˜oes de
persistˆencia e compartilhamento, sem considerarmos as quest˜oes relacionadas a integridade e seguran¸ca dos
dados.
Para que o armazenamento possa ser realizado de maneira tal a atender as raz˜oes enunciadas, ´e necess´aria
uma adequada organiza¸c˜ao destes dados nos dispositivos destinados ao armazenamento secund´ario, tal como
unidades de disco, unidades de fita magn´etica, CD-ROMs etc.
Dado que podem existir muitos processos num sistema computacional, cada um utilizando e produzindo
diferentes conjuntos de dados, torna-se necess´ario distinguir tais conjuntos de dados. Os arquivos (files) s˜ao as
unidades que contˆem estes conjuntos distintos de dados, de forma que estes possam ser utilizados pelos
processos.
24 de outubro de 2024 - Curso e ano: Engenharia Mecatrónica , 2º ano semestre 4 Docente: Engo. Essitone Lote Gimo Pag. 2 de 22
UniZambeze – U n i v e r s i d a d e Z a m b e z e Sistemas operativos e Redes de Computadores
Como tudo mais num sistema computacional, o sistema operacional controla as opera¸c˜oes sobre os arquivos,
organizando seu armazenamento no que chamamos de sistema de arquivos (file system). Um sistema de arquivos
geralmente cont´em [DEI92, p. 389]:
• M´etodos de acesso: forma com que os dados s˜ao armazenados nos arquivos;
Ainda segundo Deitel [DEI92, p. 391], um sistema de arquivos deve permitir, funcionalmente falando, que:
• os usu´arios possam criar, modificar e eliminar arquivos, bem com realizar sua duplica¸c˜ao ou a
transferˆencia de dados entre arquivos;
• que a interface seja amig´avel e consistente, admitindo a realiza¸c˜ao de opera¸c˜oes apenas atrav´es dos
nomes simb´olicos dos arquivos, garantindo independˆencia do dispositivo utilizado.
Com isto percebemos que os sistemas de arquivos preocupam-se com a organiza¸c˜ao e controle do
armazenamento secund´ario de um sistema computacional. Tamb´em ´e necess´ario destacar que um sistema
operacional pode suportar diversos sistemas de arquivos, isto ´e, podem operar utilizando diferentes formas de
administra¸c˜ao dos dispositivos de armazenamento secund´ario. A seguir, na Tabela 5.3, alguns exemplos de
sistemas operacionais e dos sistemas de arquivos suportados.
Tabela 5.3: Sistemas de arquivos de alguns sistemas operacionais
Sistema Sistemas de arquivos suportados
operacional
MS-DOS FAT (file allocation table) 12 e 16 bits
MS-Windows 95/98 FAT (file allocation table) 12 e 16 bits
VFAT (virtual file allocation table) 32 bits
MS-Windows NT FAT (file allocation table) 12 e 16 bits
MS-Windows 2000 VFAT (virtual file allocation table) 32 bits
MS-Windows XP NTFS (new technology file system)
IBM OS/2 FAT (file allocation table) 12 e 16 bits
HPFS (high performance file system)
Linux FAT (file allocation table) 12 e 16 bits
VFAT (virtual file allocation table) 32 bits
Minix (Mini Unix)
24 de outubro de 2024 - Curso e ano: Engenharia Mecatrónica , 2º ano semestre 4 Docente: Engo. Essitone Lote Gimo Pag. 3 de 22
UniZambeze – U n i v e r s i d a d e Z a m b e z e Sistemas operativos e Redes de Computadores
24 de outubro de 2024 - Curso e ano: Engenharia Mecatrónica , 2º ano semestre 4 Docente: Engo. Essitone Lote Gimo Pag. 4 de 22
UniZambeze – U n i v e r s i d a d e Z a m b e z e Sistemas operativos e Redes de Computadores
256
Insens´ıvel ao caixa
UNIX 1-255 char 1-255 char N˜ao usa extens˜oes
(gen´erico) Comprimento total <
256
Sens´ıvel ao caixa
Note que o UNIX, dado possuir um sistema de arquivos com denomina¸c˜ao sens´ıvel ao caixa, trataria como
sendo diferentes arquivos com os nomes ab, AB, Ab e aB. Tal caracter´ıstica, embora u´til, pode se tornar um
pesadelo em certas situa¸c˜oes quando n˜ao se percebe a sutileza de um u´nico caractere com o caixa errado. Nos
sistemas que n˜ao utilizam extens˜oes ou admitem mu´ltiplas extens˜oes, podem surgir denomina¸c˜oes tais como
names.dat.old ou source.c.gzip, indicando que diferentes a¸c˜oes foram tomadas com os arquivos.
Al´em dos nomes os arquivos podem possuir atributos, isto ´e, informa¸c˜oes que n˜ao fazem parte dos
arquivos, embora associadas aos mesmos, que podem ser utilizadas para indicar: criador (creator), propriet´ario
(owner), tamanho (size), data de cria¸c˜ao (creation date), data do u´ltimo acesso (last access date), data da u´ltima
altera¸c˜ao (last modification date), flags diversas (de sistema, oculta¸c˜ao, de arquivo, de leitura etc) permiss˜oes
de acesso, tamanho do registro, tamanho m´aximo, tipo etc. As permiss˜oes de acesso s˜ao usadas em conjunto com
as capacidades ou listas de controle de acesso.
As capacidades s˜ao informa¸c˜oes que autorizam certos usu´arios ou processos a realizarem certas opera¸c˜oes
sobre os arquivos, tal como leitura e escrita. As listas de controle de acesso s˜ao rela¸c˜oes de usu´ario que podem
realizar opera¸c˜oes espec´ıficas sobre um dado arquivo, tal como execu¸c˜ao ou escrita. Enquanto as capacidades
s˜ao associadas aos usu´arios ou processos as listas de acesso s˜ao associadas diretamente aos arquivos.
Os sistemas UNIX utilizam-se de uma lista de acesso simplificada baseada no conceito de grupos. Permiss˜oes
s˜ao associadas a todos os arquivos e podem ser diferenciadas em trˆes n´ıveis: o do propriet´ario, o do grupo ao
qual pertence seu propriet´ario e dos demais usu´arios. Para cada n´ıvel podem ser especificadas separadamente
permiss˜oes para leitura, escrita e execu¸c˜ao, que quando combinadas resultam em diferentes modos de acesso. J
´a o MS-DOS associa apenas um mphbit de permiss˜ao de escrita (Read-Only), ao qual se associam os atributos
Oculto (Hidden), Sistema (System) e Arquivo (Archive), que na pr´atica representam um prec´ario esquema de
prote¸c˜ao contra elimina¸c˜ao indevida.
Existem diversas estruturas poss´ıveis para os arquivos tais como sequ¨encial, por registros e em ´arvore
[TAN92, p. 148], tal como ilustrado na Figura 5.19.
Na estrutura sequ¨encial, um arquivo ´e uma sequ¨ˆencia de bytes, garantindo a m´axima flexibilidade ao usu
´ario do sistema operacional que oferece opera¸c˜oes bastante simples. Na estrutura de registro, um arquivo ´e uma
24 de outubro de 2024 - Curso e ano: Engenharia Mecatrónica , 2º ano semestre 4 Docente: Engo. Essitone Lote Gimo Pag. 5 de 22
UniZambeze – U n i v e r s i d a d e Z a m b e z e Sistemas operativos e Redes de Computadores
sequ¨ˆencia de registros, os quais podem ter diversos formatos. Esta estrutura ´e um pouco menos flex´ıvel e
depende de opera¸c˜oes um pouco mais sofisticadas do SO. Existem diversos arranjos para arquivos organizados
como sequ¨ˆencias de registros: registro de tamanho fixo desbloqueados, registro de tamanho fixo bloqueado,
registro de tamanho vari´avel desbloqueados e registro de tamanho vari´avel bloqueado [DEI92, p. 393].
Sistemas operacionais como DOS, MS-Windows 95, 98 e NT e Unix estruturam seus arquivos como sequ¨ˆencias
de bytes. Computadores de grande porte, tipicamente os sistemas IBM utilizam, como organiza¸c˜ao mais comum,
as sequ¨ˆencias de registro. A organiza¸c˜ao em ´arvore ´e raramente implementada.
Dependendo do conteu´do do arquivo este pode ser entendido como de um certo tipo. Muitos sistemas
operacionais utilizam a extens˜ao do nome do arquivo como uma referˆencia para o tipo de seu conteu´do.
Particularmente nos sistemas operacionais MS-Windows 95, 98, NT, 2000 ou XP podem ser associadas aplica¸c˜oes
a determinadas extens˜oes, auxiliando o usu´ario. Genericamente arquivos comuns, isto ´e, aqueles utilizados pelos
usu´ario para o armazenamento de informa¸c˜oes, podem ser considerados como do tipo texto, quando seu conteu
´do pode ser visualizado diretamente (via comandos DOS type [IBM92a] ou Unix more [CON99, p. 132]); ou sendo
bin´ario, quando seu conteu´do precisa ser interpretado por uma aplica¸c˜ao para poder ser visualizado.
Os arquivos execut´aveis tamb´em s˜ao arquivos bin´arios, cuja execu¸c˜ao
´e realizada diretamente pelo sistema operacional. Vale ressaltar que um arquivo bin´ario n˜ao ´e simplesmente
uma sequ¨ˆencia de instru¸c˜oes que podem ser executadas pelo processador, al´em do c´odigo execut´avel
propriamente dito o sistema operacional necessita conhecer informa¸c˜oes adicionais sobre o tamanho do
programa, sua ´area de dados, o tamanho necess´ario para sua pilha de retorno, etc.
Geralmente estas informa¸c˜oes s˜ao posicionadas num cabe¸calho (header) do arquivo sendo que cada sistema
operacional possui um formato pr´oprio de arquivo identificado como execut´avel. Na Figura 5.20 encontramos os
formatos de arquivos execut´aveis do sistemas operacionais DOS, Windows 3.x e Windows 95 enquanto que Figura
5.22 mostra a estrutura de um arquivo execut´avel no sistema Unix com detalhes de seu cabe¸calho.
Especificamente no sistema operacional Windows 95/98 e Windows NT ´e poss´ıvel visualizarse detalhes internos
de arquivos execut´aveis e bibliotecas de v´ınculo dinˆamico (DLLs ou dynamic link libraries) tais como cabe¸calho
da imagem, cabe¸calho opcional, tabela de importa¸c˜ao, tabela de se¸c˜oes e informa¸c˜oes do cabe¸calho. Isto ´e
poss´ıvel atrav´es da op¸c˜ao de visualiza¸c˜ao r´apida oferecida pelo gerenciador de arquivos nativo, como
ilustrado na Figura 5.21.
24 de outubro de 2024 - Curso e ano: Engenharia Mecatrónica , 2º ano semestre 4 Docente: Engo. Essitone Lote Gimo Pag. 6 de 22
UniZambeze – U n i v e r s i d a d e Z a m b e z e Sistemas operativos e Redes de Computadores
Al´em dos arquivos comuns, os sistemas de arquivos geralmente mantˆem arquivos especiais denominados
diret´orios (directories) que contˆem partes da estrutura do sistema de arquivos. Em sistemas Unix ainda existem
arquivos especiais utilizados para modelar certos dispositivos perif´ericos, podendo ser arquivos especiais de
caracteres (character special files) ou arquivos especiais de blocos (block special files) que permitem o acesso
terminais, impressoras e rede no primeiro caso, discos, fitas e outros dispositivos de armazenamento secund´ario
no segundo.
Finalmente, do ponto de vista de armazenamento e acesso, os arquivos podem ser organizados das seguintes
maneiras [DEI92, p. 392]:
Sequ¨encial Quando os registros ou bytes s˜ao posicionados em sua ordem f´ısica. Numa fita isto representa
armazenamento cont´ıguo, embora em discos magn´eticos isto n˜ao seja necessariamente verdade.
Direto Quando os registro ou bytes s˜ao diretamente acessados no meio em que s˜ao armazenados, usualmente
um DASD. A aplica¸c˜ao deve conhecer a localiza¸c˜ao dos dados no dispositivo, sendo familiar com sua
organiza¸c˜ao. E um m´etodo extremamente r´apido, embora complexo.´
Sequ¨encial Indexado Os registros bytes s˜ao organizados numa sequ¨ˆencia l´ogica conforme uma chave e o
sistema mantˆem um´ındice para acelerar
24 de outubro de 2024 - Curso e ano: Engenharia Mecatrónica , 2º ano semestre 4 Docente: Engo. Essitone Lote Gimo Pag. 7 de 22
UniZambeze – U n i v e r s i d a d e Z a m b e z e Sistemas operativos e Redes de Computadores
o acesso a determinadas partes de um arquivo. Esta ´e uma forma de organiza¸c˜ao comum em tabelas de
bancos de dados.
Particionado Quando o arquivo ´e composto de subarquivos denominados membros. Para acessar seus membros
(members), o arquivo particionado possui um diret´orio, que funciona como seu´ındice. S˜ao utilizados para
armazenar bibliotecas ou bancos de dados.
5.2 Diret´orios
Um diret´orio (directory) nada mais ´e que um arquivo mantido pelo sistema de arquivos que contˆem uma lista de
arquivos e possivelmente outros diret´orios. Desta forma ´e poss´ıvel criar-se estruturas hier´arquicas de arquivos,
onde os diret´orios existentes dentro de outros s˜ao denominados subdiret´orios, tal como nos sistemas Unix,
OS/2, DOS, Windows e outros.
O que motivou a cria¸c˜ao dos diret´orios ´e o fato de que torna-se dif´ıcil a organiza¸c˜ao de um nu´mero grande
de arquivos armazenados num determinado dispositivo sem qualquer forma de divis˜ao. Os primeiros dispositivos
de armazenamento secund´ario tinham pequena capacidade o que resultava no armazenamento de um pequeno
nu´mero de arquivos, catalogados num diret´orio u´nico associado ao pr´oprio dispositivo. A medida que a
capacidade de armazenamento destes dispositivos cresceu, as unidades de disco passaram a armazenar v´arios
milhares de arquivos, assim a apresenta¸c˜ao de uma simples listagem dos arquivos existentes significaria para o
usu´ario visualizar muitas telas repletas de nomes.
O sistema operacional DOS, em sua vers˜ao 1.0 lan¸cada em 1981, suportava apenas um diret´orio u´nico por
dispositivo, usualmente discos flex´ıveis de limitada capacidade. Com a introdu¸c˜ao de suporte para discos r´ıgidos
de maior capacidade na vers˜ao 2.0 liberada em 1983, foram adicionadas capacidades para cria¸c˜ao e
manuten¸c˜ao de diret´orios e subdiret´orios [JAM87, p. 25].
A cria¸c˜ao de diret´orios permite que os arquivos sejam divididos e organizados conforme seu tipo, propriet
´ario, utiliza¸c˜ao ou qualquer outro crit´erio, possibilitando seu acesso de forma mais simples. Como mostra a
Figura 5.23, existem v´arias organiza¸c˜oes poss´ıveis de diret´orios, tais como em um n´ıvel, em dois n´ıveis ou em
mu´ltiplos n´ıveis (ou em ´arvores).
24 de outubro de 2024 - Curso e ano: Engenharia Mecatrónica , 2º ano semestre 4 Docente: Engo. Essitone Lote Gimo Pag. 8 de 22
UniZambeze – U n i v e r s i d a d e Z a m b e z e Sistemas operativos e Redes de Computadores
Tamb´em ´e poss´ıvel organizar-se os diret´orios como grafos ac´ıclicos (acyclic graph directories) que permite
que um arquivo ou mesmo um diret´orio seja apontado por mu´ltiplas entradas presentes em diferentes diret
´orios, ou seja, que tal arquivo ou diret´orio simultaneamente presentes como conteu´do de v´arios diret´orios ao
mesmo tempo, permitindo seu compartilhamento [SG00, p. 356]. Isto ´e comum em sistemas UNIX, onde podem
ser criados links apontando os arquivos ou diret´orios compartilhados.
Internamente os diret´orios s˜ao organizados como um conjunto de entradas, uma para cada arquivos ou
subdiret´orio que contˆem. A cada uma destas entradas s˜ao associados atributos que descrevem as permiss˜oes
associadas aos arquivos, os endere¸cos onde o arquivo est´a fisicamente armazenado no dispositivo e outras
informa¸c˜oes tais como tamanho do arquivo, data de cria¸c˜ao, etc. como visto na se¸c˜ao 5.5.1.
No sistema de arquivos FAT (file allocation table) do MS-DOS e outros sistema operacionais, uma entrada t
´ıpica de diret´orio possui a estrutura ilustrada na Tabela 5.5 [JAM87, p. 266] [NOR89, p. 106] [TAN92, p. 167]. Nos
sistemas Unix as entradas de diret´orios s˜ao bem mais simples, como mostra a Tabela 5.6.
Quando s˜ao solicitadas opera¸c˜oes sobre arquivos, tais como abertura ou cria¸c˜ao de um arquivo, o
sistema operacional consulta o diret´orio corrente Tabela 5.5: Entrada de diret´orio do sistema de arquivos FAT
Campo Tamanho
(bytes)
Nome do arquivo 8
Extens˜ao 3
Atributos 1
Reservado para DOS 10
Hora 2
Data 2
Nu´mero do Setor Inicial 2
Tamanho do Arquivo 4
Total 32
Tabela 5.6: Entrada de diret´orio de sistemas Unix
24 de outubro de 2024 - Curso e ano: Engenharia Mecatrónica , 2º ano semestre 4 Docente: Engo. Essitone Lote Gimo Pag. 9 de 22
UniZambeze – U n i v e r s i d a d e Z a m b e z e Sistemas operativos e Redes de Computadores
Campo Tamanho
(bytes)
Nu´mero do I- 2
Node
Nome do Arquivo 14
Total 16
(current directory), isto ´e, o diret´orio que est´a sendo consultado no momento, verificando a existˆencia do
arquivo desejado para abertura ou a possibilidade de cria¸c˜ao de um novo arquivo segundo as regras de
identifica¸c˜ao do sistema.
A existˆencia de uma estrutura de diret´orios traz como implica¸c˜ao direta a necessidade de uma forma de
denomina¸c˜ao u´nica dos arquivo considerandose o sistema como um todo. Da mesma forma que n˜ao ´e poss´ıvel
a existˆencia de dois arquivos de mesmo nome em um mesmo diret´orio, dois arquivos ou diret´orios quaisquer
n˜ao podem ter a mesma denomina¸c˜ao do ponto de vista do sistema. Esta denomina¸c˜ao sistˆemica dos arquivos
´e chamada de especifica¸c˜ao completa do caminho do arquivo ou apenas caminho do arquivo (pathname) e deve
permitir a identifica¸c˜ao u´nica de qualquer arquivo ou diret´orio do sistema.
A especifica¸c˜ao de caminho de arquivo pode ser absoluta (absolute pathname) ou relativa (relative pathname)
quando se refere a diret´orio corrente. Muitas vezes o diret´orio corrente ´e tratado como diret´orio de trabalho
(working directory).
Os caminhos de arquivos para arquivos ou diret´orios s˜ao formados pelo nome dos diret´orios nos quais est˜ao
contidos, sendo que utiliza-se um caractere especial, que n˜ao pode ser utilizado na denomina¸c˜ao de arquivos e
diret´orios, como ”
O sistemas operacionais DOS e Windows utilizam-se de uma estrutura de diret´orios hierarquicamente
organizada, tal como nos sistemas Unix, diferenciando-se pelo caractere de separa¸c˜ao de nomes e principalmente
pela forma de denomina¸c˜ao de dispositivos. Enquanto que no Unix os dispositivos s˜ao tratados como arquivos
especiais e mapeados diretamente no sistema de arquivos a partir de diret´orios arbitr´arios, isto ´e, especificados
pelo usu´ario durante a configura¸c˜ao ou opera¸c˜ao do sistema atrav´es do comando mount [CON99, p. 224], tanto
o DOS como o Windows d˜ao uma denomina¸c˜ao espec´ıfica para cada dispositivo f´ısico, chamando-os de
unidades. Sendo assim, qualquer que seja o dispositivo de armazenamento, ou seja, para floppies, discos,
CD-R/RWs etc., sempre temos um diret´orio raiz para cada unidade. Da´ı a necessidade de adicionar-se a
especifica¸c˜ao da unidade ao caminho absoluto e tamb´em a impossibilidade de especificar-se caminhos relativos
envolvendo unidades distintas.
24 de outubro de 2024 - Curso e ano: Engenharia Mecatrónica , 2º ano semestre 4 Docente: Engo. Essitone Lote Gimo Pag. 10 de 22
UniZambeze – U n i v e r s i d a d e Z a m b e z e Sistemas operativos e Redes de Computadores
Na maioria dos casos, os sistemas operacionais utilizam-se de diret´orios particulares para armazenamento de
arquivos espec´ıficos, como mostra a Tabela 5.7.
• Cataloga¸c˜ao (cat ou dir) lista os arquivos existentes num determinado diret´orio ou unidade.
Do ponto de vista do conteu´do dos arquivos, isto ´e, considerando a manipula¸c˜ao dos dados armazenados nos
arquivos, devem tamb´em existir opera¸c˜oes para:
• Pesquisa (seek ou find) para determinar uma posi¸c˜ao para escrita ou leitura em um arquivo.
• Anexa¸c˜ao (append) para adi¸c˜ao de novos dados num arquivo existente.
As opera¸c˜oes de inser¸c˜ao, atualiza¸c˜ao e elimina¸c˜ao de dados em arquivos n˜ao s˜ao comuns, existindo em
sistemas de grande porte onde os arquivos s˜ao usualmente organizados em blocos ou registros formatados.
Como muitos sistemas de arquivos suportam diret´orios, opera¸c˜oes espec´ıficas deve ser supridas para sua
utiliza¸c˜ao [TAN92][p. 161] [SG00, p.
350]
• Leitura (read) permite a leitura do conteu´do de um diret´orio, ou seja, sua cataloga¸c˜ao ou listagem.
Ainda podem ser poss´ıveis outras opera¸c˜oes sobre arquivos e diret´orios, tais como sua reorganiza¸c˜ao sob
algum crit´erio (ordena¸c˜ao), inclus˜ao ou remo¸c˜ao de liga¸c˜oes (links no sistema Unix, atalhos nos sistemas
Windows ou shadows nos sistemas OS/2), obten¸c˜ao de informa¸c˜oes sobre arquivos ou diret´orios, associa¸c˜ao
com aplicativos etc.
Todas as opera¸c˜oes suportadas pelo sistema operacional para manipula¸c˜ao de arquivos e diret´orios est˜ao
dispon´ıveis para utiliza¸c˜ao em programas atrav´es das chamadas do sistema (system calls), como no exemplo
dado no Exemplo 5.1 de algumas chamadas para um programa simples destinado ao sistema Unix.
// vari´avel para controle do arquivo int arquivo;
24 de outubro de 2024 - Curso e ano: Engenharia Mecatrónica , 2º ano semestre 4 Docente: Engo. Essitone Lote Gimo Pag. 13 de 22
UniZambeze – U n i v e r s i d a d e Z a m b e z e Sistemas operativos e Redes de Computadores
As interfaces em modo texto exigem maior abstra¸c˜ao do usu´ario, que deve memorizar a sintaxe dos
comandos que utiliza mais frequ¨entemente, o que evidentemente significa que tais usu´arios devem ter maior
proficiˆencia t´ecnica para utiliza¸c˜ao destes sistemas.
Esta dificuldade motivou o desenvolvimento de interfaces gr´aficas que, entre outros benef´ıcios,
possibilitassem:
• cria¸c˜ao de um modelo de interface mais consistente que pudesse ser disponibilizada para outras
aplica¸c˜oes.
Para os sistemas Unix foi criado o padr˜ao gr´afico de janelas Xwindows, que pode ser utilizado para
desenvolvimento de aplica¸c˜oes gr´aficas, e tamb´em o CDE (Common Desktop Environment), conduzido por um
cons´orcio dos maiores fabricantes de sistemas Unix num esfor¸co de padroniza¸c˜ao da interface gr´afica de seus
sistemas. Outros fabricantes, tais como IBM, Microsoft e Apple oferecem seus sistemas operacionais com interfaces
gr´aficas propriet´arias, todas baseadas em janelas.
O tratamento gr´afico que especificamente os sistemas MS-Windows d˜ao a estrutura de diret´orios, isto ´e,
uma organiza¸c˜ao hier´arquica de pastas nas quais podem existir arquivos e outras pastas ´e a id´eia central da
met´afora apresentada. Mesmo sem o conhecimento de comandos de navega¸c˜ao na estrutura de diret´orios ou de
opera¸c˜oes sobre arquivos, o usu´ario dos sistemas MS-Windows pode se movimentar pela estrutura de diret
´orios, pode copiar, renomear, eliminar e criar arquivos ou diret´orios apenas atrav´es da utiliza¸c˜ao do sistema de
menus oferecidos ou das opera¸c˜oes que podem ser realizadas atrav´es do teclado ou mouse. Tamb´em ´e poss
´ıvel executar-se aplica¸c˜oes e criar-se atalhos (links).
As opera¸c˜oes realizadas atrav´es dos menus, teclado e mouse s˜ao transformadas pelo sistema operacional em
chamadas do sistema que realizam as tarefas especificadas, evitando tanto o conhecimento da forma com que tais
opera¸c˜oes s˜ao verdadeiramente realizadas como a memoriza¸c˜ao dos comandos de manipula¸c˜ao de arquivos e
diret´orios.
24 de outubro de 2024 - Curso e ano: Engenharia Mecatrónica , 2º ano semestre 4 Docente: Engo. Essitone Lote Gimo Pag. 14 de 22
UniZambeze – U n i v e r s i d a d e Z a m b e z e Sistemas operativos e Redes de Computadores
Estas interfaces gr´aficas facilitam muito a opera¸c˜ao do sistema principalmente para usu´arios menos
experientes, al´em disso proporcionam melhor visualiza¸c˜ao da estrutura de diret´orios e da distribui¸c˜ao de
arquivos pelos diret´orios e unidades de armazenamento do sistema.
Como indicado por Deitel [DEI92, p. 394] e Tanenbaum [DEI92, p. 162], os arquivos podem ser armazenados
basicamente de duas formas, ou seja, atrav´es da:
24 de outubro de 2024 - Curso e ano: Engenharia Mecatrónica , 2º ano semestre 4 Docente: Engo. Essitone Lote Gimo Pag. 15 de 22
UniZambeze – U n i v e r s i d a d e Z a m b e z e Sistemas operativos e Redes de Computadores
• Aloca¸c˜ao cont´ıgua e
Aloca¸c˜ao cont´ıgua
Uma forma de organizar-se os arquivos fisicamente ´e atrav´es da armazenagem dos dados em ´areas adjacentes
dos dispositivos f´ısicos, isto ´e, em setores consecutivos das unidades de disco [SG00, p. 373]. Sistemas de
arquivos implementados desta forma s˜ao denominados de aloca¸c˜ao cont´ıgua ou cont´ınua e neles o
armazenamento f´ısico corresponde `a organiza¸c˜ao l´ogica do arquivo, ou seja, o primeiro bloco de dados ocupa o
primeiro setor alocado e assim sucessivamente (vide Figura 5.27).
Este ´e o esquema mais simples de organiza¸c˜ao f´ısica de arquivos que exibe algumas vantagens e
desvantagens [DEI92, p. 395] [DEI92, p. 163]. As vantagens s˜ao:
24 de outubro de 2024 - Curso e ano: Engenharia Mecatrónica , 2º ano semestre 4 Docente: Engo. Essitone Lote Gimo Pag. 16 de 22
UniZambeze – U n i v e r s i d a d e Z a m b e z e Sistemas operativos e Redes de Computadores
• as opera¸c˜oes de leitura e escrita s˜ao as mais eficientes poss´ıveis para qualquer tipo de dispositivo.
Sistemas que exigem maior performance nas opera¸c˜oes de leitura e escrita e que n˜ao necessitem de
modifica¸c˜oes frequ¨entes no tamanho de seus arquivos podem utilizar eficientemente este esquema de
aloca¸c˜ao, tal como o sistema operacional IBM Vm/CMS.
24 de outubro de 2024 - Curso e ano: Engenharia Mecatrónica , 2º ano semestre 4 Docente: Engo. Essitone Lote Gimo Pag. 17 de 22
UniZambeze – U n i v e r s i d a d e Z a m b e z e Sistemas operativos e Redes de Computadores
Na lista ligada de setores (linked list allocation) cada setor do disco contˆem um ponteiro que pode ser
utilizado para indicar um outro setor [SG00, p. 376]. Desta forma uma arquivo pode ser armazenado atrav´es de
uma entrada simples no diret´orio que indica o primeiro de uma sequ¨ˆencia de setores, onde cada um destes
setores aponta para o pr´oximo. Um ponteiro com valor nulo indica que o arquivo terminou (vide Figura 5.29).
N˜ao existe necessidade dos setores alocados estarem em posi¸c˜oes adjacentes tal como na aloca¸c˜ao cont´ıgua. O
sistema pode manter uma lista de setores livres, que podem ser retirados para a cria¸c˜ao e aumento de arquivos
ou recuperados quando diminuem ou s˜ao eliminados. Isto permite um mecanismo de armazenamento que
acomoda facilmente as varia¸c˜oes de tamanho dos arquivos, usando integralmente a capacidade do disco,
eliminando a necessidade de mecanismos de compacta¸c˜ao embora promova a fragmenta¸c˜ao da unidade de
disco.
Conforme Tanenbaum [TAN92, p. 163] os maiores problemas encontrados no uso do mecanismo de uma lista
ligada de setores s˜ao:
1.As opera¸c˜oes de leitura e escrita tendem a ser ineficientes devido afragmenta¸c˜ao inerente deste m
´etodo.
2.O acesso randˆomico deixa de existir pois torna-se necess´ario ler cadasetor alocado para se determinar o
pr´oximo at´e a posi¸c˜ao desejada.
3.O posicionamento do ponteiro dentro de cada setor faz com que o blocode dados deixe de ser uma
potˆencia de 2, criando alguns inconvenientes do ponto de vista de programa¸c˜ao.
24 de outubro de 2024 - Curso e ano: Engenharia Mecatrónica , 2º ano semestre 4 Docente: Engo. Essitone Lote Gimo Pag. 18 de 22
UniZambeze – U n i v e r s i d a d e Z a m b e z e Sistemas operativos e Redes de Computadores
A lista ligada de setores indexada utiliza o mesmo princ´ıpio de armazenamento de setores interligados
eliminando o inconveniente associado ao ponteiro existente em cada setor. E criada uma tabela contendo a
rela¸c˜ao´ de todos os setores do dispositivos sendo que para cada entrada se associa um ponteiro (retirado dos
setores de dados). A entrada do diret´orio correspondente ao arquivo aponta para um setor desta tabela (o
primeiro setor do arquivo) que tem associado um ponteiro para a pr´oxima entrada e assim sucessivamente. Um
ponteiro nulo indica o fim do arquivo na tabela. Isto permite o acesso randˆomico do arquivo e mantˆem o bloco de
dados do setor num tamanho que ´e potˆencia de 2, embora a ineficiˆencia devido a fragmenta¸c˜ao permane¸ca.
Temos uma representa¸c˜ao deste esquema de organiza¸c˜ao na Figura 5.30.
A principal desvantagem deste m´etodo ´e o tamanho que da tabela de aloca¸c˜ao pode ter em unidades de
grande capacidade, por exemplo, uma unidade de 1.2 Gbytes dividida em setores de 1 Kbytes possui uma tabela de
aloca¸c˜ao com mais de um milh˜ao de entradas, que pode consumir espa¸co precioso para ser mantida
integralmente em mem´oria, pois cada entrada da tabela tipicamente utiliza 3 ou 4 bytes dependendo de como se d
´a a otimiza¸c˜ao do sistema [TAN92, p. 164].
O DOS e Windows utilizam esta estrat´egia para a organiza¸c˜ao f´ısica de floppies e unidades de disco. A tabela
de setores ´e chamada de Tabela de Aloca¸c˜ao de Arquivos (file allocation table) que d´a origem ao nome do
sistema de arquivos FAT. Na FAT o registro inicial armazena informa¸c˜oes sobre a pr´opria unidade, existindo
valores especiais para designa¸c˜ao de fim de arquivo e setores defeituosos [NOR89, p. 112].
A numera¸c˜ao associada ao nome FAT, como FAT12, FAT16 e FAT32, indica o nu´mero de bits utilizado para
numera¸c˜ao dos setores, representando assim a quantidade m´axima de setores que pode ser controlada, ou seja,
12 bits permitem endere¸car 4.096 setores, 16 bits endere¸cam 64K setores e 32 bits possibilitam 4G setores
distintos. Isto exibe outra fraqueza desta estrat´egia, uma unidade de 1.2 GBytes de capacidade possuir´a setores
de 512K (307,2K) e 32K (19,2K) com FAT de 12 e 16 bits respectivamente, o que ´e um inconveniente devido a
granularidade excessivamente grossa (um arquivo de 1 byte ocupa sempre um setor).
24 de outubro de 2024 - Curso e ano: Engenharia Mecatrónica , 2º ano semestre 4 Docente: Engo. Essitone Lote Gimo Pag. 19 de 22
UniZambeze – U n i v e r s i d a d e Z a m b e z e Sistemas operativos e Redes de Computadores
Outra forma comum de organiza¸c˜ao de arquivos ´e atrav´es da indexa¸c˜ao de n´os (index nodes ou i-nodes).
Um n´o indexado ´e uma pequena estrutura de dados que contˆem um conjunto de atributos e umas poucas
centenas de entradas onde cada entrada ´e um endere¸co de um bloco de dados na unidade de disco. Desta forma,
um pequeno arquivo pode ser mapeado com um u´nico i-node, otimizando todas as opera¸c˜oes realizadas sobre
ele. Se o arquivo n˜ao puder ser armazenado num u´nico i-node, alguns dos endere¸cos de blocos de dados s˜ao
substitu´ıdos por endere¸cos de outros i-nodes denominados de bloco indireto simples (single indirect block). Para
arquivos ainda maiores podem ser usados blocos indiretos duplos ou triplos (double ou triple indirect block). Este
´e esquema tipicamente utilizado pelos sistemas Unix, como tamb´em esquematizado na Figura 5.31.
Uma varia¸c˜ao destas estrat´egias ´e alocar grupos de setores, denominados blocos (blocks ou extents) ao inv
´es de setores individuais, no que se denomina estrat´egias de aloca¸c˜ao orientadas `a blocos. Estas estrat´egias
visam combinar algumas das vantagens da aloca¸c˜ao cont´ıgua e da aloca¸c˜ao n˜ao cont´ıgua atrav´es da aloca¸c˜ao
de blocos ao inv´es de setores individuais, o que elimina parcialmente o problema da fragmenta¸c˜ao al´em de
permitir a otimiza¸c˜ao da leitura ou escrita atrav´es de opera¸c˜oes com blocos inteiros (read ahead ou lazy write).
Como indica Deitel [DEI92, p. 397], existem v´arias maneiras de se implementar sistemas de aloca¸c˜ao orientados
`a blocos, semelhantes as existentes para setores:
Na lista ligada de blocos um nu´mero fixo de setores ´e alocado de cada vez, isto ´e, os blocos possuem o
mesmo tamanho, de modo que cada bloco contenha um ponteiro para o pr´oximo bloco tal como na lista ligada de
setores, apresentando vantagens e desvantagens idˆenticas.
Na lista ligada de blocos indexada, cujo princ´ıpio tamb´em ´e o mesmo da lista ligada de setores indexada,
´e poss´ıvel termos blocos de tamanho fixo ou vari´avel, num mecanismo mais flex´ıvel para o armazenamento de
dados.
24 de outubro de 2024 - Curso e ano: Engenharia Mecatrónica , 2º ano semestre 4 Docente: Engo. Essitone Lote Gimo Pag. 20 de 22
UniZambeze – U n i v e r s i d a d e Z a m b e z e Sistemas operativos e Redes de Computadores
No mapeamento orientado `a blocos, os ponteiros s˜ao substitu´ıdos por um esquema de numera¸c˜ao que
pode ser facilmente convertido para a numera¸c˜ao de setores de uma unidade de disco. As opera¸c˜oes de
modifica¸c˜ao de tamanho de arquivos se tornam bastante ´ageis neste esquema [DEI92, p.
400].
5.6 Fragmenta¸c˜ao
Sob certos aspectos, os problemas de que devem ser resolvidos para organiza¸c˜ao do armazenamento secund´ario
s˜ao semelhantes aos encontrados no gerenciamento de mem´oria. A forma de armazenamento mais simples ´e a
disposi¸c˜ao dos dados em setores adjacentes das unidades de disco, mas os arquivos s˜ao frequ¨entemente
modificados e eliminados e com isto seus tamanhos s˜ao vari´aveis. Este fato provoca o que se chama de
fragmenta¸c˜ao, isto ´e, come¸cam a surgir setores livres entre setores ocupados.
Se o armazenamento de arquivos ´e feito atrav´es da aloca¸c˜ao cont´ıgua temos que uma altera¸c˜ao em seu
tamanho imp˜oe algum grau de fragmenta¸c˜ao, pois se seu tamanho aumenta e a regi˜ao de armazenamento atual
n˜ao pode ser expandida, a ´area anteriormente utilizada provavelmente ficar´a livre enquanto o arquivo ser´a
rearranjado numa outra ´area. Na situa¸c˜ao em que o arquivo tem seu tamanho reduzido, sobrar˜ao alguns setores
livres no final de sua ´area original que s´o poder˜ao ser ocupados por pequenos arquivos.
Na Figura 5.32 temos uma esquematiza¸c˜ao da ocorrˆencia da fragmenta¸c˜ao em sistemas de arquivos com
aloca¸c˜ao cont´ıgua e tamb´em com aloca¸c˜ao n˜ao cont´ıgua.
Na aloca¸c˜ao cont´ıgua temos que os arquivos s˜ao armazenados sempre em setores consecutivos, assim o
desempenho de opera¸c˜oes de leitura e escrita n˜ao ´e comprometido pela fragmenta¸c˜ao, por outro lado a
utiliza¸c˜ao do disco ser´a comprometida pois setores fragmentados do disco poder˜ao permanecer livres n˜ao
possibilitando o armazenamento de arquivos maiores.
Caso o armazenamento de arquivos seja feito atrav´es de aloca¸c˜ao n˜ao cont´ıgua, setores livres passam a ser
ocupados de forma descontinua pelos arquivos a medida que seus tamanhos aumentam ou diminuem. Embora o
aproveitamento do espa¸co em disco seja integral, as opera¸c˜oes de leitura e escrita ter˜ao seu desempenho
comprometido tanto mais fragmentado esteja o arquivo sob uso.
Notamos que em ambos os casos ocorre a fragmenta¸c˜ao. Satyanarayanan (1981) efetuou um estudo sobre o
tamanho dos arquivos e as opera¸c˜oes realizadas sobre eles concluindo que:
24 de outubro de 2024 - Curso e ano: Engenharia Mecatrónica , 2º ano semestre 4 Docente: Engo. Essitone Lote Gimo Pag. 21 de 22
UniZambeze – U n i v e r s i d a d e Z a m b e z e Sistemas operativos e Redes de Computadores
Isto significa que a fragmenta¸c˜ao ir´a ocorrer qualquer que seja a forma de aloca¸c˜ao. Como isto pode n˜ao ser
admiss´ıvel em certos sistemas, podem ser implementados mecanismos de compacta¸c˜ao ou desfragmenta¸c˜ao
que reorganizam o armazenamento nos dispositivos de armazenamento de forma a possibilitar a utiliza¸c˜ao
integral do espa¸co dispon´ıvel no caso da aloca¸c˜ao cont´ıgua ou de otimizar as opera¸c˜oes de leitura e escrita
quando a aloca¸c˜ao ´e n˜ao-cont´ıgua.
Outros sistemas oferecem utilit´arios que podem realizar esta opera¸c˜ao, permitindo ao usu´ario ou
administrador maior controle sobre o armazenamento, como ilustrado na Figura 5.33.
24 de outubro de 2024 - Curso e ano: Engenharia Mecatrónica , 2º ano semestre 4 Docente: Engo. Essitone Lote Gimo Pag. 22 de 22