Fernando Morse
morse@oi.com.br
|
!
"
Ä
#
÷ istema ÷eracional ( ÷ m rograma qe controla e
coordena todas as oerações de m sistema de comtação. É,
mitas vezes, tambm chamado de ervisor, Monitor,
Exectivo o ontrolador.
_
]
"
U
'
'
')
|(
'
o
||
* +
|
* ,
÷ rocesssamento em M÷÷ R÷
EGI÷ aceitável em ambiente
mltirogramação
|Ä
±
±
|_
@
V
@
V
|]
*
$ imrimir
$ editar m texto
$ gravar m rograma em disco
$ enviar dados or modem.
|
*-.)!)/+0$/ ,+00*,)!1/ 2-
3 4
] 2
U 5, 1! )/
, torna-se mais dif cil ara m rograma o
encadeamento monoolizar o rocessador.
ara imedir qe encadeamentos de rocessos diferentes tenham acesso a
m recrsos qe não odem ser comartilhados (como ma orta serial, o
rograma ode definir semáforos (sinalizadores eseciais tilizados elo
rograma ara bloqear este recrso at qe ele termine de ser tilizado.
Vo Windows 95-÷ R2, rogramas do M -÷ e de 32 bits baseados no
Windows são Mltitarefa reemtiva.
|ù
*-.)!)/+0$/ ",0+/)!1/ (Windows 95 e 3.11
Va tcnica de ML
I
AREFA ÷÷ERA
IVA, cada rocesso
controla a at decidir libertá-la.
Em sistema Mltitarefa cooerativos, m encadeamento exectado
at qe volntariamente abandone o rocessador.
÷ rograma determina qando o encadeamento ára a execção.
Vo Windows 95, rogramas de 16 bits baseados no Windows são
Mltitarefa de modo cooerativo.
|U
*
*
|
#
6,
(
#
|
,
Maior throght
@
@
@
Ä
_
]
+
I
EMA ÷ERAI÷VAL ÷M÷ GEREVIA÷R E RER ÷
$ gerência de memria
$ gerência de rocessador
$ gerência de erifricos
$ gerência de informações.
ù
7
*8
7
,
7
!
%
9
Ä|
9
Ä
9
9
Ä_
9
$ .
3
$ -
3
$' #
$ * :#
$ 4
]4
U4
*0;
Ä]
9
v
Ä
*
:9
*
:
m termo sado ara caracterizar o sistema cjas
fncionalidades do sistema sa ram do kernel e foram ara
servidores, qe se comnicam com m núcleo m nimo, sando o
m nimo oss vel o "esaço do sistema" (nesse local o rograma
tem acesso a todas as instrções e a todo o hardware e
deixando o máximo de recrsos rodando no "esaço do sário"
(no esaço do sário, o software sofre algmas restrições, não
odendo acessar algns hardwares, nem tem acesso a todas as
instrções.
Äù
*
:9
v
±
V
ÄU
9
<
"
9
define m kernel baseado em micro-kernel no qal
mdlos externos a ele odem exectar oerações em modo kernel
(rotegido, a fim de evitar trocas de contexto e melhorar o
desemenho geral do sistema.
Ä
9
<
"
v
±
Microsoft Windows V
, X, 2000,
Vista.
_(
"
7
_|
"
7
_
"
7
!
03
__
!
3
4
É o mecanismo qe o sistema oeracional sincroniza a
execção de todas as sa rotinas e dos rogramas dos
sários, alm de controlar disositivos.
É semre gerada or algm evento externo ao rograma
e, neste caso, indeende da instrção qe está sendo
exectada. m exemlo de interrção ocorre qando m
disositivo avisa ao rocessador qe algma oeração de E/
está comleta. Veste caso, o rocessador deve interromer o
rograma ara tratar o trmino da oeração.
_
4
Ao final da execção de cada instrção, a nidade de
controle verifica a ocorrência de algm tio de interrção.
Veste caso, o rograma em execção interromido e o
controle desviado ara ma rotina resonsável or tratar o
evento ocorrido, denominada rotina de tratamento de
interrção. ara qe o rograma ossa osteriormente voltar a
ser exectado, necessário qe, no momento da interrção,
m conjnto de informações sobre a sa execção seja
reservado. Essas informações consistem no conteúdo
registradores, qe deverão ser restarados ara a continação
do rograma.
_ù
!
As interrções são decorrentes de eventos ass ncronos, o
seja, não relacionados à instrção do rograma corrente. omo
or exemlo disositivo de E/ informar ao rocessador qe
está ronto ara receber o transmitir dados.
_U
03
!
03
Intervenção do istema ÷eracional na execção de m rograma
devido a ocorrência de m evento
asas da interrção:
Resltado da execção de instrções de m rograma (Exceção
Gerado elo sistema oeracional (Interrção
Gerado or algm disositivo de hardware (Interrção
÷ flxo da execção do rograma desviado ara ma rotina
esecial de tratamento
](
]| 4 ±
!
Genericamente as
!
2 = )+/,
!
<
2!+>
]
]_
'
]]
!
<
-
& & -",
3
&
3
2
%
3
3
&
;
!
%
2
;
8;
8 2
&
B
&C7
]
!
<
]ù
!
<
]U
)
!
]
)
!
(
,
÷bjetivo: garantir a integridade dos dados ertencentes a cada sário.
|
,
Vo D
somente são exectadas
%
(não afetam diretamente otros rogramas
,
ivisão da área de memria do ÷:
0 0
200 : arte de endereços
mais baixa, reservada ara o rrio ÷
0 0
-D
200- : arte de endereços
mais altos, reservada ara os rogramas dos sários.
Ä
,
_
00-
-D
00
/
,
]
0
ù
0
ù(
# 06
$ isositivos de Blocos; e
$ isositivos de aractere.
ù|
ù
ùÄ
do qe fazem gerar interrções em intervalos bem
definidos.
ù_
"
% 0
ù]
06
ù
06
,
ùù
06 "
!
ùU
06 "
!
ù
"
U(
#
U|
U
#*/
UÄ
#*/
U_
#*/
U]
"
0
U
"
0
U
"
0
(
'
|
'
'
Ä
_
]
ù
+
E
U
+
E
+
E
|((
,
|(|
,
"
|(Ä
"
|(_
"
odem ser:
$ Gerenciamento de rocessos;
$ Gerenciamento de inalização;
$ Gerenciamento de Arqivos;
$ Gerenciamento de iretrios e istemas de Arqivos; e
$ Gerenciamento de
emo.
|(]
,
rata os estados qe o rocesso assa, deste a sa criação
(rnning, ready, wait, blocked.
brocesso e
hread.
|(
|(ù
|(U
|(
/
&
||(
|||
#
8
/
&
, qe ermitem a criação e
remoção de diretrios.
÷tra chamada imortante neste gro são aqelas qe tratam
´ m disositivo ara ermitir o acesso aos ses diretrios e
³
||Ä
)
||_
||]
,
||
,
Em istemas ÷eracionais,
m mdlo exectável
único, qe roda concorrentemente com otros mdlos
exectáveis. or exemlo, em m ambiente mlti-tarefa (como o
nix qe sorta rocessos, m rocessador de texto, m
navegador e m sistema de banco de dados são rocessos
searados qe odem rodar concomitantemente. rocessos são
mdlos searados e carregáveis, ao contrário de threads, qe
não odem ser carregadas. Múltilas threads de execção odem
ocorrer dentro de m mesmo rocesso. Alm das threads, o
rocesso tambm incli certos recrsos, como arqivos e
alocações dinâmicas de memria.
||ù
!
2 !
6
C t t C t t
S ft
r r r
r
r
sp ç
r ç t
||U
,
||
,
m rocesso, em m sistema mltirogramável, não exectado todo o
temo elo rocessador. rante sa existência, assa or ma srie de
estados. Basicamente existem três:
03 2
qando está sendo rocessado ela .
,
2
= qando aenas agarda ma oortnidade ara
exectar, o seja, esera qe o ÷ aloqe a ara sa
execção. ÷ ÷ resonsável or determinar a ordem ela qal os
rocessos em estado de ronto devem ganhar a . Vormalmente
existem vários rocessos no estado de ronto.
|(
,
0
2 qando agarda algm evento externo o or
algm recrso ara oder rossegir se rocessamento. Ex.: o
trmino de ma oeração de E/ o a esera de ma
determinada data ara oder continar sa execção.
||
,
A diferença básica entre o estado de bloqeado e o de esera
qe m rocesso bloqeado esera ser atorizado a tilizar m
recrso, enqanto o rocesso em estado de esera agarda ela
conclsão de ma oeração em m recrso qe já foi garantido.
m rocesso em estado de ronto o de esera ode não se
encontrar, momentaneamente, na memria rincial, o seja,
armazenado na memria secndária. ma tcnica denominada
waing ode retirar rocessos da mamria rincial qando
não existe esaço sficiente ara todos os rocessos.
|
,
÷ ÷ gerencia os rocessos atravs de listas, são estas: listas de
rocessos em estado de ronto e listas de rocessos no estado
de esera.
|Ä
,
|]
3 . 0
: ,
: m rocesso em esera assa ara ronto
qando a oeração solicitada atendida o o recrso eserado
concedido. m rocesso em esera semre terá de assar elo
estado de ronto antes de oder ser novamente selecionado ara
execção. Vão existe a mdança do estado de esera ara o estado
de execção diretamente.
4 . 03 : ,
: m rocesso em execção assa ara o
estado de ronto or eventos gerados elo sistema, como or
exemlo, o fim da fatia de temo qe o rocesso ossi ara sa
execção. Vesse caso, o rocesso volta ara a fila de rocessos
rontos, onde agarda ma nova oortnidade ara continar se
rocessamento.
|
,
,
$?
±
#
!
):
± $/
"
+
/
|U
" "$# ±
4 "$# !
|
)
|Ä(
-',+"0
|Ä|
-',+"0
|Ä
)<+0/#
)
, o
3 em ortgês, ma forma de m
rocesso dividir a si mesmo em das o mais tarefas qe odem ser
exectadas simltaneamente. ÷ sorte à
fornecido elo
rrio sistema oeracional ( ÷.
|ÄÄ
)<+0/#
|Ä_
)<+0/#
hreads comartilham o rocessador da mesma maneira qe
rocessos.
ada linha de execção tem o mesmo ?
e
comartilha o mesmo esaço de memria (endereçado a m mesmo
rocesso ai, orm o
diferente. endo
assim o
casado elo escalonamento de linha de execção
mito menor do qe o escalonamento de rocessos, entretanto, não
há acesso rotegido a memria nativamente (sa imlementação fica
a cargo do rogramador devido ao comartilhamento do esaço de
memria.
|Ä]
)<+0/#
riação $ Veste estado, o rocesso ai está criando a thread qe levada a
fila de rontos;
Execção $ Veste estado a linha de execção está sando a ;
ronto $ Veste estado a linha de execção avisa a qe ode entrar no
estado de execção e entra na fila de rontos;
Bloqeado$ Veste estado, or algm motivo, a bloqeia a linha de
execção, geralmente enqanto agarda algm disositivo de I/÷;
rmino$ Veste estado são desativados os contextos de hardware e a ilha
deslocada
|Ä
*
|Äù
*
|ÄU
*
"
7
± ÷s vários rocessos ³cometem´ entre si ela
atenção do rocessador.
|Ä
*
"
± rocessos odem trabalhar em conjnto ara a
realização de tarefas mais comlexas.
± Esta cooeração exige ao ÷ a existência de
mecanismos de sincronização e comnicação entre
rocessos
|_(
"
!
|_|
"
!
A
, em inglês !
:,
"
(I, o gro de mecanismos qe ermite
aos rocessos transferirem informação entre si.
|_
"
!
Em nosso exemlo ÷
= IV = 0 (zero, o seja, não, existem
arqivos no sooler.
|_]
|_
|_ù
|_U
|_
"
% "
or fim o rocesso execta novamente, iniciando do lgar qe aro,
ela examina a sa variável de controle (next_free_slot e encontra o
valor 0 (zero, então escreve o nome do arqivo na osição zero do
sooler, sobrescrevendo o nome do arqivo qe o rocesso B
acabo de colocar ali.
Ele então calcla next_free_slot+1 e armazena em IV (1.
÷ rocesso B nmca realizará qalqer sa da, as esta sitação.
|]|
% "
+% "
|]
% "
|]Ä
% "
|]_
% "
|]]
% "
+% "
Resmo:
|]
03*B
|]ù
03*B
0
/2
|]U
esativando as Interrções
roblemas:
|(
esativando as Interrções
onclsão:
||
Variáveis de Bloqeio
Variável comartilhada:
|
Variáveis de Bloqeio
|Ä
Variáveis de Bloqeio
roblema:
|_
Alternância Estrita o
rno
|]
Alternância Estrita
roblemas:
estar continamente ma variável at qe algm valor aareça
chamado de
;; Vormalmente deve ser evitado, ma vez
qe deserdiça temo de .
|ù
/ ,
|U
,
|
/ ,
G
,| 1 id 0 então:
rocess = 0
÷ther = 1
Interested[0] =
re
Interested[1] = False
rn=0
While(0==0 and
interested[1]==
RE
airá do loo
|ù|
/ ,
|ù
G
, 2 id 1 então:
rocess = 1
÷ther = 0
Interested[0] =
re
Interested[1] =
re
rn=1
G
While(1==1 and
interested[0] ==
RE
omente sairá do loo
qando 1 (id 0 chamar
G
|ùÄ 1 id 0
/ ,
A instrção
L ma chamada de sistema qe bloqeia o acesso a
memria (bloqeia o barramento at o trmino da execção da
instrção. Fnciona monitorando ma variável comartilhada ara
coordenar o acesso de Leitra e Escrita na memria, semelhante a
solção de eterson.
|ù
03*B
0
'&
|ùù
Bloqeio e esbloqeio
esbloqeio:: rimitivas lee/Wake
|ùU
Bloqeio e esbloqeio
esbloqeio:: rimitivas lee/Wake
|ù
Bloqeio e esbloqeio
esbloqeio:: rimitivas lee/Wake
1 ois rocessos H e L;
2 H entra em sa região cr tica;
3 H ssenso ois, termino se time slot;
4 L deseja entrar em sa região critica. Ao invs de entrar em loo,
onde ficará verificando se o acesso a região cr tica está livre at
esgotar o se time slot, ele será bloqeado (blocked e o
rocessador liberado;
|U(
Bloqeio e esbloqeio
esbloqeio:: rimitivas lee/Wake
|U|
Bloqeio e esbloqeio
esbloqeio:: rimitivas lee/Wake
roblema :
¬
?? ± m rocesso manda ³acordar´ o
otro sem este ter ³adormecido´ ainda
|U
,
,
"
2 4
|UÄ
,
,
"
2 4
|U_
,
,
"
2 4
roblema:
olção
olção:: Bloqear o rodtor e convocar o onsmidor
onsmidor;;
olção
olção:: Bloqear o onsmidor e convocar o rodtor
rodtor;;
|U]
,
,
"
2 4
! )0*/)+/1/#H
|Uù
,
,
"
2 4
|UU
D
|U
D
|(
D
||
D
|
,
,
"
2 D
*
|_
RE M÷:
M÷:
0
/
|
/
,
0
±
±
|ù
%
$ &
"
&
#
$
#
$
|U
0
|
0
)
: reresenta o número de rocessos (tarefas
exectados em m determinado intervalo de temo. ±anto maior o
hroghot , maior o número de tarefas exectadas em fnção do
temo.
)
: o temo qe m rocesso leva desde sa
admissão at o se trmino, levando-se em consideração o temo de
esera ara alocação de memria, esera na fila de rocessos
rontos, rocessamento na e oerações de E/ .
((
0
)
: em sistemas interativos, este temo o temo
decorrido do momento da sbmissão do edido at a rimeira
resosta rodzida. ÷ temo de resosta não o temo tilizado no
rocessamento total de ma tarefa, e sim o temo decorrido at qe
ma resosta seja aresentada.
(|
0
(
0
? ,
Vos rimeiros istemas ÷eracionais Mltirogramáveis, onde redominava
tiicamente o rocesso batch, o escalonamento imlementado era do tio Vão
reemtivo .
Veste tio de escalonamento, qando m rocesso ganha o direito de tilizar
a nenhm otro rocesso ode lhe tirar este recrso.
odem ser:
Escalonamento irclar imles - FIF÷
Escalonamento hortest Job First - JF
Escalonamento ooerativo
(Ä
0
"
$!$
Há ma fila única de rocessos rontos
÷ rimeiro rocesso da fila (first-in o rimeiro a ser selecionado ara
execção (first-ot
÷ rocesso selecionado ode sar a indefinidamente
Vovos jobs são encaminhados ara o fim da fila
±ando m rocesso bloqeia, o rximo da fila selecionado
rocessos qe assaram do estado bloqeado ara ronto são colocados no
fim da fila
Fácil de imlementar
A falta de reemção ode trazer desvantagens
(_
0
J $
: J$
Veste escalonamento cada rocesso tem associado o se temo de
execção. esta forma qando a está livre o rocesso em estado de
ronto qe tiver menor temo de execção será selecionado ara execção.
(]
0
"
Veste escalonamento algma ol tica não-reemtiva deve ser adotada. A
artir do momento qe m rocesso está em execção, este volntariamente
libera o rocessador, retornando ara a fila de ronto.
0
"
Vo escalonamento cooerativo, não existe nenhma intervenção do ÷ na
execção do rocesso. Isto ode ocasionar srios roblemas na medida em
qe m rograma ode não liberar o rocessador o m rograma mal escrito
ode entrar em
, monoolizando dessa forma o rocessados.
m exemlo deste tio de escalonamento ode ser encontrado nos sistemas
Windows 3.1 e 3.11, sendo conhecido como *
"
. Vestes
sistemas as alicações verificam ma fila de mensagens eriodicamente ara
determinar se existem otras alicações qe desejam sar a . aso ma
alicação não verifiqe a fila de mensagens as otras tarefas não terão chance
de ser exectadas at o trmino do rograma.
(ù
0
,
(U
0
,
(
0
,
odem ser:
Rond-Robin
rioridades
Filas Múltilas
Múltilos rocessadores
|(
0
"
: +
+
0
"
: +
+
|Ä
0
"
: +
+
±
%
%
|_
0
,
|]
0
,
|
0
,
oda vez qe m rocesso for ara a fila de rocessos rontos com rioridade
serior ao rocesso em execção, o ÷ deverá interromer o rocesso
corrente, colocá-lo como ronto e escalonar o rocesso de maior rioridade
ara execção (
Assim como na reemção or temo a reemção or rioridade
imlementada mediante m clock, qe interrome o rocessador em
determinados intervalos de temo, ara qe a rotina de 0
reavalie as rioridades e, ossivelmente, escalone otro rocesso.
ara evitar qe rocessos com alta rioridade monoolizem o rocessador
(evitando o starvation, o escalonador deverá decrementar a rioridade do
rocesso qe esta monoolizando a , a cada interrção de temo.
|ù
0
,
÷s rocessos oderão ser agrados em classes de rioridade e sar
o escalonamento de rioridades entre as classes e o Rond Robin
dentro de cada classe. onforme figra abaixo:
|U
0
,
/
: enqanto hover rocessos com rioridade 4: rond-robin na
classe (rocessos em otras classes não são escolhidos. e rioridade 4
vazia, rond-robin na rioridade 3 e assim or diante. ada vez qe o rocesso
recebe o temo ara exectar, a sa rioridade decrementada. ±ando todos
os rocessos se encontrarem no mesmo n vel, as rioridades iniciais são
restaradas.
|
0
$ *B
(
|
0
ada rocesso tem direito a 1/n temo da , sendo n o número de
rocessos.
ara isso a deve saber qanto temo cada rocesso já so.
ividindo o temo qe já so elo temo qe deveria ter ara
comletar a oeração (
emo rometido, obtm-se ma razão entre
ambos, onde:
$ e essa razão for menor do qe 1, então o rocesso terá
direito a mais temo de ;
$ e essa razão for maior do qe 1, então o rocesso terá
menos temo de do qe os otros rocessos.
0
0
ma forma mais rática de tratar com o swa de rocessos
sando m escalonador de 2 n veis.
m sbconjnto de rocessos rontos carregado na memria
rincial, e otro sbconjnto mantido em disco.
m escalonador, denominado escalonador de n vel mais baixo,
se restringe a escolher rocessos somente da memria,
tilizando qalqer ma das ol ticas de escalonamento
escalonamento.
_
0
0
÷ escalonador de alto n vel ode sar m dos segintes critrios de
escolha de rocessos:
$ ±al o temo decorrido desde qe o rocesso foi trazido ara a
memria e levado de volta ara o disco;
$ ±ando temo de o rocesso teve;
$ ±al o tamanho do rocesso;
$ ±al a rioridade do rocesso.
oderemos tilizar o Rond Robin, rioridade, o qalqer otro
mtodo de escalonamento, ara rogramar o escalonador de alto n vel.
ù
#.
U
#
eadlock (blocagem, imasse, no contexto do sistemas oeracionais
( ÷, caracteriza ma sitação em qe ocorre m imasse e dois o
mais rocessos ficam imedidos de continar sas execções, o seja,
ficam bloqeados.
÷
ocorre com m conjnto de rocessos e recrsos não-
reemt veis, onde m o mais rocessos desse conjnto está
agardando a liberação de m recrso or m otro rocesso qe, or
sa vez, agarda a liberação de otro recrso alocado o deendente
do rimeiro rocesso.
#
A definição textal de
normalmente, or ser mito abstrata,
mais dif cil de se comreender do qe a reresentação or grafos, qe
será resmida mais adiante. Vo entanto, algmas observações são
ertinentes:
÷
ode ocorrer mesmo qe haja somente m rocesso no
÷, considerando qe este rocesso tilize múltilos
? e qe tais
? reqisitem os recrsos alocados a otros
? no mesmo
rocesso;
Ä(
#
÷
indeende da qantidade de recrsos dison veis no
sistema;
Vormalmente o
ocorre com recrsos como disositivos,
arqivos, etc. Aesar da ser considerada como recrso ara o
÷, em geral m recrso facilmente reemt vel, ois existem os
escalonadores ara comartilhar o rocessador entre os diversos
rocessos, qando trata-se de m ambiente mltitarefa.
Ä|
7
É comm dizer qe o
ocorre natralmente em algns
sistemas. Vo entanto, necessário ressaltar qe tais sistemas
recisam obedecer a algmas condições ara qe ma sitação de
se manifeste.
Essas condições estão listadas abaixo, onde as três rimeiras
caracterizam m modelo de sistema, e a última o
roriamente dito:
rocessos qe estejam de osse de recrsos obtidos anteriormente
odem solicitar novos recrsos. aso estes recrsos já estejam
alocados a otros rocessos, o rocesso solicitante deve agardar ela
liberação do mesmo;
Ä
7
ÄÄ
7
Ä : "
:
: recrsos já alocados a rocessos
não odem ser tomados a força. Eles recisam ser liberados
exlicitamente elo rocesso qe detm a sa osse;
_ : "
: deve existir ma cadeia circlar de
dois o mais rocessos, cada m dos qais eserando or m recrso
qe está com o rximo membro da cadeia.
Ä_
# : +
÷
tambm ode ser reresentado na forma de grafos
dirigidos, onde o rocesso reresentado or m c rclo e o recrso,
or m qadrado. ±ando m rocesso solicita m recrso, ma seta
dirigida do c rclo ao qadrado. ±ando m recrso alocado a m
rocesso, ma seta dirigida do qadrado ao c rclo.
Va figra seginte, odem-se ver dois rocessos diferentes (/ e ',
cada m com m recrso diferente alocado (+| e +. Vesse exemlo
clássico de
, facilmente vis vel a condição de
em qe os rocessos se encontram, onde cada m solicita o
recrso qe está alocado ao otro rocesso.
Ä]
#
Ä
# : )
Äù
# : )
Existem três estratgias ara tratamento de
?:
1 Ignorar a sitação;
2 etectar o
e recerar o sistema; e
3 Evitar o
;
ÄU
#
03 |
Ä
: #.
reemt veis e;
Vão-reemt veis.
_(
: #.
+0"-+ ,+00*,)K10.
onsidere m sistema com 512 Kb de memria dison vel ara sários, ma
imressora e 2 rocessos de 512 Kb (1 e 2 cada. Estes rocessos
desejam imrimir algma coisa.
_|
: #.
+0"-+ ,+00*,)K10.
+0"-+ ?A:,+00*,)K10.
_Ä