You are on page 1of 23

UNIVERSIDADE

GREGRIO SEMEDO

IMPLEMENTAO DO SISTEMA
ARQUIVO

DE

ndice
NDICE......................................................................................................................................................................... 2
4

SISTEMA DE ARQUIVO................................................................................................................................12
4.1
4.1.1
4.1.2
4.1.3
4.1.4
4.1.5
4.1.6
4.2
4.2.1
4.3
4.3.1
4.3.2
4.4
4.4.1
4.4.2

ARQUIVO....................................................................................................................................................12
Qual a importncia............................................................................................................................12
Atributos dos Arquivos......................................................................................................................12
Estrutura do Arquivo.........................................................................................................................13
Tipos de Arquivo...............................................................................................................................14
Operaes sobre Arquivos.................................................................................................................16
Arquivos mapeados na Memria.......................................................................................................16
DIRETRIO.................................................................................................................................................17
Organizao do Sistema....................................................................................................................18
IMPLEMENTAO DO SISTEMA DE ARQUIVO.............................................................................................19
Implementao de Arquivos..............................................................................................................20
Tipos de implementao de arquivo..................................................................................................20
IMPLEMENTAO DE DIRETRIO...............................................................................................................21
Tipos de implementao de diretrio.................................................................................................21
Algoritmo de busca no diretrio........................................................................................................22

MS-DOS........................................................................................................................................................... 23
5.1
5.1.1
5.1.2
5.1.3
5.1.4
5.1.5
5.1.6
5.2

HISTRIA DO MS-DOS..............................................................................................................................23
O PC IBM.........................................................................................................................................23
MS-DOS Verso 1.0..........................................................................................................................25
MS-DOS Verso 2.0..........................................................................................................................25
MS-DOS Verso 3.0..........................................................................................................................26
MS-DOS Verso 4.0..........................................................................................................................26
MS-DOS Verso 5.0..........................................................................................................................26
O SISTEMA DE ARQUIVO............................................................................................................................27

REFERNCIAS E BIBLIOGRAFIA..........................................................................................................................46
DATA E ASSINATURAS............................................................................................................................................48

Resumo
Sistema Operacional um software importante do computador que controla
todos os seus recursos. Os aplicativos que criamos como programadores so
executados sobre o sistema operacional, e importante conhecer como ele
funciona para termos a base necessria para desenvolver programas mais
rpidos e confiveis.
Sabemos que importante conhecer o sistema operacional, mas ele
em geral complexo e extenso por gerenciar vrios mdulos. Assim, h uma
procura por mtodos para um melhor entendimento dos vrios tpicos
relacionados ao SO. A fim de ajudar nesse sentido surgiram nas ltimas duas
dcadas vrios softwares educacionais e de cdigo aberto.

1 Introduo
Sistema Operacional um software importante do computador que controla
todos os seus recursos, ele realiza aes como ativao e gerenciamento de
memria ou controle dos dispositivos de entrada e sada. Fornece a base sobre
a qual os programas aplicativos so executados. Os softwares como Word e
Excel s podem rodar sobre um sistema operacional, ou seja, sobre uma
plataforma de suporte. As plataformas mais famosas so o Windows, MacOS
(sistema operacional do Macintosh), o MS-DOS e o Linux.
Os aplicativos que criamos como programadores so executados sobre
o sistema operacional, e importante conhecer como ele funciona para termos
a base necessria para desenvolver programas mais rpidos e confiveis,
tirando bom proveito do que o sistema pode nos oferecer. Caso nossos
aplicativos tenham algum problema como estouro de pilha poderemos saber
que resolveremos comprando mais memria ou gerenciando melhor a mesma.
Sabemos que importante conhecer o sistema operacional, mas ele
em geral complexo e extenso por gerenciar vrios mdulos. H uma grande
dificuldade tambm relacionada compreenso dos conceitos e abstraes
tais como entender o que processo ou concorrncia. Assim, h uma procura
por mtodos para um melhor entendimento dos vrios tpicos relacionados ao
SO. A fim de ajudar nesse sentido surgiram nas ltimas duas dcadas vrios
softwares educacionais e de cdigo aberto. Estes SOs so usados como
instrumento de ensino nas universidades para um estudo mais amplo,
aprofundado e prtico dos conceitos de um sistema operacional j que o ensino
feito por exemplos e experimentos. Exemplos destes sistemas educacionais

so o Nachos [6,8], o Minix [1,2], o Amoeba [3,4] e o RCOS (Ron Chernich's


Operating System) [9,10]. Este trabalho se baseia no sistema RCOS.
O RCOS-java um software educacional e de cdigo aberto para
entender como funciona o sistema operacional internamente e baseado na
verso anterior do mesmo, escrita em C++. O seu desenvolvimento comeou
em 1996 por quatro pessoas da Universidade Central do Queensland,
Austrlia. Ele um software interessante por ter interface grfica e multitarefa,
que simula um sistema operacional. O RCOS pretende explicar vrias partes
do SO como escalonamento de processos (dependendo do algoritmo de
ordenao de fila e quantum), comunicao entre processos e as instrues de
cdigo da CPU. Porm o mdulo de gerenciamento de disco e sistema de
arquivo ainda no se encontram implementados.
A proposta deste trabalho desenvolver o mdulo de ensino sobre
sistema de arquivo, estendendo assim o RCOS. Na proposta inicial do RCOS,
este deveria basear-se no sistema arquivo do SO CP/M por ser simples. O
mdulo desenvolvido foi baseado no sistema do MS-DOS 5.0, o qual apesar de
antigo ainda hoje utilizado.

2 Sistema de Arquivo
Nesta seo sero definidos alguns conceitos para um melhor entendimento da
explicao do desenvolvimento do projeto.
Para a maioria dos usurios o sistema de arquivo a parte mais visvel
do sistema operacional. O sistema de arquivo consiste de duas partes: arquivo,
que armazena dados, e estrutura de diretrio qual organiza e tm as
informaes sobre todos os arquivos do sistema. Abaixo explicaremos os
conceitos de arquivo e diretrio juntamente com suas caractersticas.

