Escolar Documentos
Profissional Documentos
Cultura Documentos
-)
11
SISTEMA DE ARQUIVOS
11.1 Introdução
O armazenamento e a recuperação de informações é uma atividade essencial para
qualquer tipo de aplicação. Um processo deve ser capaz de ler e gravar de forma per-
manente grande volume de dados em dispositivos como fitas e discos, além de poder
compartilhá-los com outros processos. A maneira pela qual o sistema operacional
estrutura e organiza estas informações é através da implementação de arquivos.
Neste capítulo serão apresentados aspectos presentes nos sistemas de arquivos, como
identificação, organização, compartilhamento, métodos de acesso, proteção e opera-
ções de entrada e de saída.
'~~ Arquivos
/
Um arquivo é constituído por informações logicamente relacionadas. Estas informa-
ções podem representar instruções ou dados. Um arquivo executável, por exemplo,
contém instruções compreendidas pelo processador, enquanto um arquivo de dados
pode ser estruturado livremente como um arquivo texto ou de fom1a mais rígida
como em um banco de dados relacional. Na realidade, um arquivo é um conjunto de
registros definidos pelo sistema de arquivos, tornando seu conceito abstrato e gene-
ralista. A partir dessa definição, o conteúdo do arquivo pode ser manipulado seguin-
do conceitos preestabelecidos.
Byte
11 - - - - - - - 1
1
Com o advento dos discos magnéticos, foi possível a introdução de métodos de aces-
so mais eficientes. O primeiro a surgir foi o acesso direto, que permite a leitura/gra-
vação de um registro diretamente na sua posição. Este método é realizado através do
número do registro, que é a sua posição relativa ao início do arquivo. No acesso dire-
to não existe restrição à ordem em que os registros são lidos ou gravados, sendo sem-
pre necessária a especificação do número do registro. É importante notar que o
acesso direto somente é possível quando o arquivo é definido com registros de tama-
nho fixo (Fig. 11.2).
O acesso direto pode ser combinado com o acesso seqüencial. Com isso é possível
acessar diretamente um registro qualquer de um arquivo e, a partir deste, acessar
seqüencialmente os demais.
Um método de acesso mais sofisticado, que tem como base o acesso direto, é o cha-
mado acesso indexado ou acesso por chave. Para este acesso, o arquivo deve pos-
suir uma área de índice onde existam ponteiros para os diversos registros. Sempre
que a aplicação desejar acessar um registro, deverá ser especificada uma chave atra-
vés da qual o sistema pes'quisará na área de índice o ponteiro correspondente. A par-
tir desta informação é realizado um acesso direto ao registro desejado.
Sistem a de kquhos 215
\..
V
Deslocamento de
do is registros
Aplicação
ilt
Rotinas de E/S i
it
Dispositivos ~
A Tabela 11.2 apresenta algumas destas rotinas encontradas na maioria das imple-
mentações de sistemas de arquivos.
216 / ~qu tetura de Sistemas Operacionais
Diretórios
A estrutura de diretórios é como o sistema organiza logicamente os diversos arqui-
vos contidos em um disco. O diretório é uma estrutura de dados que contém entra-
das associadas aos arquivos onde cada entrada armazena informações como
localização fisica, nome, organização e demais atributos.
com arqui\llS.. E lmportante que ao término do uso de arquivos, este seja fechado. ou
seja. que 5e libere o espaço na tabela de arquivos abertos.
! Identificação
Prote ção
Organização
Localização
Atributos
... ô
... ô
... ô
J 1
1
1
D Diretórios
•ô
Arquivos
Como o sistema de nível único é bastante limitado, uma evolução do modelo foi a
implementação de uma estrutura onde para cada usuário existiria um diretório parti-
cular denominado User File Directory (UFD). Com esta implementação, cada usuá-
rio passa a poder criar arquivos com qualquer nome, sem a preocupação de conhecer
os demais arquivos do disco.
Para que o sistema possa localizar arquivos nessa estrutura, deve haver um nível de
diretório adicional para controlar os diretórios individuais dos usuários. Este nível,
denominado Master File Directory (MFD), é indexado pelo nome do usuário, onde
cada entrada aponta para o diretório pessoal. A Fig. 11.5 ilustra este modelo de estru-
tura de diretórios com dois níveis (two-level directory).
218 / Arquitetura de Sistemas Operaoonais
Arqu ivo
1
•ô
1
~
1
Arquivo
2
•ô
Usuório
2
Arquivo
3
•ô
Usuório
3
•ô
Arquivo
1
•ô
Usuório
n
Arquivo
2
•ô
Master File Directory
(MFD)
Arquivo
J
•A
Arquivos~
User File Directory
(UFD)
Sob o ponto de vista do usuário, a organização dos seus arquivos em um único dire-
tório não permite uma organização adequada. A extensão do modelo de dois níveis
para um de múltiplos níveis permitiu que os arquivos fossem logicamente melhor
organizados. Este novo modelo, chamado estrutura de diretórios, em árvore (tree-
structured directory), é adotado pela maioria dos sistemas (Fig. J 1.6).
Sistema de =-.rc;;,..."'vos / 219
Arquivo
1
Arquivo
Diretório
2
EJ
1
Diretório ___.
Usuário
1 1----
1
2--..u ~ • Arq~ivo
r Arquivo
Usuário
2
ô
~ l~l-="61
~8 ~ti> ô
Usuário
3
V Diretório
1 ~ Arquivo
1
Usuá rio
n - Arq uivo
l
Arquivo
2
Diretório Raiz
Arquivo
2
Na estrutura em árvore, cada usuário pode criar diversos niveis de diretórios, tam-
bem chamados subdiretórios. Cada diretório pode conter arquivos ou outros diretó-
nos. O número de níveis de uma estrutura em árvore é dependente do sistema de
arqu1\0S de cada sistema operacional. No Open VMS são possíveis oito níveis de
diretonos.
Ivan
·-----·
Disco C:/ 1
Uma segunda maneira de realizar este controle é com urna estrutura de lista encadea-
da de todos os blocos livres do disco. Para que isto seja possível, cada bloco possui
uma área reservada para armazenamento do endereço do próximo bloco. A partir do
primeiro bloco livre é, então, posSI\ el o acesso seqüencial aos demais de forma enca-
deada (Fig. l l .8b). Este esquema apresenta algumas restrições se considerarmos
que, além do espaço utilizado no bloco com informação de controle, o algoritmo de
busca de espaço livre sempre deve realizar uma pesquisa seqüencial na lista.
Sistema de Arquivos I 221
..
Início
11001101
10000111
li li 4
C1 ld r
2
~
01110100
li 10 1
(
l3 7
~ li li
1
25 20
1
11100000 li li D so s
li li ô -
(o) Mopo de bits (b) Listo encodead o (e) Tabelo de blocos liovrec
Uma outra solução leva em consideração que blocos contíguos são geralmente alo-
cados ou liberados simultaneamente. Podemos, desta forma, enxergar o disco como
um conjunto de segmentos de blocos livres. Com base neste conceito, é po~1wl
manter uma tabela com o endereço do primeiro bloco de cada segmento e o numero
de blocos livres contíguos que se seguem. Esta técnica de gerência de espaço livre é
conhecida como tabela de blocos livres (Fig. l 1.8c).
o
~no
1 2
~
A. TXT
....
4
btelda
3
3 4 5
D li li B. TXT 10 1
6 7
C. TXT
li D 13 2
O i ~
12 13 14
D li li
Fig. 11 .9 Alocação contígua.
Para este tipo de alocação, podemos enxergar o disco como um grande vetor, onde
os elementos podem ser considerados segmentos com tamanhos diferentes de blocos
contíguos. Estes segmentos estão dispostos alternadamente entre segmentos ocupa-
dos (blocos alocados) e segmentos livres (blocos livres). No momento em qu~s
tema operacional deseja alocar espaço para armazenar um novo arquivo, pode existir
mais de um segmento livre disponível com o tamanho exigido. Neste caso, é neces-
sário que alguma estratégia de alocação seja adotada para selecionar qual o segmen-
to na lista de blocos livres deve ser escolhido. Analisaremos a seguir as principais
estratégias:
• ~irst-fit
Neste caso, o primeiro segmento livre com tamanho suficiente para alocar o arqui-
vo é selecionado. A busca na lista é seqüencial. sendo interrompida tão logo se
localize um segmento com tamanho adequado.
• Best-fit
A alocação best-fit seleciona o menor segmento livre disponível com tamanho
suficiente para armazenar o arquivo. A busca em toda lista se faz necessária para
a seleção do segmento, a não ser que a lista esteja ordenada por tamanho.
• Worst-fit
Neste caso, o maior segmento é alocado. Mais uma vez a busca em toda lista se
faz necessária, a menos que exista uma ordenação por tamanho.
Área de trabalho
-
Fig. 11.1 O Desfragmentação.
lnfcio
3 4 5
L~ D D
8
li
9 10 11
J DO
A alocação encadeada só permite que se realize acesso seqüencial aos blocos dos
arquivos. Isto constitui urna das principais desvantagens desta técnica, já que não é
possível o acesso direto aos blocos. Além disso, essa técnica desperdiça espaço nos
blocos com o armazenamento de ponteiros.
A alocação indexada, além de permitir o acesso direto aos blocos do arquivo, não uti-
liza informações de controle nos blocos de dados, como existente na alocação enca-
deada (Fig. 11.12).
Sistema de Arquivos 225
Bloco de
lndice
D
9 10 11
D li li
12 13 14
DDD
Fig. 11.12 Alocação indexada.
Ex istem di ferentes mecanismos e níveis de proteção, cada qual com suas vantagens
e desvantagens - para cada tipo de sistema, um modelo é mais adequado do que
226 / Arquitetur:a de Sistemas Operacionais
S."'qU.o~·o possui apenas uma senha, o acesso é liberado ou não na sua tota-
'.!2âe Isto significa que não é possível determinar quais tipos de operação podem
o:§ seT concedidas. Outra desvantagem deste método é a dificuldade de compar-
~~o de arquivos, pois, além do dono do arquivo, todos os demais usuários
roam que conhecer a senha de acesso.
11 .6.2 GP..UPOS DE USUÁRIO
.\ proteção baseada em grupos de usuários é implementada por diversos sistemas
operacionais. Este tipo de proteção tem como princípio a associação de cada usuário
do sistema a um grupo. Os grupos de usuários são organizados logicamente com o
objetivo de compartilhar arquivos e diretórios - os usuários que desejam comparti-
lhar arquivos entre si devem pertencer a um mesmo grupo.
NW•'"*'6o Tipo•--
Leitura
Escrita
Owner Execução
Eliminação
Group Leitura
DADOS.TXT
Ali -
Fig. 11.13 Proteção por grupos de usuários.
Sistema de ArQu:vos / 2Zl
O tamanho dessa estrutura de dados pode ser bastante extenso se considerarmos que
um arquivo pode ter seu acesso compartilhado por diversos usuários. Além deste
fato, existe um overhead adicional, se comparado com o mecanismo de proteção por
grupo de lbllários, devido à pesquisa seqüencial que o sistema deverá realizar na
lista sempre que um acesso for solicitado.
Existem duas maneiras distintas de tratar este problema. No primeiro caso, o siste-
ma ~cional possui uma rotina que executa periodicamente em um intervalo de
tempo. atualizando em disco todos os blocos modificados do cache. Uma segunda
alternativa é, toda vez que um bloco do cache for modificado, que seja realizada ime-
diatamente uma atualização no disco (write-through caches).
11.8 Exercícios
l. O que é um arquivo?
2. Como arquivos podem ser organizados?
3. Diferencie os métodos de acesso a registros seqüencial, direto e indexado.
4. Qual a função das system calls de E/S?
5. Quais as diferentes formas de implementação de uma estrutura de diretório?
6. Descreva as vantagens e desvantagens das técnicas para gerência de espaços
livres?
7. O que é alocação contígua de blocos e quais beneficios a desfragmentação pode
proporcionar quando esta técnica é utilizada?
8. Descreva as vantagens e desvantagens das técnicas de alocação encadeada e
indexada na gerência de alocação de espaço em disco.
9. Quais os tipos de proteção de acesso a arquivos existentes e quais suas princi-
- pais vantagens?
10. O que é a técnica denominada buffer cache?
12
GERÊNCIA DE DISPOSITIVOS
12.1 Introdução
A gerência de dispositivos de entrada/saída é uma das principais e mais complexas fun-
ções de um sistema operacional. Sua implementação é estruturada através de camadas
em um modelo semelhante ao apresentado para o sistema operacional como um todo.
As camadas de mais baixo nível escondem características dos dispositivos das camadas
superiores, oferecendo uma interface simples e confiável ao usuário e suas aplicações
(Fig. 12.1 ).
A diversidade dos dispositivos de F/S exige que o sistema operacional implemente uma
camada, chamada de subsist~e F/S, com a função de isolar a complexidade dos dis-
positivos da camada de sistemas de arquivo e da aplicação. Dessa forma, é possível ao
sistema operacional ser flexível, permitindo a comunicação dos processos com qualquer
ttpo de periférico. Aspectos como velocidade de operação, unidade de transferência,
representação dos dados, tipos de operações e demais detalhes de cada periférico são
tratados pela camada de device driver, oferecendo uma interface wúfonne entre o sub-
sistema de E/S e todos os dispositivos.
As camadas são divididas em dois grupos, onde o primeiro grupo visualiza os diversos
tipos de dispositivos do sistema de um modo único (Fig. 12. la), enquanto o segundo é
específico para cada dispositivo (Fig. 12.lb). A maior parte das camadas trabalha de
forma independente do dispositivo.
Neste capítulo serão examinadas as diversas camadas que compõem a gerência de dis-
positivos de F/S, além dos conceitos envolvidos em cada nível. No final do capítulo
serão abordados aspectos relacionados especificamente aos discos magnéticos, como
desempenho e segurança de dados.
@ -
=
Processo
it
Operações de E/S
1
it
Sistema Independente
w do dispositivo
ex de Arquivos
(a)
~ it
t:
o
V'> Subsistema de E/S
1
it
1 Device Drivers ~
Dependente
-----------------,t;--'t------------ do dispositivo
(b)
1 Controladores ~
't
Dispositivos de E/S
1
Fig. 12.1 Gerência de dispositivos.
detalhes do dispositivo que está sendo acessado. Nesse caso, quando um usuário cria
um arquivo em disco, não lhe interessa como é a formatação do disco, nem em que tri-
lha ou setor o arquivo será gravado.
As operações de EIS devem ser realizadas através de system calls que chamam as roti-
nas de EIS do núcleo do sistema operacional. Dessa forma, é possível escrever um pro-
grama que manipule arquivos, estejam eles em disquetes, discos rígidos ou fita
magnética, sem ter que alterar o código para cada tipo de dispositivo. As system calls
responsáveis por essa comunicação são denominadas system cal/s de entrada/saída.
Um dos objeuvos principais das system calls de EIS é simplificar a interface entre 2:5
aplicaç&s e os dispositivos. Com isso. elimina-se a necessidade de duplicação de n:xi-
nas idênncas nos diversos aplicativos, além de esconder do programador características
especdicas associadas à programação de cada dispositivo. A Fig. 12.2 ilustra a comuni-
cação entre aplicação e dispositivos de maneira simplificada.
As operações de EIS podem ser classificadas conforme o seu sincronismo. Uma opera-
ção é dira síncrona quando o processo que realizou a operação fica aguardando no esta-
do de espera pelo seu término. A maioria dos comandos das linguagens de alto nível
funoona desta forma. Uma operação é dita assíncrona quando o processo que realizou
a operação não aguarda pelo seu ténníno e continua pronto para ser executado. Neste
caso. o sistema deve oferecer algum mecanismo de sinalização que avise ao processo
que a operação foi terminada.
Aplicoçõo
// [i] "'
Comandos
de E/S Bibliotecas
Device drivers
it
Dispositivos de E/ S 1
Fig. 12.2 Operaçõe.s de entrada/saída.
232 / Arquitetura de Sistemas Operacionais
Todos os dispositivos de E/S são controlados, com o objetivo de obter o maior compar-
tilhamento possível entre os diversos usuários de forma segura e confiável. Alguns dis-
positivos, como os discos, podem ser compartilhados, sinmltaneamente, entre diversos
usuários, sendo o sistema operacional responsável pela integridade dos dados acessa-
dos. Outros, como as impressoras, devem ter acesso exclusivo, e o sistema deve contro-
lar seu compartilhamento de forma organizada. O subsistema de EIS é responsável
também por implementar todo um mecanismo de proteção de acesso aos dispositivos.
No momento que o usuário realiza uma operação de EIS, é verificado se o seu proces-
so possui permissão para realizar a operação.
A bufferização é outra tarefa realizada por esse subsistema. Essa técnica permite redu-
zir o número de operações de E/S, utilizando uma área de memória intermediária cha-
mada de buffer. Por exemplo, quando um dado é lido do disco, o sistema traz para a área
de buffer não só o dado solicitado, mas um bloco de dados. Caso haja uma solicitação
de leitura de um novo dado que pertença ao bloco anteriormente lido, não existe a
necessidade de uma nova operação de E/S, melhorando desta forma a eficiência do sis-
tema.
Uma das principais funções do subsistema de EIS é criar uma interface padronizada
com os <levice drivers. Sempre que um novo dispositivo é instalado no computador, e
necessáiio que um novo driver seja adicionado ao sistema. O subsistema de EIS deve
oferecer uma interface padronizada que permita a inclusão de novos drivers sem a
necessidade de alteração da camada de subsistema de EIS.
@Processo
'
' ' '
Driver de
Impressora
Driver de
Disco
Driver de
Fito
Discos
12.5 Controladores
Os controladores são componentes de hardware responsáveis por manipular diretamen-
te os dispositivos de EIS. O sistema operacional, mais exatamente o <levice driver,
comunica-se com os dispositivos através dos controladores (Fig. 12.5). Em geral, o con-
trolador pode ser uma placa independente conectada a um slot do computador ou imple-
mentado na mesma placa do processador.
Memorio
Principal
Controlador
de
Fita
CD
Memória Controlador
Principal de DMA
•
Disco
fabricantes diferentes, como discos, CD-ROMs. scanners e unidades de fita, desde que
sigam o padrão estabelecido. Para que isso seJa possível, deve-se configurar o sistema
operacional com um driver SCSl e o hardware com um controlador SCSI, onde os peri-
féricos são conectados (Fig. 12.7).
movimento
sentido radial
"'
o
:;:
i5
Mecanismo de
Eixo leitura/grova~ão
Trilha
Setor
Discos
Como todos esses fatores envolvem aspectos mecânicos, o tempo total das operações
de EIS é extremamente longo, se comparado ao número de instruções que o processa-
....
' \
\
' ....
- - ...
l.otinCiO
dor pode execuIM no mesmo intervalo de tempo. Para a maioria dos discos magnc!ticos.
o tempo de :.à!k é o fator de maior impacto no acesso a seus dados.
Uma fomia de eliminar parcialmente os tempos de seek e latência é copiar pane dos
dados do disro para a memória principal, utilizando urna área conhecida como dtsco
RAM. Algulb 15temas gerenciadores de banco de dados (SGBD) implementam essa
técnica com \ :..:>ta.S a aumentar o desempenho no acesso a grandes bases de dados.
Sis·l ema
Operadonal
Software
RAIO
Subsistemo Subsistemo
RAIO Externo JBOD
• RAIO O: Striping
A técnica de RAID O. C!IIlbcn • c:omo striping, consiste na implementação do
chamado disk striping. CJOl!e~··c:asoperações de E/S entre os diversos discos fisi-
cos contidos no array cc:- o cr cxmnzar o desempenho. Como os dados são
divididos entre os div~ qiieo.,."'Ões de EIS podem ser processadas parale-
lamente.
Apesar da denominação RAIO. es2 ea::Xa Dão implementa qualquer tipo de redun-
dância, só sendo vantajosa no 7.::0 rre õeso1qienho das operações de EIS. Caso um
haja uma falha em qualquer J.:sro ~ set. os dados serão perdidos. Aplicações
multimídia são beneficiadas cem o ~ ta:cica poi§ necessitam de alto desem-
penho nas operações com dlSL -
• RAIO 1: Espelhamento
A técnica de RAID 1, tambem ro:tbecid:! a:imo espelhamento ou müroring, consiste
em replicar todo o conteúdo do di5ro i-ci:x:i:paL chamado primário, em um ou mais
discos denominados espelhos oo ~A redundância oferecida por essa téc-
nica garante que, no caso de falha no msro p;IDcipal. os discos espelhos sejam utili- .
zados de forma transparente pelo si5U'ID3 de arqtID"OS (fig. 12.12).
Para que a sincronização entre e C'f'JIN'tm de disco principal e dos discos espelhos
ocorra, toda operação de escrita realiz:ada o:- disco primário é replicada para os dis-
cos espelhos. O overhead adictonal ~gid: nesta operação é pequeno e o beneficio
da proteção justifica a implememacão..:\pesar da vantagem proporcionada pela
Fig.12.12RAID1.
Caso haja uma falha em qualquer um dos discos do array, os dados podem ser recupe-
rados por um algoritmo de reconstrução que utiliza as informações de paridade dos
demais discos. Esta recuperação ocorre automaticamente e é transparente ao sistema de
arqwvos.
A principal vantagem de uma técnica de redundância que utiliza paridade é que esta
requer um espaço adicional menor para armazenar informação de controle que a técni-
atrip 00
ttrip 03
ttripOS
12.8 Exercícios
1. Explique o modelo de camadas aplicado na gerência de dispositivos.
2. Qual a principal finalidade das rotinas de EIS?
3. Quais as diferentes formas de um programa chamar rotinas de EIS?
4. Quais as principais funções do subsistema de EIS?
5. Qual a principal função de um <levice driver?
6. Por que o sistema de FJS deve criar uma interface padronizada com os device dri-
vers?
7. Explique o funcionamento da técnica de DMA e sua principal vantagem.
8. Diferencie os dispositivos de EJS estruturados dos não-estruturados.
9. Qual a principal razão de as operações de EIS em fitas e discos magnéticos serem
tão lentas se comparadas a velocidade com que o processador executa instruções?
1O. O que são técnicas de redundância em discos magnéticos?
11 . Diferencie as técnicas RAID O, RAID 1 e RAID 5 apresentando vantagens e des-
vantagens.