Anda di halaman 1dari 17

UNIVERSIDADE EDUARDO MONDLANE

FACULDADE DE ENGENHARIA
Engenharia Informtica !" La#ora$
De%artamento &e E$ectrotecnia
Si"tema" O%erati'o" e rograma()o Concorrente
E"tr*t*ra interna &o Uni+ e Lin*+, Ge"t)o &e %roce""o"- mem!ria" e
ficheiro",
Di"cente". Docente.
Gatsi, Norberto Bonifcio Dr, Incio G, /icongo$o
Tivane, Francisco Samuel
Matusse, Bento Azarias
Ma%*to- Maio &e 0123
3
Si"tema" O%erati'o" e rograma()o Concorrente
4444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444

ndice
i.Resumo........................................................................................................................ 3
ii.Metodologia................................................................................................................. 3
1. Introduo.................................................................................................................. 4
2. Desenvolvimento........................................................................................................ 5
2. !is"o #eral do $ni%...........................................................................................................&
2.2 'nterface do $ni%................................................................................................................&
2.( )onceitos fundamentais......................................................................................................&
2.* )+amadas ao sistema no #erenciamento de ,rocessos no $ni% ........................................-
2.& Gerenciamento de mem.ria no $ni%................................................................................/
2.&. )+amada ao sistema ,ara #erenciamento de mem.ria no $ni%.....................................
2.0 Sistema de fic+eiros ou ar1uivos no $ni%.......................................................................2
2.0. )onceitos fundamentais.................................................................................................2
2.-.Gerenciamento de ,rocessos no 2inu%
3 2inu% 4 um ,ro#rama monotarefa, mas com time s+ared 5tem,o de e%ecu6"o
com,artil+ado7. 8rocessos s"o ,ro#ramas em e%ecu6"o, ,rocesso zumbi 4 1uando o ,rocesso
,ai morre.
Todo ,rocesso ,ossui9............................................................................................................(
2.: Gerenciamento de mem.ria no 2inu%...............................................................................*
2.; Gerenciamento de ar1uivos no 2inu%...............................................................................&
3. Consideraes finais................................................................................................ 16
4. Refern!ia "i"liogr#fi!a............................................................................................1$
)adeira de Sistema 3,erativos e 8ro#rama6"o )oncorrente < Gru,o !''' < = Semestre < 2/*
3
Si"tema" O%erati'o" e rograma()o Concorrente
4444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444
i, Re"*mo
$m sistema com,utacional moderno consiste em um ou mais ,rocessadores, mem.ria
,rinci,al, discos, im,ressoras, teclado, mouse, monitor, interfaces de rede e outros
dis,ositivos.
$m dos conceitos mais fundamentais dos Sistemas 3,eracionais Modernos 4 a
distin6"o entre o ,ro#rama e a actividade de e%ecut>lo. 3 ,ro#rama 4 a,enas um
con?unto esttico de directrizes e sua e%ecu6"o 4 uma actividade din@mica
.
3utra das diferen6as 1ue ,odemos observar entre um sistema o,eracional e a,lica6Aes
convencionais 4 a forma com 1ue suas rotinas s"o ,rocessadas em fun6"o do tem,o. $m
sistema o,eracional n"o 4 e%ecutado de forma estruturada. Suas rotinas s"o e%ecutadas
concorrentemente em fun6"o de eventos assBncronos. Cm outras ,alavras, eventos 1ue
,odem ocorrer a 1ual1uer momento.