2.1 Arquivo
2.1.1 Qual a importncia
Todas as aplicaes computacionais precisam armazenar e recuperar
informaes, abaixo lista-se trs razes:
1. Para algumas aplicaes o espao de endereamento virtual
suficiente, porm para outras, tais como as bancrias, ele muito
pequeno.
2. O segundo problema que certas informaes precisam ser lidas
depois, porm so perdidas quando o processo termina sua execuo.
Estas informaes no podem ser perdidas quando ocorre uma falha
qualquer do hardware, com a conseqente morte do processo.
3. Outro problema quando vrios processos tm acesso ao mesmo
conjunto de informaes ao mesmo tempo. Uma boa prtica de
programao tornar a informao independente do processo.

A soluo, para os problemas acima apontados, manter a informao


armazenada em disco, ou em qualquer outro dispositivo externo de
armazenamento, em unidades denominadas arquivos. Os arquivos so
gerenciados por uma parte do Sistema Operacional denominado Sistema de
Arquivos.
Arquivos podem ser gravados em vrios tipos de mdia como: disco
magntico, fita magntica, e disco ptico. Para que seja conveniente usar o
computador, o sistema operacional proporciona uma viso lgica das
informaes armazenadas, da a abstrao do que est no disco fsico para o
usurio o arquivo.
2.1.2 Atributos dos Arquivos
Quando um processo cria um arquivo, preciso que tal arquivo receba um
nome. Quando tal processo termina sua execuo, o arquivo continua a existir,
podendo ser acessado por outros processos usando para tanto o nome
atribudo ao arquivo.
No MS-DOS, nomes em maisculo e minsculo identificam o mesmo
arquivo. Ao contrrio do que acontece no Unix. H ainda a extenso do arquivo
que indica a caracterstica do arquivo, isto ajuda um programa que use
diferentes tipos de arquivo. No caso de um programa compilador para saber
que arquivos compilar e quais linkar por exemplo.
Cada arquivo tem necessariamente um nome como explicado acima e
um conjunto de dados. Alm disso, o sistema operacional associa a cada
arquivo algumas outras informaes, como por exemplo a data e a hora em
que o arquivo foi criado e seu tamanho. Chamamos estes itens extras de
atributos do arquivo. A lista de atributos varia muito de sistema pata sistema.
Estes atributos tm vrios intuitos, como backup, controle de verso e
segurana.
Cada arquivo tem necessariamente um nome e um conjunto de dados.
Alm disso, o sistema operacional associa a cada arquivo algumas outras
informaes, como por exemplo a data e a hora em que o arquivo foi criado e
seu tamanho. Chamamos estes itens extras de atributos do arquivo. A lista de
atributos varia muito de sistema para sistema. Estes atributos tm vrios
intuitos, como backup, controle de verso e segurana, mas os mais usados
consistem dos seguintes:

Figura 4-1 Atributos do Arquivo

2.1.3
Tipos:
-

Estrutura do Arquivo
Seqncia de bytes
Seqncia de registros
rvore

Figura 4-2 Estrutura do Arquivo

Tanto o Unix como o MS-DOS, tratam seus arquivos como uma


seqncia de bytes, que d uma flexibilidade enorme ao sistema de arquivos.
Os programas de usurio podem colocar o que desejarem nos arquivos e

identific-los da forma que lhes for conveniente. O sistema operacional no


ajuda em nada, mas tambm no atrapalha.
O primeiro passo para se estruturar um arquivo foi atravs do uso de
registros. Neste modelo o arquivo uma seqncia de registros de tamanho
fixo, cada um deles com estrutura interna caracterstica. Logo uma leitura
retorna um registro e uma escrita grava um registro.
O terceiro tipo de estrutura de arquivo, na qual o arquivo composto de
uma rvore de registros, no necessariamente do mesmo tamanho, cada um
dos quais contendo um campo com chave numa posio fixa do registro. A
rvore ordenada pelo campo da chave, de modo a permitir uma busca rpida
pela chave. No exemplo mostrado a ordem alfabtica alfabtica.
2.1.4 Tipos de Arquivo
Muitos sistemas operacionais suportam vrios tipos de arquivo. Por
exemplo, o Unix e o MS-DOS tm;

Arquivos regulares so aqueles que contm a informao do usurio.

Arquivos de diretrio so arquivos do sistema usados na manuteno


do sistema de arquivos.
Arquivos Especiais de Caracteres esto diretamente ligados
entrada/sada e so usados para a modelagem de dispositivos seriais de
entrada/sada, tais como terminais, impressoras e redes.
Arquivos Especiais Blocados so usados para modelar disco.

Em geral, os arquivos regulares so arquivos ASCII, ou binrios. De


regra os arquivos ASCII so constitudos por linhas de texto e os arquivos
binrios so simplesmente os arquivos que no so ASCII.

Figura 4-3 Tipo de Arquivo exe

Apesar de tecnicamente o arquivo ser uma seqncia de bytes no caso


do Unix e MS-DOS, o sistema operacional s executar um arquivo que esteja
num dado formato, ou seja, baseado numa estrutura. A estrutura de um arquivo
binrio executvel, no caso do Unix, formado por 5 partes distintas:
cabealho, texto, dados, bits de relocao e tabela de smbolos. O cabealho
comea com um nmero mgico, que identifica o arquivo como um arquivo
executvel (de forma a prevenir a execuo acidental de arquivos fora deste
formato). Segue-se um conjunto de 16 bits fornecendo o tamanho de cada uma
das partes componentes do arquivo, o endereo de incio da execuo e
alguns bits de flag. Depois do cabealho vem o cdigo e os dados do
programa, que so carregados na memria e relocados usando os bits de
relocao. A tabela de smbolos usada para depurao.

2.1.5 Operaes sobre Arquivos


Para fazer operaes sobre os arquivos podemos acess-los de duas formas:
seqencial, ou seja, na ordem em que os mesmos foram armazenados nos
arquivos; ou por acesso randmico ou aleatrio, o qual consiste naquele em
que os registros e os bytes podem ser lidos em qualquer ordem.

As chamadas de sistema mais comuns relacionadas ao sistema de


arquivos so: create, delete, open, close, read, write, append, seek, get
atrributes, set attributes, rename. Abaixo explicamos algumas delas.

Create dois passos criam o arquivo. Primeiro v se tem espao no


sistema de arquivo. Segundo, uma nova entrada precisa ser feita no
diretrio.
Write para escrever em um arquivo passa-se o nome do mesmo que
procurado em que diretrio se encontra, depois gravado os dados que
pode ser gravado a partir da posio corrente. Se a posio for a final do
arquivo, o tamanho do mesmo cresce, seno o arquivo sobrescrito.
Open o propsito desta chamada permitir que o sistema busque os
atributos e a lista dos endereos em disco correspondentes a este
arquivo, carregando estas informaes na memria principal, de maneira
a tornar mais rpido os acessos subseqentes a este arquivo.
Read para ler o arquivo passamos o nome do mesmo, da procuramos
nos diretrios por uma entrada para esse arquivo. Usualmente os bytes
so lidos a partir da posio atual do ponteiro, e o processo que
chamou deve indicar a quantidade de informao a ser lida.
Close quando no houver mais acesso a determinados arquivos, seus
atributos e endereos de disco no precisam mais ser mantidos na
memria, logo o arquivo pode ser fechado.
Delete quando um arquivo no for mais necessrio ele deve ser
removido Procuramos pelo nome do arquivo a ser removido, achando
uma entrada de diretrio para ele no diretrio podemos apag-lo e a
entrada do mesmo. H sistemas que apagam arquivos no usados por n
dias.

2.1.6 Arquivos mapeados na Memria


Se cada vez que precisarmos utilizar um arquivo tivermos que acessa-lo em
disco, isso seria extremamente custoso e ineficiente, principalmente quando
comparamos tal operao com a de acesso memria principal. Logo a mlehor
soluo mapear arquivos na memria (no espao de endereamento do
processo que estiver rodando).
O mapeamento de arquivo funciona melhor em um sistema que suporte
segmentao. Como mostrado na Figura 4-4, em tais sistemas, cada arquivo
pode ser mapeado para um segmento prprio, de forma que o byte k do
arquivo corresponda ao byte k do segmento. O processo deve ser segmentado
antes de mapear seus arquivos no seu espao de endereamento. Aps isso o
processo mapeia um arquivo existente abc em um segmento e cria um novo
segmento para o arquivo xyz. Depois disso os arquivos so removidos do
espao de endereamento, e ento o arquivo de sada passa a existir como se
ele tivesse sido criado de maneira convencional de disco para o disco e no
sendo copiado em memria antes de ir para o disco de fato.

Figura 4-4 Arquivos mapeados em Memria

Apesar do mapeamento de processo eliminar a necessidade de entrada/sada,


tornando a programao mais simples, ela tem alguns problemas:
difcil para o sistema saber o tamanho exato do arquivo de sada xyz.
fcil informar o nmero da pgina de mais alta ordem que foi escrita,
mas no h como saber quantos bytes desta pgina foram escritos.
Ocorre problema se o arquivo for mapeado por um processo e aberto
por outro para fazer leitura. O sistema deve garantir que estes dois
processos no esto tratando com duas verses inconsistentes do
arquivo.
O arquivo pode ser maior do que o segmento, ou mesmo maior do que
todo o espao de endereamento virtual. A soluo seria fazer o
mapeamento de pedaos do arquivo e no o arquivo inteiro.

2.2 Diretrio
Para tratar dos vrios arquivos existentes no disco, o sistema operacional faz
uso do conceito de diretrio, que em muitos casos apenas um arquivo.

Figura 4-5 Organizao Tpica de Diretrio

Normalmente cada disco do sistema tm pelo menos uma partio onde


os arquivos e diretrio residem. No diretrio existem entradas de diretrio que
correspondem a cada arquivo ou sub-diretrio do mesmo. A Figura 4-5 mostra

uma organizao tpica de diretrio, na qual pode haver um disco dividido em 2


parties ou dois discos formando uma mesma partio.
O diretrio pode ser organizado de vrias maneiras, mas temos que ser
capazes de realizar algumas operaes como: create, delete, opendir, closedir,
readdir, rename, link, unlink.

Create cria um diretrio. Ele vazio, contendo apenas o ponto e o


pontoponto
Delete apaga um diretrio, somente um diretrio vazio pode ser
removido. O diretrio contendo apenas o ponto e o pontoponto, apesar
de ser considerado vazio, geralmente no pode se apagado
Opendir antes de o diretrio ser lido ele precisa ser aberto
Closedir aps um diretrio ter sido lido ele precisa ser fechado para
liberar espao na tabela de memria
ReadDir retorna a prxima entrada em um diretrio aberto

Rename Os diretrios podem mudar de nome assim como seus


arquivos
Link permite que um arquivo aparea em mais de um diretrio

UnLink- remove a entrada de um diretrio

2.2.1 Organizao do Sistema