O#5ecti'o"
3 ,resente trabal+o tem como ,rinci,al ob?ectivo com,reender o funcionamento da
#est"o de ,rocessos, mem.rias e fic+eiros nos sistemas o,erativos baseados em $ni% e
2inu%.
ii, Meto&o$ogia
3 ,resente trabal+o foi elaborado com base em ,es1uisa de manuais.
)adeira de Sistema 3,erativos e 8ro#rama6"o )oncorrente < Gru,o !''' < = Semestre < 2/*
3
Si"tema" O%erati'o" e rograma()o Concorrente
4444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444
2, Intro&*()o
C%istem vrios sistemas o,erativosD entre eles, os mais utilizados no dia>a>dia,
normalmente utilizados em com,utadores dom4sticos, s"o o Windows, Linux e Mac OS
X.
$m com,utador com o sistema o,erativo instalado ,oder n"o dar acesso a todo o seu
conteEdo de,endendo do utilizador. )om um sistema o,erativo, ,odemos estabelecer
,ermissAes a vrios utilizadores 1ue trabal+am com este. C%istem dois ti,os de contas
1ue ,odem ser criadas num sistema o,erativo, as contas de Administrador e as contas
limitadas. A conta Administrador 4 uma conta 1ue oferece todo o acesso F m1uina,
desde a #est"o de ,astas, fic+eiros e software de trabal+o ou entretenimento ao controle
de todo o seu GardHare instalado. A conta 2imitada 4 uma conta 1ue n"o tem
,ermissAes ,ara aceder a al#umas ,astas ou instalar software 1ue se?a instalado na raiz
do sistema ou ent"o 1ue ten+a li#a6"o com al#um GardHare 1ue altere o seu
funcionamento normal ou ,ersonalizado ,elo Administrador. 8ara 1ue este ti,o de conta
,ossa ter acesso a outros conteEdos do disco ou de software, o administrador ,oder
,ersonalizar a conta oferecendo ,ermissAes a al#umas fun6Aes do sistema como
tamb4m ,oder retirar acessos a certas reas do sistema.
3 sistema o,erativo funciona com a inicia6"o de ,rocessos 1ue este ir ,recisar ,ara
funcionar correctamente. Csses ,rocessos ,oder"o ser fic+eiros 1ue necessitam de ser
fre1uentemente actualizados, ou fic+eiros 1ue ,rocessam dados Eteis ,ara o sistema.
8oderemos ter acesso a vrios ,rocessos do sistema o,erativo a ,artir do #estor de
tarefas, onde se encontram todos os ,rocessos 1ue est"o em funcionamento desde o
arran1ue do sistema o,erativo at4 a sua utiliza6"o actual. 8ode>se tamb4m visualizar a
utiliza6"o da mem.ria ,or cada ,rocesso, no caso de o sistema o,erativo come6ar a
mostrar erros ou fal+as de acesso a ,ro#ramas tornando>se lento, ,ode>se verificar no
#estor de tarefas 1ual dos ,rocessos estar blo1ueado ou com elevado nEmero de
,rocessamento 1ue est a afectar o funcionamento normal da mem.ria.
)adeira de Sistema 3,erativos e 8ro#rama6"o )oncorrente < Gru,o !''' < = Semestre < 2/*
3
Si"tema" O%erati'o" e rograma()o Concorrente
4444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444
0, De"en'o$'imento
0,2 Vi")o gera$ &o Uni+
3 $ni% 4 um sistema interactivo ,ro?ectado ,ara tratar mElti,los ,rocessos e usurios ao
mesmo tem,o. Foi ,ro?ectado ,or e ,ara ,ro#ramadores, ,ara ser usado em um
ambiente no 1ual a maioria dos usurios 4 relativamente sofisticada e en#a?ada em
,ro?ectos de desenvolvimento de software. $m dos ,rincB,ios bsicos associados ao
$ni% 4 1ue todo ,ro#rama deve fazer somente uma coisa e fazI>la bem>feita. Assim os
com,iladores n"o ,roduzem lista#ens ,or1ue outros ,ro#ramas s"o ca,azes de realizar
isso mel+or.
0,0 Interface &o Uni+
$m sistema $ni% ,ode ser considerado um ti,o de ,ir@mide, como ilustrado na Fig*ra
2, Na base est o hardware, 1ue 4 formado de )8$, mem.ria, discos, terminais e outros
dis,ositivos. C%ecutando directamente sobre o hardware est o sistema o,eracional
$ni%. Sua fun6"o 4 controlar o hardware e fornecer uma interface de c+amadas ao
sistema ,ara todos os ,ro#ramas. Cssas c+amadas ao sistema ,ermitem 1ue os
,ro#ramas do usurio criem e #erenciem ,rocessos, ar1uivos e outros recursos.
0,6 Conceito" f*n&amentai"
3 $ni% 4 um sistema multi,ro#ramado, de modo 1ue mElti,los ,rocessos
inde,endentes ,odem e%ecutar ao mesmo tem,o. )ada usurio ,ode ter vrios
,rocessos activos de uma s. vez, e, assim, em um #rande sistema, 4 ,ossBvel +aver
centenas ou talvez mil+ares de ,rocessos e%ecutando. Je fato, na maioria das esta6Aes
)adeira de Sistema 3,erativos e 8ro#rama6"o )oncorrente < Gru,o !''' < = Semestre < 2/*
3
Si"tema" O%erati'o" e rograma()o Concorrente
4444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444
de trabal+o de um Enico usurio, mesmo 1ue o usurio este?a ausente, muitos ,rocessos,
c+amados de daemons, est"o e%ecutando em se#undo ,lano. Csses ,rocessos s"o
iniciados automaticamente 1uando o sistema 4 inicializado.
Csse daemon 4 necessrio ,or1ue o $ni% ,ermite a#endar actividades ,ara serem
e%ecutadas minutos, +oras, dias ou mesmo meses de,ois. 3 daemon tamb4m 4 usado
,ara e%ecutar actividades ,eri.dicas, como realizar backups do disco diariamente Fs
1uatro da man+" ou, todos os anos, lembrar usurios es1uecidos. 3utros daemons
tratam as mensa#ens electr.nicas 1ue c+e#am e 1ue saem, #erenciam a fila da
im,ressora de lin+a, verificam a 1uantidade de ,#inas na mem.ria e assim ,or diante.
Daemons s"o sim,les de im,lementar no $ni% ,or1ue cada um 4 um ,rocesso se,arado,
inde,endentemente de todos os demais ,rocessos.
No $ni% os ,rocessos s"o criados de um ?eito bastante sim,les. A c+amada ao sistema
fork cria uma c.,ia e%acta do ,rocesso ori#inal. 3 ,rocesso criador 4 c+amado de
,rocesso ,ai. 3 novo ,rocesso 4 c+amado de ,rocesso fil+o. )ada um tem sua ,r.,ria
ima#em da mem.ria ,rivada. Se, a,.s a cria6"o o ,ai alterar suas variveis, essas
altera6Aes n"o ser"o visBveis ,elo ,rocesso fil+o e vice>versa.
3s ar1uivos abertos s"o com,artil+ados entre o ,rocesso ,ai e o ,rocesso fil+o. 3u se?a,
se um certo ar1uivo estava aberto no ,ai, antes da cria6"o do fil+o, continuar aberto em
ambos os ,rocessos, ,ai e fil+o.
Altera6Aes feitas nesse ar1uivo ser"o visBveis a ambos os ,rocessos. Csse
com,ortamento 4 razovel, ,ois essas altera6Aes s"o, da mesma maneira, visBveis a
1ual1uer ,rocesso n"o relacionado 1ue tamb4m abre o ar1uivo.
3 se#redo 4 1ue a c+amada ao sistema fork retorna / ,ara o fil+o e um valor n"o>nulo >
o PID 5identificador de ,rocesso7 > do ,rocesso fil+o ,ara o 8rocesso ,ai. Ambos os
,rocessos costumam verificar o valor retornado e assim ,odem a#ir diferentemente,
como mostra na Fig*ra 0.
)adeira de Sistema 3,erativos e 8ro#rama6"o )oncorrente < Gru,o !''' < = Semestre < 2/*
3
Si"tema" O%erati'o" e rograma()o Concorrente
4444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444
3s ,rocessos s"o identificados ,or seus PIDs. Kuando um ,rocesso 4 criado, o ,ai
recebe o PID do fil+o, como mencionado. Se o fil+o 1uer saber seu ,r.,rio PID, e%iste
uma c+amada ao sistema, etpid, 1ue o fornece. 3s PIDs s"o usados de diferentes
maneiras. 8or e%em,lo, 1uando um ,rocesso fil+o termina, o ,ai recebe o PID desse
,rocesso fil+o. 'sso 4 im,ortante 1uando um ,rocesso ,ai tem muitos fil+os. !isto 1ue
os fil+os tamb4m ,odem ter fil+os, um ,rocesso ori#inal ,odem construir uma rvore
inteira de fil+os, netos e descendentes mais distantes.
3s ,rocessos no $ni% a,resentam a ,ro,riedade de se comunicar entre si usando um
ti,o de troca de mensa#ens. L ,ossBve criar um canal entre dois ,rocessos no 1ual um
deles ,ode escreve um flu%o de bMtes ,ara ler o outro. Csses canais s"o c+amados pipes.
A sincroniza6"o 4 ,ossBvel ,or1ue, ao tentar ler uma entrada do pipe, um ,rocesso 4
blo1ueado at4 1ue o dado este?a dis,onBvel.
3s pipe!ines do she!! s"o im,lementados com ,i,es. Kuando o she!! recebe uma lin+a
do ti,o sort "f head cria dois ,rocessos, sort e head, e cria um pipe de modo 1ue a
saBda>,adr"o de sort se?a conectada F entrada>,adr"o de head. Jessa maneira, todos os
dados 1ue sort escrever"o directamente ,ara head, em vez de ir ,ara um ar1uivo. Se o
pipe satura, o sistema ,ra a e%ecu6"o de sort at4 1ue head ten+a removido al#um dado
do pipe.
3s ,rocessos tamb4m ,odem se comunicar de outra maneira9 usando interru,6Aes de
software. $m ,rocesso ,ode enviar um sinal ,ara outro ,rocesso. 3s ,rocessos ,odem
dizer ao sistema o 1ue 1uerem 1ue ocorra 1uando o sinal 4 recebido. As o,6Aes s"o
i#nor>lo, ca,tur>lo ou dei%ar o sinal matar o ,rocesso 5o convencional ,ara a maioria
dos sinais7. Se um ,rocesso decide ca,turar os sinais enviados deve definir um
,rocedimento ,ara tratamento dos sinais. Kuando um sinal 4 recebido, o controle 4
abru,tamente transferido ,ara o tratador. Kuando o tratador finaliza e retorna, o controle
volta ,ara onde estava, como o tratamento de interru,6Aes de CNS via hardware. $m
,rocesso ,ode enviar sinais somente ,ara membros de seu #ru,o de ,rocessos, 1ue
consiste de seu ,ai 5e ancestrais mais distantes7, irm"os e fil+os 5e descendentes mais
distantes7. $m ,rocesso ,ode tamb4m enviar um sinal ,ara todos os membros de seu
#ru,o de ,rocessos com uma Enica c+amada ao sistema.
0,3 Chama&a" ao "i"tema no gerenciamento &e %roce""o" no Uni+
)adeira de Sistema 3,erativos e 8ro#rama6"o )oncorrente < Gru,o !''' < = Semestre < 2/*
3
Si"tema" O%erati'o" e rograma()o Concorrente
4444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444
As c+amadas ao sistema do $ni% 1ue tratam do #erenciamento de ,rocessos. As
,rinci,ais s"o relacionadas na Fig*ra 6.
#ork 4 a Enica maneira de criar um novo ,rocesso nos sistemas $ni%9 #era uma
du,licata e%acta do ,rocesso ori#inal, incluindo todos os descritores de ar1uivos,
re#istradores e tudo o mais. A,.s o fork, o ,rocesso ori#inal e a c.,ia 5o ,ai e o fil+o7
se#uem ,or camin+os se,arados. Todas as variveis tIm valores idInticos F1ueles do
momento da e%ecu6"o do fork, mas, visto 1ue a ima#em da mem.ria do ,ai 4 co,iada
,ara criar o fil+o, as altera6Aes subse1uentes em um deles n"o afectam o outro. A
c+amada fork retorna um valor, o 1ual 4 zero no fil+o e i#ual ao 8'J do fil+o no ,ai.
$sando o 8'J retornado, os dois ,rocessos ,odem saber 1uem 4 o ,ai e 1uem 4 o fil+o.
Na maioria dos casos, a,.s um fork, o fil+o ,recisa e%ecutar um c.di#o diferente do
c.di#o do ,ai. )onsidere o caso do she!! 1ue lI um comando do terminal, cria um
,rocesso fil+o, es,era at4 1ue o fil+o e%ecute o referido comando e, de,ois 1ue o fil+o
termina, lI o ,r.%imo comando. 8ara es,erar o fil+o terminar, o ,ai e%ecuta uma
c+amada ao sistema, waitpid, 1ue sim,lesmente es,era o fil+o terminar 51ual1uer fil+o,
caso e%ista mais do 1ue um7. Waitpid tem trIs ,ar@metros. 3 ,rimeiro ,ermite 1ue o
c+amador es,ere ,or um fil+o es,ecBfico. Se o valor dele 4 , 1ual1uer fil+o anti#o
servir 5isto 4, o fil+o 1ue terminar ,rimeiro7.
Fig*ra 6
0,7 Im%$ementa()o &e %roce""o" no Uni+
$m ,rocesso no $ni% 4 como um iceber#9 a1uilo 1ue se vI a ,arte sobre a #ua, mas
tamb4m e%iste uma ,arte im,ortante submersa. )ada ,rocesso a,resenta uma ,arte do
usurio 1ue e%ecuta o ,ro#rama do usurio. No entanto, 1uando um de suas threads faz
uma c+amada ao sistema, ele troca o modo de e%ecu6"o e ,assa a e%ecutar no conte%to
do nEcleo, com um diferente ma,a da mem.ria e acesso total a todos os recursos da
)adeira de Sistema 3,erativos e 8ro#rama6"o )oncorrente < Gru,o !''' < = Semestre < 2/*
3
Si"tema" O%erati'o" e rograma()o Concorrente
4444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444
m1uina. Cmbora continue sendo a mesma thread, a#ora ele tem mais ,oder e tamb4m
sua ,r.,ria ,il+a e seu ,r.,rio contador de ,ro#rama no modo nEcleo. Csses recursos
s"o im,ortantes ,or1ue uma c+amada ao sistema ,ode ser blo1ueada at4 1ue uma
o,era6"o de disco se com,lete, ,or e%em,lo. 3 contador de ,ro#rama e os re#istradores
s"o ent"o salvos, de modo 1ue a thread ,ossa ser reiniciada no modo nEcleo
,osteriormente.
As informa6Aes contidas na tabela de ,rocessos se en1uadram nas se#uintes cate#orias9
2, ar8metro" &e e"ca$onamento. 8rioridade do ,rocesso, 1uantidade de tem,o
de )8$ consumida recentemente, 1uantidade de tem,o #asta dormindo recentemente.
Ountos, esses ,ar@metros s"o usados ,ara determinar 1ual ,rocesso ser o ,r.%imo a
e%ecutar.
0, Imagem &a mem!ria. 8onteiro ,ara os se#mentos de c.di#o, dados e ,il+a,
ou, caso se?a usada a ,a#ina6"o, ,onteiros ,ara suas tabelas de ,#inas. Se o se#mento
de te%to 4 com,artil+ado, o ,onteiro do c.di#o a,onta ,ara a tabela de c.di#o
com,artil+ada. Kuando um ,rocesso n"o est localizado na mem.ria, informa6Aes sobre
como encontrar suas ,artes no disco tamb4m est"o a1ui na ima#em da mem.ria.
6, Sinai". Mscaras 1ue mostram 1uais sinais est"o sendo i#noradas, 1uais est"o
sendo ca,turados, 1uais est"o sendo blo1ueados e 1uais est"o em ,rocedimento de ser
entre#ue.
3, Mi"ce$8nea". Cstado do ,rocesso actual, evento sendo es,erado > caso e%ista
>, tem,o 1ue resta at4 dis,arar o rel.#io do alarme, PID, PID do ,rocesso ,ai e
identifica6"o de #ru,o e usurio.
As informa6Aes contidas na estrutura do usurio incluem os se#uintes itens9
3,2, Regi"tra&ore" &a m9*ina, Kuando ocorre um desvio de e%ecu6"o 5tra,7
,ara o es,a6o do nEcleo, os re#istradores da m1uina s"o salvos a1ui nesse item da
estrutura 5incluindo os de ,onto flutuante, caso se?am usados7.
3,0, E"ta&o &a chama&a ao "i"tema, 'nforma6Aes sobre a c+amada ao sistema
actual, incluindo ,ar@metros e resultados.
3,6, /a#e$a &e &e"critor &e ar9*i'o, Kuando 4 feita uma c+amada ao sistema
1ue envolva o descritor de ar1uivo, o descritor de ar1uivo 4 usado como um Bndice ,ara
essa tabela, a fim de localizar a estrutura de dados na mem.ria 5i>node7 corres,ondente
a esse ar1uivo.
3,3, Conta#i$i&a&e, 8onteiro ,ara uma tabela 1ue #uarda o camin+o do usurio
e o tem,o de )8$ do sistema usado ,elo ,rocesso. Al#uns sistemas tamb4m mantIm
)adeira de Sistema 3,erativos e 8ro#rama6"o )oncorrente < Gru,o !''' < = Semestre < 2/*
3
Si"tema" O%erati'o" e rograma()o Concorrente
4444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444
a1ui nesse item da estrutura os limites sobre a 1uantidade de tem,o de )8$ 1ue um
,rocesso ,ode usar, o taman+o m%imo de sua ,il+a, o nEmero de molduras de ,#ina
1ue ele ,ode consumir e outros itens.
3,7, i$ha &o n:c$eo, $ma ,il+a fi%a a ser usada ,ela ,arte do nEcleo do
,rocesso.
Kuando uma c+amada ao sistema fork 4 e%ecutada, o ,rocesso c+amador ,assa ,ara o
modo nEcleo e ,rocura ,or uma entrada livre na tabela de ,rocessos ,ara usar ,ara o
fil+o. )aso encontre uma, co,ia todas as informa6Aes da entrada da tabela de ,rocessos
do ,rocesso ,ai ,ara a entrada do fil+o. Cnt"o aloca mem.ria ,ara os se#mentos de
dados e ,il+a do fil+o e faz nela uma c.,ia e%acta dos se#mentos de dados e ,il+a do
,rocesso ,ai. A estrutura do usurio 51ue muitas vezes 4 mantida ad?acente ao se#mento
de ,il+a7 4 co,iada ?untamente com a ,il+a. 3 se#mento de c.di#o ,ode ser co,iado ou
com,artil+ado, ? 1ue 4 somente ,ara leitura. Nesse ,onto, o ,rocesso fil+o est ,ronto
,ara e%ecutar.
3 mecanismo ,ara a cria6"o de um novo ,rocesso 4 na realidade bastante directo. $ma
nova entrada da tabela de ,rocessos e rea de usurio s"o criadas ,ara o ,rocesso fil+o e
,reenc+idas com dados do ,ai. 3 fil+o recebe um PID, seu ma,a de mem.ria 4 a?ustado
e recebe o direito de acesso com,artil+ado aos ar1uivos do ,ai. Cnt"o, seus
re#istradores s"o a?ustados e est ,ronto ,ara e%ecu6"o.
Fig*ra 3, Jemonstra6"o de cria6"o de ,rocesso
0,7 Gerenciamento &e mem!ria no Uni+
)adeira de Sistema 3,erativos e 8ro#rama6"o )oncorrente < Gru,o !''' < = Semestre < 2/*
3
Si"tema" O%erati'o" e rograma()o Concorrente
4444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444
3 modelo de mem.ria do $ni% 4 directo e ob?ectivo de modo 1ue ,ermita a
,ortabilidade dos ,ro#ramas e ,ossibilite a im,lementa6"o do $ni% em m1uinas com
unidades de #erenciamento de mem.ria muito diferentes, desde as mais sim,les at4
a1uelas com hardware de ,a#ina6"o sofisticado.
0,7,2 Chamada ao sistema para gerenciamento de memria no Unix
Na ,rtica, muitos sistemas $ni% tIm c+amadas ao sistema ,ara o #erenciamento de
mem.ria. As mais comuns s"o a,resentadas na Fig*ra 7. $rk es,ecifica o taman+o do
se#mento de dados informando o endere6o do ,rimeiro bMte de,ois dele. Se o novo
valor 4 maior do 1ue o anti#o, o se#mento de dados aumentaD caso contrrio, diminui.
As c+amadas ao sistema mmap e munmap controlam os ar1uivos ma,eados em
mem.ria. 3 ,rimeiro ,ar@metro de mmap, addr, determina o endere6o no 1ual 4
ma,eado o ar1uivo. Jeve ser mElti,lo do taman+o da ,#ina. Se esse ,ar@metro 4 /, o
sistema determina o endere6o ,or si ,r.,rio e o retorna em a. 3 se#undo ,ar@metro, !en,
diz 1uantos bMtes devem ser ma,eados. Tamb4m deve ser mElti,lo do taman+o da
,#ina. 3 terceiro ,ar@metro, prot, determina a ,rotec6"o do ar1uivo ma,eado. 8ode ser
marcado como ,ara>leitura, ,ara>escrita, ,ara e%ecu6"o ou al#uma combina6"o dessas
,ossibilidades. 3 1uarto ,ar@metro, f!as, controla se o ar1uivo 4 ,rivado ou
com,artil+ado e se addr 4 uma e%i#Incia ou meramente uma su#est"o. 3 1uinto
,arFmetro, fd, 4 o descritor de ar1uivo a ser ma,eado. Somente ar1uivos abertos ,odem
ser ma,eados, de modo 1ue ,ara ma,ear um ar1uivo na mem.ria deve ,rimeiramente
ser aberto. 8or fim, ot fset diz a ,osi6"o do ar1uivo onde deve ser iniciado o
ma,eamento. N"o 4 necessrio 1uando se dese?a ma,ear a ,artir do bMte /D caso
contrrio, sim.
A outra c+amada, munmap, remove um ar1uivo ma,eado. Se somente ,arte dele 4
removida do ma,eamento, o restante continua ma,eado.
Fig*ra 7,
)adeira de Sistema 3,erativos e 8ro#rama6"o )oncorrente < Gru,o !''' < = Semestre < 2/*
3
Si"tema" O%erati'o" e rograma()o Concorrente
4444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444
0,6 Sistema de ficheiros ou arquivos no Unix
A ,arte mais visBvel de 1ual1uer sistema o,eracional, inclusive do $ni%, 4 o sistema de
ar1uivos. Al#umas dessas id4ias derivam do M%L&I'S e muitas delas foram co,iadas
,elo MS(DOS, ,elo Windows e ,or outros sistemas, mas outras id4ias s"o e%clusivas do
$ni%. 3 ,ro?eto do $ni% 4 es,ecialmente interessante ,or1ue ilustra nitidamente o
,rincB,io ,e1ueno e bonito. )om um mBnimo de mecanismo e um nEmero muito
limitado de c+amadas ao sistema, o l?ni% fornece, contudo, um sistema de fic+eiros
,oderoso e su,erior.
0,;,2 Conceito" f*n&amentai"
$m ar1uivo do $ni% 4 uma se1uIncia de / ou mais bMtes contendo 1ual1uer
informa6"o. Nen+uma distin6"o 4 feita entre ar1uivos )S'II, ar1uivos binrios ou
1uais1uer outros ti,os de ar1uivos. 3 si#nificado dos bits de um ar1uivo 4 de total
con+ecimento do ,ro,rietrio do ar1uivo. 3s nomes dos ar1uivos eram ori#inalmente
restritos a * caracteres comuns, mas o $ni% de $erke!e* aumentou esse limite ,ara 2&&
caracteres, 1ue foi adotado ,elo S*stem + e ,ela maioria das outras versAes tamb4m.
Todos os caracteres )S'II, e%ceto ,%L, s"o ,ermitidos nos nomes dos ar1uivos, de
modo 1ue um nome de ar1uivo consistindo em trIs retornos de carro 4 um nome de
ar1uivo vlido. 3s ar1uivos ,odem ser a#ru,ados em diret.rios ,or 1uestAes de
conveniIncia. 3s diret.rios s"o armazenados como ar1uivos e em #rande ,arte s"o
,assBveis de ser tratados como ar1uivos. 8odem conter subdirect.rios, ,ro,orcionando
um sistema de ar1uivos +ierr1uico. 3 direct.rio>raiz 4 c+amado N e #eralmente cont4m
vrios subdiret.rios. 3 caractere N tamb4m 4 usado ,ara se,arar nomes de diret.riosD
assim, o nome Nusr-ast-x indica o ar1uivo r localizado no diret.rio ast, o 1ual est no
direct.rio Nusr. Al#uns dos direct.rios ,rinci,ais ,r.%imos ao to,o da rvore +ierr1uica
s"o mostrados na Fig*ra <.
Fig*ra <
)adeira de Sistema 3,erativos e 8ro#rama6"o )oncorrente < Gru,o !''' < = Semestre < 2/*
3
Si"tema" O%erati'o" e rograma()o Concorrente
4444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444
C%istem duas maneiras de es,ecificar os nomes de ar1uivos no $ni%, tanto no she!!
1uanto durante a abertura de um ar1uivo ,or meio de um ,ro#rama. A ,rimeira maneira
consiste em usar o camin+o absoluto, 1ue es,ecifica como obter o ar1uivo a ,artir do
diret.rio>raiz. 3s nomes de camin+os absolutos s"o muitas vezes lon#os e
inconvenientes. 8or essaraz"o, o $ni% ,ermite 1ue usurios e ,rocessos definam o
diret.rio no 1ual eles este?am trabal+ando atualmente como o diret.rio de trabal+o.
Assim, os nomes de camin+os tamb4m ,odem ser definidos em rela6"o ao diret.rio de
trabal+o. $m nome de camin+o es,ecificado de modo relativo ao diret.rio de trabal+o 4
um camin+o relativo. 8or e%em,lo, se lusrlastlbooPsfmos2 4 o diret.rio de trabal+o,
ent"o o comando do s+ell cp chap(./ backup! tem e%atamente o mesmo efeito 1ue o
comando com,leta cp -usr-ast-books-mos0-chap(. / -usr-ast-books-mos0-backup!
0,<,Gerenciamento &e %roce""o" no Lin*+
3 2inu% 4 um ,ro#rama monotarefa, mas com time shared 5tem,o de e%ecu6"o
com,artil+ado7. 8rocessos s"o ,ro#ramas em e%ecu6"o, ,rocesso zumbi 4 1uando o
,rocesso ,ai morre.
Todo ,rocesso ,ossui9
Cs,a6o de endere6amento de mem.riaD
!ariveis de ambienteD
2ista de ar1uivos abertosD
$m nEmero 1ue o identifica, con+ecido como PIDD
$m ,rocesso ,ai identificado ,elo PPIDD
'dentifica6"o de usurio e #ru,o.
$m ,rocesso tem uma ou mais lin+as de e%ecu6"o threads. C%istem ,rocessos com
maior e menor ,rioridade. Na +ierar1uia de ,rocessos, dizemos 1ue o ,rocesso 1ue
c+ama o outro 4 o ,rocesso ,ai, en1uanto o novo, 4 o ,rocesso fil+o.
A Enica forma de criar um ,rocesso novo no 2inu%, 4 atrav4s da c+amada de sistema
fork12. Qodar um ,ro#rama na verdade 4 um fork se#uido de uma c+amada de
sistema e%ec. Toda vez 1ue se cria um ,rocesso, na verdade, o sistema est fazendo um
fork, 1ue nada mais 4 do 1ue uma interface ,ro#ramtica ,ara acessader os recursos
eNou servi6os no Pernel do sistema o,eracional
)adeira de Sistema 3,erativos e 8ro#rama6"o )oncorrente < Gru,o !''' < = Semestre < 2/*
3
Si"tema" O%erati'o" e rograma()o Concorrente
4444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444
roce""o" cria()o
3s ,ro#ramas, usualmente, s"o de 2 ti,os9
Binrios9 'nstru6Aes em lin#ua#em de m1uina. C%.9 Scripts 9Ar1uivos de comando 5=
lin+a do ti,o RNbinNbas+, ou RNusrNbinN,earl7.
roce""o" %riori&a&e
Je,endendo da im,ort@ncia dos ,rocessos, ,ode>se criar ,rocessos com maior e menor
,rioridade. Al4m disso, 4 ,ossBvel alterar a ,rioridade de um ,rocesso, mesmo de,ois ?
ter sido criado e estar sendo e%ecutado.
roce""o" mem!ria
8ara os ,rocessos, a mem.ria 4 linear e come6a do zero.
Na mem.ria fBsica, o ,rocesso ,ode estar em ,#inas n"o se1uenciais, em 1ual1uer
lu#ar da mem.ria. Se +ouver ,ouca mem.ria ,ara e%ecutar os ,rocessos, ,ode>se
utilizar a mem.ria SW)P.
Kuando a mem.ria fBsica acaba, o sistema #rava na SW)P as ,#inas de mem.ria
menos acessadas, abrindo es,a6o ,ara novas ,#inas.
0,= Gerenciamento &e mem!ria no Lin*+
)ada ,rocesso do 2inu%, em uma m1uina de (2 bits, dis,Ae de ( GB de es,a6o de
endere6amento virtual ,ara si ,r.,rio, com GB restante reservado ,ara suas tabelas de
,#inas e outros dados do nEcleo. 3 GB do nEcleo n"o 4 visBvel 1uando o ,rocesso
e%ecuta no modo usurio, mas torna>se acessBvel 1uando o ,rocesso faz uma c+amada
ao nEcleo. 3 es,a6o de endere6amento 4 #erado 1uando o ,rocesso 4 criado e
sobrescrito em uma c+amada ao sistema exec.
Fig*ra ;
)adeira de Sistema 3,erativos e 8ro#rama6"o )oncorrente < Gru,o !''' < = Semestre < 2/*
3
Si"tema" O%erati'o" e rograma()o Concorrente
4444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444
3 2inu% usa um es1uema de ,a#ina6"o de trIs nBveis. Cmbora ten+a sido utilizado no
)!pha, esse es1uema tamb4m 4 em,re#ado em todas as ar1uitecturas. )ada endere6o
virtual 4 1uebrado em at4 1uatro cam,os, como mostra a Fig*ra ;. 3 cam,o direct.rio
4 usado como Bndice do direct.rio #lobal, sendo 1ue e%iste um ,rivado ,ara cada
,rocesso. 3 valor encontrado 4 um ,onteiro ,ara um dos direct.rios intermedirios de
,#inas, o 1ual 4 inde%ado ,or um cam,o do endere6o virtual. A entrada seleccionada
a,onta ,ara a tabela de ,#ina final, a inde%ada ,elo cam,o ,#ina do endere6o virtual.
A entrada encontrada a,onta ,ara a ,#ina re1uisitada.
A mem.ria fBsica serve ,ara vrios ,ro,.sitos. 3 nEcleo ,ro,riamente dito fica
totalmente residente na mem.ria > nen+uma ,arte dele 4 ,a#inada ,ara o disco. 3
restante da mem.ria 4 dis,onibilizado ,ara ,#inas dos usurios, cac+e de blocos usada
,elo sistema de ar1uivos, cac+e de ,a#ina6"o e outros ,ro,.sitos.
3 2inu% #erIncia mem.ria usando o al#oritmo com,an+eiro, com a adi6"o de um
vector no 1ual o ,rimeiro elemento 4 a cabe6a de uma lista de blocos com taman+o de
uma unidade, o se#undo elemento 4 a cabe6a de uma lista de blocos com taman+o de
duas unidades, o ,r.%imo elemento a,onta ,ara blocos de 1uatro unidades etc.
8ara amenizar esse ,roblema, o 2inu% tem uma se#unda aloca6"o de mem.ria 1ue
obt4m blocos, usando o al#oritmo com,an+eiro, e de,ois os retal+o ,ara #erenciar
unidades menores se,aradamente.
$m terceiro alocador de mem.ria tamb4m 4 utilizado 1uando a mem.ria solicitada
,recisa ser confi#urar somente no es,a6o virtual, mas n"o na mem.ria fBsica. Todos
esses alocadores de mem.ria s"o derivados do S*stem +.
0,> Gerenciamento &e ar9*i'o" no Lin*+
3 sistema de ar1uivos do 2inu% era inicialmente o sistema de ar1uivos do Mini%.
Cntretanto, ,or causa do limite de * caracteres im,osto aos nomes de ar1uivos e do
taman+o m%imo de 0* MB ,ara os ar1uivos, +ouve ,rontamente interesse em mel+orar
o sistema de ar1uivos. A ,rimeira mel+oria foi o sistema de ar1uivos C%t, 1ue ,ermitiu
nomes de ar1uivos de 2&& caracteres e ar1uivos de at4 2 GB > embora mais lento do 1ue
o sistema de ar1uivos do Mini%, o 1ue motivou a continuidade das ,es1uisas durante um
certo tem,o. 8or fim, o sistema de ar1uivos C%t2 foi inventado com nomes lon#os de
ar1uivos, ar1uivos #randes e mel+or desem,en+o, tornando>se o ,rinci,al sistema de
ar1uivos. 3 funcionamento do sistema de ar1uivos 4 similar ao sistema de ar1uivos
r,ido de BerPeleM. Cntretanto, uma diferen6a em rela6"o ao modelo de BerPeleM 4 o
)adeira de Sistema 3,erativos e 8ro#rama6"o )oncorrente < Gru,o !''' < = Semestre < 2/*
3
Si"tema" O%erati'o" e rograma()o Concorrente
4444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444
uso ,adronizado de SB em tudo. 3 sistema de ar1uivos r,ido de BerPeleM usa blocos
de : SB e de,ois fra#menta os mesmos em ,eda6os de SB, caso se?a necessrio.
3 C%t2 sim,lesmente faz o mais fcil9 como o sistema de BerPeleM, 1uando um ar1uivo
cresceN oB%t2 tenta colocar o bloco no mesmo #ru,o de blocos em 1ue est o restante do
ar1uivo > ,referivelmente lo#o a,.s o Eltimo bloco anterior. Al4m disso, 1uando um
novo ar1uivo 4 inserido em um direct.rio, o C%t2 tenta coloc>lo dentro do mesmo
#ru,o de blocos em 1ue est o seu direct.rio. Novos direct.rios s"o distribuBdos
uniformemente ,elo disco.
$m outro sistema de ar1uivos do 2inu% 4 o sistema N,roc 5,rocesso7, uma ideia
ori#inalmente ,ro?ectada na oitava edi6"o do $ni% da Bell 2abs e ,osteriormente
co,iada ,ara o *.*BSJ e o SMstem !. )ontudo, o 2inu% estende a ideia de vrias
maneiras. 3 conceito bsico visa criar, ,ara cada ,rocesso no sistema, um direct.rio
no N,roc. 3 nome do direct.rio 4 o 8'J do ,rocesso escrito como um nEmero decimal.
8or e%em,lo, -proc-3.4 4 o direct.rio corres,ondente ao ,rocesso com 8'J 0;. Nesse
direct.rio est"o os ar1uivos 1ue contIm informa6Aes sobre o ,rocesso, como sua lin+a
de comandos, variveis ambientais e mscaras de sinais. Je fato, esses ar1uivos n"o
e%istem no disco. Kuando s"o lidos, o sistema res#ata as informa6Aes do ,rocesso
conforme a necessidade, retornando>as em formato>,adr"o.
6, Con"i&era(?e" finai"
3 $ni% come6ou sua vida como um sistema de tem,o com,artil+ado ,ara
minicom,utadores, mas a#ora 4 usado em m1uinas 1ue v"o desde com,utadores,
,ortteis at4 su,ercom,utadores.
3s ,rocessos ,odem criar sub,rocessos #erando uma rvore de ,rocessos. 3
#erenciamento de 8rocessos no $ni% usa duas estruturas de dados ,rinci,ais9 a tabela de
,rocessos e a estrutura do usurio. A ,rimeira fica sem,re na mem.ria, mas a se#unda
,ode ser trocada ou ,a#inada ,ara o disco. A cria6"o de ,rocessos 4 feita du,licando>se
a entrada da tabela de ,rocessos e de,ois a ima#em da mem.ria. 3 escalonamento
ocorre a ,artir do uso de um al#oritmo baseado em ,rioridade, o 1ual favorece os
,rocessos interactivos.
3 modelo de mem.ria consiste em trIs se#mentos ,or ,rocesso9 c.di#o, dados e ,il+a.
3 #erenciamento de mem.ria usava a troca de ,rocessos entre mem.ria e disco, mas
actualmente em,re#a ,a#ina6"o na maioria dos sistemas $ni%. 3 ma,a da mem.ria
)adeira de Sistema 3,erativos e 8ro#rama6"o )oncorrente < Gru,o !''' < = Semestre < 2/*
3
Si"tema" O%erati'o" e rograma()o Concorrente
4444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444
mant4m o controlo do estado de cada ,#ina e o daemon de ,a#ina6"o usa o al#oritmo
do rel.#io ,ara manter um nEmero suficiente de ,#inas livres.
3 sistema de ar1uivos 4 +ierr1uico e cont4m ar1uivos e direct.rios. Todos os discos
s"o montados em uma Enica rvore de direct.rios 1ue se inicia a ,artir de uma Enica
raiz.
3, Refer@ncia #i#$iogrfica
Tanenbaum, AndreH. Sistemas o,eracionais modernos. S"o ,aulo 9 8earson 8rentice
Gall, 2//(.
)adeira de Sistema 3,erativos e 8ro#rama6"o )oncorrente < Gru,o !''' < = Semestre < 2/*