Nesta seo sero descritas algumas formas de esquemas lgicos de estrutura
de diretrio.
Um diretrio contm um conjunto de entradas, uma por arquivo. Uma
das possibilidades cada entrada conter o nome do arquivo, seus atributos e
os endereos no disco onde ele est armazenado, ou o nome do arquivo e um
ponteiro para outra estrutura de dados onde se podem encontrar os atributos
do arquivo e seus endereos no disco.
Quando um arquivo aberto os atributos e seus endereos so
colocados em uma tabela na memria. Todas as referncias subseqentes a tal
arquivo usam as informaes da memria principal.
Se temos arquivos diferentes como nomes iguais, eles no podem
coexistir num mesmo diretrio logo surgiu a idia de hierarquia genrica, por
exemplo, atravs de uma rvore de diretrios. Assim podemos ter tantos
diretrios quantos necessrios.
A forma mais comum aquela em que tem-se um nico nvel, ou seja,
h apenas um diretrio simples. Todos os arquivos esto num mesmo diretrio,
o qual fcil de dar suporte e entender. Esta forma tem limitaes
principalmente quando o nmero arquivos e usurios crescem, pois j que os
arquivos esto no mesmo diretrio, eles precisam ter nomes diferentes.
A maior desvantagem do diretrio de um nico nvel a confuso dos
nomes de arquivos criados pelos diferentes usurios. A soluo padro criar

um diretrio separado para cada usurio. Nessa arquitetura cada usurio tem
seu prprio diretrio.

Figura 4-6 Sistema de Arquivo Hierrquico

A terceira opo o Sistema de Diretrio Hierrquico onde resolvemos


os problemas dos esquemas anteriores. Quando o sistema organizado como
uma rvore de diretrio, necessria uma regra para a formao dos nomes
dos arquivos. H 2 mtodos muito conhecidos. Em um a cada arquivo dado
um nome de caminho absoluto composto do caminho do diretrio raiz at o
arquivo. O segundo mtodo de formao de nome o nome de arquivo
relativo, e usado em conjunto com o conceito de diretrio de trabalho ou
diretrio corrente, ou seja, sabendo o diretrio corrente mais fcil digitar o
nome do arquivo que todo o caminho absoluto.

2.3 Implementao do Sistema de Arquivo


Nesta seo sero abordadas as implementaes dos arquivos e do diretrio
com base nas definies feitas sobre ambos anteriormente.
2.3.1 Implementao de Arquivos
O ponto-chave na implementao do armazenamento de arquivos associar
blocos de disco a arquivos. H vrios mtodos tais como: Alocao Contgua,
Alocao com Lista Ligada, Alocao com Lista Ligada Usando um ndice e
Ns-i.
2.3.2 Tipos de implementao de arquivo
Alocao Contgua

O mais simples de todos os esquemas de alocao, onde cada arquivo


armazenado no disco como um bloco contnuo de dados. H 2 vantagens neste
esquema: simples de implementar pois o controle de onde est o arquivo
reduz-se a guardar o endereo em disco de seu primeiro bloco, e a
performance tima porque todo o arquivo pode ser lido do disco em uma
nica operao.
Porm h 2 desvantagens: s pode ser usado se o tamanho do arquivo
for conhecido no momento de sua criao, sem isso o sistema operacional no
pode saber quanto espao em disco deve ser reservado. Outro problema a
fragmentao do disco que torna-se cara devido a esta poltica de alocao.
Alocao com Lista Ligada
Neste mtodo mantm-se o espao alocado ao arquivo como uma lista
ligada de blocos. A primeira palavra de cada bloco usada como um ponteiro
para o prximo bloco. O restante do bloco usado para armazenamento das
informaes pertencentes ao arquivo. As vantagens so: ao contrrio da
alocao contgua, qualquer bloco do disco pode ser usado. No se perde
espao por fragmentao do disco. Alm disso, a entrada do diretrio s
precisa armazenar o endereo em disco do primeiro bloco do arquivo. O
restante do arquivo pode ser encontrado comeando no ponto indicado no
diretrio.
As desvantagens deste mtodo so: o acesso randmico lento e mais
difcil de implementar do que o seqencial. E, alm, disso a quantidade de
informaes armazenadas em um bloco no mais uma potncia de dois, em
funo da necessidade de se armazenar o ponteiro no bloco.
Alocao com Lista Ligada Usando um ndice
Ambas as desvantagens apontadas para a alocao com listas ligadas
podem ser eliminadas tirando-se o ponteiro de cada um dos blocos e
colocando-os em uma tabela ou ndice na memria.
Usando esta organizao, todo bloco fica disponvel para
armazenamento da informao. Apesar do acesso ser randmico, mais
simples de ser implementado. Apesar de a cadeia ter de ser seguida para
encontrar um deslocamento dentro do arquivo, a cadeia est toda na memria
e no h necessidade de acesso a disco. Basta que a entrada do diretrio
contenha o nmero do bloco inicial. O MS-DOS usa este mtodo para alocao
de espao em disco.
A maior desvantagem que toda a tabela deve estar na memria
durante todo o tempo.
Ns-i
Este ltimo mtodo para controlar a correspondncia entre blocos no
disco e arquivos consiste em associar a cada arquivo de uma pequena tabela
denominada n-i(n ndice), que lista os atributos e os endereos em disco dos
blocos do arquivo.
Os primeiros endereos de disco so armazenados no prprio n-i, de
maneira que, para arquivos pequenos, toda a informao encontrada

diretamente no n, sendo a informao transferida do disco para a memria


quando o arquivo for aberto. Em arquivos maiores, um dos endereos no n-i
o endereo de um bloco do disco chamado bloco indireto simples . Tal bloco
contm endereos adicionais no disco relativos ao arquivo em questo. Caso o
arquivo seja maior usa-se o bloco indireto duplo que aponta para 2 blocos
simples, ou o bloco indireto triplo que aponta para 3 blocos simples os quais
apontam para mais dois blocos simples cada um deles. O Unix segue este
esquema.

2.4 Implementao de Diretrio


Antes do arquivo ser lido ele precisa ser aberto. Ao abrir um arquivo, o
sistema operacional usa o nome fornecido pelo usurio para procurar sua
entrada no diretrio. Tal entrada fornece as informaes necessrias a
encontrar os blocos deste arquivo. Dependendo do sistema, esta informao
pode ser simplesmente um endereo do disco vlido para todo o arquivo
(alocao contgua), o nmero do primeiro bloco do arquivo (alocao com
listas ligadas), ou mesmo o nmero do n-i relativo ao arquivo. Nestes casos, a
principal funo do diretrio mapear o nome ASCII do arquivo na informao
necessria localizao do dado.
Os atributos podem ser armazenados na entrada do diretrio ou outra
possibilidade armazenar nos prprios ns nos sistemas que usam n-i.

2.4.1 Tipos de implementao de diretrio


Diretrios no CP/M
S existe um diretrio e tudo o que o sistema operacional deve fazer
procurar o nome do arquivo no diretrio e obter os nmeros dos blocos do
disco bem como os atributos correspondentes a este arquivo.
Diretrios no MS-DOS
O MS-DOS e alguns outros sistemas usam rvores de diretrio na
implementao de seus diretrios. Uma entrada para diretrio no MS-DOS
possui 32 bytes e tem os seguintes campos: nome do arquivo, extenso,
atributos, reservado, hora, data, nmero do primeiro bloco. Este nmero
usado como ndice para uma tabela do tipo alocao com lista ligada. Seguindo
a cadeia todos os blocos podem ser encontrados.
No MS-DOS diretrios podem conter outros diretrios, levando a uma
estrutura hierrquica para o sistema de arquivo.
Diretrio no Unix
A estrutura adotada pelo Unix bastante simples. Cada entrada contm
simplesmente um nome de arquivo, e o nmero do seu n-i. Todas as
informaes sobre tipo, tamanho, tempos, proprietrios e blocos de disco esto
contidas no n-i.

2.4.2 Algoritmo de busca no diretrio


O algoritmo para se abrir um arquivo basicamente o mesmo para qualquer
sistema de diretrio hierrquico. Temos que localizar os blocos do disco
correspondente ao nome do arquivo fornecido na chamada.
Ex de caminho: /usr/ast/mbox
Em primeiro lugar ele localiza o diretrio-raiz. No Unix, seu n-i est
localizado num endereo fixo do disco.
A seguir ele procura pelo primeiro componente do caminho, usr, no
diretrio-raiz, para encontrar o nmero do seu n-i. Localizar o n-i a partir do
seu nmero muito simples, uma vez que cada um deles tem uma localizao
fixa no disco. A partir deste n-i, o sistema localiza o diretrio para /usr e busca
nele as informaes sobre o prximo componente ast. Quando a entrada
correspondente a ast for encontrada, o sistema obtm o n-i para o diretrio
/usr/ast. Deste n-i ele pode encontrar o diretrio procurado e acessar mbox. O
n-i deste arquivo ento transferido para a memria e mantido l at que o
arquivo seja fechado.
Nomes relativos so pesquisados da mesma forma que os absolutos, s
que a busca iniciada do diretrio de trabalho, em vez de comear do diretrioraiz.Cada diretrio tem entrada para . e .. que so colocados l quando
criado o diretrio. A entrada tem o mesmo nmero do n-i do diretrio corrente,
e a entrada tem o nmero do n-i do seu diretrio-pai, respectivamente.

3 MS-DOS
O desenvolvimento desse projeto foi baseado no sistema de arquivo do MSDOS, abaixo tem-se a histria do MS-DOS, em que ele foi baseado e sua
evoluo em relao aos sistemas da poca e em relao ao sistema de
arquivo.
MS-DOS um exemplo de sistema operacional para mquinas com um nico
processador. O mesmo s roda em arquiteturas baseadas nos processadores
Intel 8088 e seus sucessores. Apesar disso, o MS-DOS de longe, o sistema
operacional mais utilizado de todos os tempos, tendo alcanado a respeitvel

marca de 50 milhes de cpias vendidas. Esta seo foi baseada no livro


Modern Operating Systems de Tanembaum [12]

3.1 Histria do MS-DOS


O primeiro computador pessoal foi o Altair, produzido em 1975 por uma
companhia chamada MITS, de Albuquerque, Novo Mxico, EUA. Ele era
baseado no microprocessador 8080, de oito bits, fabricado pela Intel, e tinha
256 bytes de memria. O Altair no tinha teclado, nem vdeo, e muito menos
disco ou fita, mas seu preo muito baixo, em torno de 400 dlares,
transformou-o num culto para os eletrnicos amadores, que cresceram a
montando kits de rdios e televises vendidos em bancas de jornal. Um jovem
chamado Bill Gates escreveu uma verso do BASIC para o Altair, que obteve
um sucesso modesto junto aos usurios do microcomputador. Mais tarde este
programa veio a fazer de Gates um bilionrio.
Em poucos anos, muitas empresas comearam a produzir
microcomputadores baseados no chip 8080. Em quase todas estas mquinas,
rodava o sistema operacional chamado CP/M, produzido por uma pequena
empresa da Califrnia, a Digital Research. Todos os computadores pessoais
(chamados de microcomputadores) projetados de 1975 at o incio da dcada
de 80 nada mais eram que brinquedos comprados e utilizados
fundamentalmente pelas pessoas que tinham a eletrnica como hobby.
3.1.1 O PC IBM
No incio dos anos 80, a IBM, que ento dominava a indstria de
computadores, decidiu entrar no negcio da computao pessoal. No entanto,
quando tomou uma deciso sobre o assunto, j era tarde para desenvolver um
projeto prprio. Por conta disso, seus executivos decidiram fazer algo que no
era usual para a cautelosa e burocrtica IBM. Enviaram um de seus agentes,
Philip Estridge, para Boca Raton, na Flrida. Partiram de Westchester, Nova
Iorque, com uma mala cheia de dinheiro, com a recomendao de no voltar a
Nova Iorque sem um projeto de computador pessoal no bolso.
Estridge percebeu logo que a nica maneira de se produzir rapidamente
um computador pessoal era utilizando componentes-padro, em vez dos
projetados internamente, pela prpria IBM, como ela sempre fazia. Nesta
poca, a Intel j tinha produzido dois sucessores para o 8080, o 8086, de 16
bits, e o 8088, uma verso do 8086, com um barramento de oito bits. Estridge
escolheu o 8088, pois os chips que davam suporte a este processador eram
muito mais baratos que os do 8086, Esta deciso baseou-se no fato de o preo
de venda da mquina ser o ponto de maior importncia de todo o projeto.
Alm de no ter interesse em construir ela prpria os chips para equipar
seu computador pessoal, a IBM estava muito menos interessada em escrever
software para ele. Seus executivos sabiam que o BASIC era muito popular
entre os usurios de computadores pessoais, de modo que eles foram
consultar Bill Gates, que nesta poca j tinha fundado uma nova empresa,
chamada Microsoft, a fim de licenciar o interpretador BASIC para ser usado no
IBM-PC, Pediram tambm que Gates desenvolvesse um sistema operacional
para a nova mquina.
A Microsoft, porm, estava dedicada ao projeto de vender o UNIX, sob
licena do Bell Labs (AT&T). Ocorre que o UNIX, originrio do mundo dos

minicomputadores, precisava de 100k de memria s para o sistema


operacional, e tambm de um disco rgido. A mquina da IBM tinha um total de
64k de memria, e no era equipada com disco rgido. Em funo disso, Gates
sugeriu que a IBM usasse o CP/M-86, desenvolvido pela Digital Research. A
IBM consultou a Digital Research, que respondeu que o desenvolvimento do
CP/M-86 estava atrasado em relao ao cronograma original, e a IBM no
podia esperar.
Mais uma vez, a Microsoft foi procurada. Desta vez consultada sobre a
possibilidade de escrever um sistema operacional com as mesmas
caractersticas do CP/M-86. Os projetos de Gates o impediram de assumir a
empreitada e realiz-la no prazo exigido pela IBM. Ele, porm, sabia que uma
empresa vizinha da Microsoft, a Seatle Computer Products, havia desenvolvido
um sistema operacional CP/M-like, denominado 86-DOS, para testar as placas
de memria que ela produzia e vendia. A Microsoft ento comprou o 86-DOS, e
em abril de 1981, contratou seu projetista, Tim Paterson, para torn-lo ainda
menor. Eles mudaram o nome do sistema para MS-DOS (MicroSoft Disk
Operating System), entregando-o IBM dentro do prazo combinado. Quando o
IBM PC foi anunciado em agosto de 1981, o MS-DOS estava junto com ele.
Na verso da IBM e de muitos outros fabricantes, a maior virtude do MSDOS era a de permitir que os softwares desenvolvidos para CP/M, que
rodavam no processador 8080 (o 8088 era compatvel com o 8080, e podia
rodar a maioria de seus programas com pouqussimas modificaes),
rodassem tambm sob o MS-DOS. Ningum poderia imaginar que 10 anos
depois este pequeno sistema, que surgiu no mercado quase que por acidente,
pudesse estar controlando o funcionamento de 50 milhes ou mais de
computadores espalhados pelo mundo inteiro.
Alm do mais, ningum, nem mesmo a IBM, tinha a menor idia do
sucesso que o IBM PC iria alcanar. A IBM imaginava inicialmente que ele seria
usado para jogos, Basta ver a freqncia de 4,77MHz do seu clock foi
escolhida em funo da compatibilidade com a usada nos sistemas de
televiso americanos, de maneira a permitir que as pessoas usassem seus
prprios aparelhos de TV como vdeo, em vez de monitores especficos. O PC
tambm vinha equipado com hardware para controlar aparelhos de
gravao/reproduo de fitas cassete, que poderiam ser usadas como meio de
armazenamento, e joysticks. Nenhum destes dois dispositivos teve muito uso,
em virtude da inexistncia de softwares para eles.
Provavelmente a melhor coisa que a IBM fez foi tornar o PC um sistema
aberto. O projeto completo, inclusive as listagens da ROM e os diagramas
eltricos foram descritos em detalhes em um livro que estava disponvel em
todos os pontos de venda dos PCs. Isto fez com que fosse possvel usar no PC
tanto produtos de hardware quanto de software, produzidos por terceiros, a
exemplo do que foi feito para os milhares de fabricantes.
De fato, com os diagramas de circuitos disponveis, e a mquina
composta exclusivamente para os componentes no dedicados, que podiam
ser comprados em qualquer loja de eletrnica, muitas empresas passaram a
construir e a vender cpias do PC, conhecidas como clones, entretanto em
competio direta com a prpria IBM. Foi devido a esta enorme carga de
energia e criatividade que o PC teve tanto sucesso, e a reboque dele, o MSDOS.

3.1.2 MS-DOS Verso 1.0


O sistema operacional era constitudo por trs programas: o ibmbio.com, que
tratava do disco e do sistema de entrada/sada voltado a caracter; o
ibmdos.com, que o gerenciador de arquivos e do disco, e o comannd.com.
A primeira verso do MS-DOS, a exemplo do CP/M, suportava somente
um nico diretrio, ou seja, no suportava sub-diretrios. Ao digitar o comando
dir, para listar todos os arquivos do diretrio corrente, o que voc realmente via
era a listagem de todos os arquivos do sistema.
Apesar da verso 1.0 do MS-DOS ter sido compatvel com o CP/M, ela
era melhor que este. O MS-DOS trazia informaes sobre o arquivo como o
tamanho exato do mesmo, tinha um algoritmo melhor para alocao de disco e
era muito mais rpido. A verso 1.1 foi liberada pela Microsoft em 1982 e
tambm consertou alguns bugs.
3.1.3 MS-DOS Verso 2.0
A IBM em maro de 1983 lanou o PC/XT, seu primeiro computador pessoal
equipado com disco rgido junto com a nova verso 2.0 do MS-DOS. O sistema
de arquivo do MS-DOS foi quase todo inspirado no do Unix. O MS-DOS no
sistema de arquivo usa o conceito de FAT e o Unix usa o conceito de I-nodes.
As chamadas open, read, write e close estavam presentes na verso 2.0,
exatamente com a mesma estrutura do Unix.
No processo de adicionar novas caractersticas do Unix, o MS-DOS
cresceu para 20.000 linhas de cdigo de montagem. Ele tambm tirou do
mercado o CP/M-86, que finalmente tinha tido seu desenvolvimento terminado,
e estabeleceu-se como o sistema operacional dominante para os PCs. Por ter
introduzido o disco rgido nos PCs tornou-se possvel rodar aplicaes
razoavelmente grandes, fazendo com que eles deixassem de ser
computadores pessoais para se tornarem tambm mquinas comerciais.
Empresas de pequeno, mdio e grande portes comearam a adquirir PCs.
Nessa poca o MS-DOS era mantido por somente quatro pessoas na
Microsoft. Com o crescimento da demanda mundial pelo sistema, a Microsoft
contratou novos programadores e lanou a verso 2.05, que suportava
horrios, datas, moedas, e smbolos decimais, usados em muitos pases do
mundo.
3.1.4 MS-DOS Verso 3.0
A IBM lanou o PC/AT em agosto de 1984, seu primeiro computador pessoal
baseado no chip 286. Nesta poca tambm surgiram discos de 10MB e o
conceito de disco em RAM, atravs da qual uma parte da memria era usada
como se fosse um disco muito rpido.
Quase na mesma poca do lanamento do MS-DOS 3.3, a IBM e a
Microsoft liberaram um sistema operacional completamente novo, denominado
OS/2. Na viso das duas empresas, o OS/2 iria substituir o MS-DOS. Isto
nunca aconteceu. O OS/2 foi liberado com muito atraso, e pior que isto,
incompleto. Apesar dele ter muitas vantagens sobre o MS-DOS, tal como usar
toda a memria disponvel, rodar em modo protegido, suportar
multiprogramao de uma forma elegante, o mercado no se interessou muito
pelo novo sistema. Em 1991, a Microsoft anunciou que estava abandonando
completamente o OS/2, o que irritou profundamente a IBM, a ponto de romper

sua aliana com a Microsoft, e assinar um acordo com a Apple Computer para
fornecimento de seus softwares.
3.1.5 MS-DOS Verso 4.0
Depois da IBM ter se convencido que o OS/2 no iria ser aceito pelos usurios,
ela surpreendeu lanando o MS-DOS verso 4.0, o qual a Microsoft tambm
produziu. Para obter a verso 4.0 a mesma usou o mtodo de engenharia
reversa, distribuindo-o atravs dos fabricantes de clones do PC. Tanto a IBM
quanto a Microsoft se convenceram de que o MS-DOS no iria desaparecer
pois em lugar de contribuir para exterminar o MS-DOS, como fora a inteno
revelada de ambas as empresas, elas estavam melhorando o sistema que no
deveria continuar.
3.1.6 MS-DOS Verso 5.0
A verso 5.0 foi anunciada em abril de 1991. Nesta verso foi considerada
seriamente a questo da memria estendida. Apesar de ainda haver a restrio
na memria estendida de apenas poder-se usar 640K, esta verso capaz de
manter por mais tempo a maior parte de seu prprio cdigo na memria
estendida, logo fica disponvel para os programas de usurio em torno de
600K.
Esta nova verso passou a ser vendido em lojas e no mais apenas aos
fabricantes de computador.
A verso 5.0 do MS-DOS j era obsoleta quando foi anunciada. A IBM e a
Microsoft j sabiam disso por isso investiram muito milhes de dlares no
OS/2. Infelizmente o mercado reagiu mal ao OS/2. Quando ficou claro que o
OS/2 no decolaria a Microsoft mudou sua estratgia e desenvolveu o
Windows, com interface grfica e uso de mouse, que rodava em cima do MSDOS. O lado positivo disto o fato de ele ter acumulado uma quantidade
imensa de pacotes de aplicativos de alta qualidade.

3.2 O Sistema de Arquivo


O sistema de arquivo original do MS-DOS foi baseado no CP/M. A princpio s
existia um diretrio. A partir da verso 2.0 foi adotado o modelo hierrquico do
sistema de arquivo.
A partir desta nova verso o diretrio raiz podia ter subdiretrios e estes
tenham novos sub-diretrios. O sistema de arquivo usa os nomes . e .. para
indicar diretrio corrente e diretrio-pai respectivamente.
Os nomes dos arquivos tem at 8 caracteres, seguidos de uma extenso
de at 3 caracteres. Os nomes so formados por qualquer seqncia legal de
caracteres. O separador de diretrio no mesmo o \. Outra coisa interessante
que os arquivos PROFESSOR, Professor, professor indicam um nico
arquivo, ou seja, ele desconsidera maisculas e minsculas.
Cada arquivo no MS-DOS tem atributos. Eles so quatro:
1. Readonly o arquivo no pode ser modificado
2. Archive o arquivo modificado desde o ltimo arquivamento
3. System arquivo de sistema que no pode ser apagado pelo comando
del
4. Hidden arquivo no listado pelo comando dir

O MS-DOS suporta vrios discos, ento quando o usurio quiser remover


um arquivo ele deve especificar o dispositivo como exemplo a: para unidade
de disquete e c: para disco rgido por exemplo.
O disquete e o disco rgido so organizados de forma diferente e vamos nos
concentrar no segundo tipo. Todos os discos rgidos tm a mesma estrutura,
mostrada na Figura 5-7. O setor de boot tem dados crticos para o sistema de
arquivo, alm de cdigo para inicializar o sistema. Depois vm as tabelas que
controlam todo o espao do disco. Elas so seguidas pelo diretrio-raiz e por
todo o resto.

Figura 5-7 Organizao do disco no MS-DOS

O setor de boot sempre comea com uma instruo de desvio


incondicional, que salta pelas informaes do setor e vai para o incio do
cdigo, sem se preocupar com a estrutura interna do disco. Depois vem uma
lista de informaes como nmero de bytes do setor, o nmero de setores por
bloco, o nmero de arquivos das tabelas de alocao, o tamanho do diretrio
raiz, o tamanho do dispositivo e outros dados.
Aps estes parmetros vem o cdigo de boot, e ao final a tabela de
partio. Ela contm o comeo e o termino de cada uma das parties do
disco, at um mximo de quatro parties, cada uma podendo conter um
sistema de arquivo diferente. Alguma das parties deve ser marcada como
ativa para quando o boot do disco for acionado saber qual sistema inicializar.
Aps o setor de boot encontra-se a FAT (Tabela de Alocao de Arquivos
File Allocation Table), a qual controla todos os espaos do dispositivo. Para
ter-se confiabilidade esta tabela pode ser duplicada, de modo ao sistema
tornar-se inacessvel caso a FAT principal no possa ser lida por qualquer
motivo.
A FAT contm uma entrada para cada bloco do disco. O tamanho do
bloco obtido do setor de boot. O formato conceitual da FAT mostrado na
Figura 5-8. O seu formato real retrocede s razes do MS-DOS, baseado no
CP/M. H uma correspondncia um-para-um entre as entradas da FAT e os
blocos do disco, exceto pelas duas primeiras entradas, as quais possuem o
cdigo da classe do disco. No exemplo vemos que atravs da FAT descobrimos
quais blocos ocupam cada arquivo.
A entrada do diretrio de cada arquivo possui o nmero do primeiro
bloco que o mesmo ocupa, ento a partir disso e com o auxlio da FAT temos

que todo o arquivo encontrado. Os blocos livres na FAT so marcados com


um smbolo especial. Quando o arquivo cresce o MS-DOS procura por uma
entrada livre na FAT, e aloca este para o arquivo. E os blocos que esto com
falha so marcados na FAT com outro smbolo significando isto.

Figura 5-8 FAT - Tabela de Alocao de Arquivo

Exemplo de passos seguidos pelo MS-DOS para a chamada OPEN:


O MS-DOS vai na tabela de descritores de arquivo, mantida como array
de 20 bytes. Cada byte armazena um ndice de 1 byte para a tabela de
arquivos do sistema. Se for localizado um descritor de arquivo livre, busca-se
uma posio livre na tabela de arquivo do sistema. Caso as duas operaes
tenham sucesso o caminho analisado, se comear com \, o caminho
absoluto e a busca comea do diretrio-raiz, seno o caminho relativo, e a
busca comea do diretrio de trabalho. A entrada do diretrio copiada na
tabela de arquivos do sistema, que tem uma entrada para cada arquivo aberto.
Depois, o descritor de arquivo retorna ao processo que chamou OPE, e termina
a execuo da chamada.

Figura 5-9 Entrada de Diretrio no MS-DOS

Cada entrada de diretrio no MS-DOS tem 32 bytes para cada arquivo ou


diretrio contido nele, conforme Figura 5-9. Os primeiros 11 caracteres
guardam o nome do arquivo e sua extenso, logo depois tem-se o byte de
atributos, contendo os seguintes bits:
A - Igual a 1 quando o arquivo modificado.
D - Igual a 1 para indicar que a entrada referente a um diretrio.
V - Igual a 1 para indicar que esta entrada para o nome de volume.
S - Igual a 1 para arquivos de sistema, que no podem ser apagados.
H - Igual a 1 para indicar arquivos escondidos, ou seja, no listados pelo
dir.
R - Igual a 1 para indicar arquivos que no podem ser escritos.
A data e a hora da ltima modificao feita no arquivo so armazenadas
nos prximos campos. Os campos seguintes guardam nmero do primeiro
bloco do arquivo e seu tamanho.

Referncias e Bibliografia
Minix MINIX INFORMATION SHEET
[1] http://www.cs.vu.nl/~ast/minix.html
Consultado em 27 de Junho de 2002

[2]

Minix Operating System


Andrew S. Tanenbaum, Prentice-Hall, 1987

[3]

Amoeba The Amoeba Distributed Operating System


Andrew S. Tanenbaum & Gregory J. Sharp, Vrije Universiteit, De Boelelaan
1081a
Amsterdam, The Netherlands
http://www.cs.vu.nl/pub/amoeba/Intro.pdf
Consultado em 5 de Junho de 2002

[4]

Amoeba Andrew S. Tanenbaum, Sistemas Operacionais Modernos, 1992,


LTC- Livros Tcnicos e Cientficos Editora S.A.

[5]

Sistemas Operacionais - The kid operating system


http://kos.enix.org/docs.php?lang=en
Consultado em 25 de Maio de 2002

[6]

Nachos - General Nachos Documentation


http://www.cs.washington.edu/homes/tom/nachos/
Consultado em 12 de Junho de 2002

[7]

Sistemas Operacionais
Technical Resources and Course Web Site for,
Operating Systems, Fourth Edition, by William Stallings
http://williamstallings.com/OS4e.html
Consultado em 19 de Junho de 2002

[8]

Nachos API do Nachos java 5.0


http://inst.eecs.berkeley.edu/~cs162/projects/doc/index.html
Consultado em 12 de Junho de 2002

[9]

RCOS Java
http://rcosjava.sourceforge.net/
Consultado em 21 de Junho de 2002

RCOS - An Animated, Simulated Operating System in Java


David Jones and Andrew Newman
[10]
http://rcosjava.sourceforge.net/Papers/RCOSjava.html
Consultado em 21 de Junho de 2002
[11] Pgina do Tanenbaum

http://www.cs.vu.nl/~ast/
Consultado em 22 de Junho de 2002

[12]

Modern Operating Systems


Andrew S. Tanembaum, 2nd Edition, Prentice hall

[13]

Applied Operating System Concepts, first edition


Silberschatz A., Galvin P., Gagne Greg, Ano 2000, Wiley

You might also like