Академический Документы
Профессиональный Документы
Культура Документы
Operacionais
Prof. Mrcio
Cap 05 Processo
Processo
Sumrio
Introduo
Estrutura do processo
Estados do processo
Mudanas de estado do processo
Criao e eliminao de processos
Processos independentes, subprocessos e
threads
Processos foreground e background
Processos do sistema operacional
Processos CPU-bound e I/O-bound
Sinais
Processo
Introduo
O conceito de processo a base para a
implementao de um sistema
multiprogramvel.
A gerncia de processos uma das
principais funes de um sistema
operacional, possibilitando aos
programas alocar recursos,
compartilhar dados, trocar informaes
e sincronizar suas execues.
Processo
Estrutura do Processo
Estrutura do processo
Contexto de
Software
Contexto de
Hardware
Programa
Espao de
Endereamento
Processo
Processo
Contexto de Hardware
Mudana
de
contexto
Sistema Operacional
Processo A
Processo B
executando
Salva registradores do
Processo A
Carrega registradores do
Processo B
executando
Salva registradores do
Processo B
Carrega registradores do
Processo A
executando
Processo
Processo
Contexto de Software
So especificados limites e
caractersticas dos recursos que podem
ser alocados pelo processo, como o
nmero mximo de arquivos abertos
simultaneamente, prioridade de
execuo, etc.
A maior parte das informaes do
contexto de software provm de um
arquivo do SO, conhecido como
arquivo de usurios.
Processo
Contexto de Software
Identificao
Quotas
Privilgios
Processo
10
Contexto de Software
Especifica caractersticas do processo
que vo influir na execuo de um
programa.
Define 3 grupos de informaes:
Identificao cada processo criado
pelo sistema recebe uma identificao
nica (PID process identification),
representada por um nmero.
Processo
11
Contexto de Software
O processo tambm possui a
identificao do usurio ou processo
que o criou (owner). Cada usurio
possui uma identificao nica do
sistema (UID user identification),
atribuda ao processo no momento de
sua criao.
Processo
12
Contexto de Software
Quotas so os limites de cada
recurso do sistema que um processo
pode alocar .
Exemplos:
nmero mximo de arquivos abertos
simultaneamente.
nmero mximo de operaes de E/S
pendentes
Nmero mximo de processos,
subprocessos e threads que podem ser
criados.
Processo
13
Contexto de Software
Privilgios definem o que o processo
pode ou no fazer em relao ao
sistema e aos outros processos.
Os privilgios podem afetar o prprio
processo quanto outros processos,
alterando suas caractersticas.
Processo
14
Espao de Enderaamento
Estrutura de um processo
nome
PID
owner (UID)
registradores
gerais
prioridade de
execuo
data/ hora
de criao
registrador PC
Contexto de
Software
Contexto de
Hardware
registrador SP
tempo de
processador
quotas
Programa
privilgios
registrador
de status
Espao de
Endereamento
endereos de memria
principal alocados
Processo
15
Espao de Endereamento
rea de memria do processo onde o
programa ser executado, alm do
espao para os dados utilizados por
ele.
Cada processo possui seu prprio
espao de endereamento,que deve
ser devidamente protegido do acesso
dos demais processos.
Processo
16
ponteiros
Estado do processo
Nome do processo
Prioridade do processo
Registradores
Limites de memria
Lista de arquivos abertos
..
..
..
..
Processo
17
Processo
18
Processo
19
Estados do Processo
Execuo (running)
Pronto (ready)
Espera (wait)
Processo
20
Estados do Processo
Durante a existncia de um processo, ele
pode passar por uma srie de estados.
Execuo est em processamento pela
CPU.
Pronto est aguardando a oportunidade
para executar, ou seja, espera que o SO
aloque a CPU para sua execuo.
Espera est aguardando algum evento
externo ou por algum recurso para poder
prosseguir seu processamento.
Processo
21
Mudanas de Estado
Mudanas de estado do processo
Estado de Execuo
b
a
Estado de Espera
Processo
Estado de Pronto
22
Mudanas de Estado
Pronto-execuo quando o processo
criado ele vai para o estado de
pronto. Aguarda para ser executado.
Execuo-espera ocorre por evento
gerado pelo prprio processo, como
uma operao de E/S.
Espera-pronto quando a operao
solicitada atendida ou o recurso
esperado atendido.
Processo
23
Mudanas de Estado
Execuo-pronto ocorre por evento
gerado pelo prprio sistema, como fim
da fatia de tempo que o processo
possui para sua execuo.
Obs.: no existe mudana do estado
de espera para o estado de execuo
diretamente.
Obs1.: os estados de espera e pronto
podem estar residentes ou no
residentes na memria principal.
Processo
24
Criao e eliminao de
processos
Um processo dito no estado de
criao quando o SO j criou um novo
PCB, porm no pode coloc-lo na lista
de processos do estado de pronto.
h limitaes no nmero de processos
ativos em funo dos recursos
disponveis ou de desempenho.
Processo
25
Criao e eliminao de
processos
Um processo no estado de terminado
no poder ter mais nenhum programa
executado no seu contexto, porm o
sistema operacional ainda mantm
suas informaes de controle presentes
na memria.
Alguns razes para o trmino:
trmino normal de execuo
Eliminao por um outro processo
Eliminao forada por ausncia de
recursos disponveis no sistema
Processo
26
Criao e eliminao de
processos
Estado de Execuo
Estado de Trmino
b
a
Estado de Espera
Processo
Estado de Pronto
Estado de Criao
27
Processos Independentes,
Subprocessos e Threads
Estrutura de processos e subprocessos
Processo A
Processo C
Processo B
Processo D
Processo
Processo E
28
Processos Independentes,
Subprocessos e Threads
Processos independentes,
subprocessos e threads so maneiras
diferentes de implementar a
concorrncia dentro de uma aplicao.
Processos independentes so a
maneira mais simples de implementar
a concorrncia em sistemas
multiprogramveis.
No existe vnculo do processo criado
com o seu criador.
Processo
29
Processos Independentes,
Subprocessos e Threads
Um subprocesso (processo pai) pode
criar um outro processo (processo
filho), que por sua vez pode criar
outros subprocessos. Caso um
processo deixe de existir, os
subprocessos subordinados sero
eliminados.
Processo
30
Processos Independentes,
Subprocessos e Threads
Subprocesso permite dividir uma
aplicao em partes que podem trabalhar
de forma concorrente, porm demanda
consumo de diversos recursos do sistema,
pois sempre que um novo processo
criado h a alocao de recursos
(contexto de hardware, contexto de
software e espao de endereamento)
para cada processo e ao terminar tambm
dispensa tempo para desalocar recursos
previamente alocados.
Processo
31
Processo
32
Processos Independentes,
Subprocessos e Threads
Processo multithread
Contexto
de hardware
Contexto
de hardware
Thread 1
Thread 2
Thread 3
Contexto de
software
Contexto
de hardware
Espao de
endereamento
Processo
33
Processos Independentes,
Subprocessos e Threads
Threads
Criado para diminuir o tempo gasto na
criao/eliminao de processos e
economizar recursos do sistema como
um todo.
No ambiente multithread, cada
processo pode responder a vrios
solicitaes concorrentemente ou
mesmo silmultaneamente, caso haja
mais de um processador.
Processo
34
Processos Independentes,
Subprocessos e Threads
Trabalham da mesma forma que os
processos.
Diferena est entre os espaos de
enderaamento
Subprocessos possuem cada um
espaos independentes e protegidos,
enquanto threads compartilham o
mesmo espao de endereamento do
processo.
Processo
35
Processos Foreground e
Background
Processos foreground e background
(a) Processo Foreground
entrada
sada
terminal
terminal
arquivo
de entrada
Processo
sada
arquivo
de sada
36
Processos Foreground e
Background
Foreground aquele que permite a
comunicao direta do usurio com o
processo durante o seu
processamento.
Background aquele onde no existe
a comunicao com o usurio durante
o seu processamento. O
processamento do tipo batch
realizado atravs de processos
background.
Processo
37
Processo Foreground e
Background
Pipe
sada do
Processo A
entrada do
Processo A
sada do
Processo B
entrada do
Processo B
Processo A
Processo
Processo B
38
Processos Foreground e
Background
Associao do canal de sada de um
processo ao canal de entrada de um
outro processo.
Existe um pipe ligando os dois
processos.
Processo
39
E/ S
E/ S
UCP
UCP
tempo
(a) CPU-bound
Processo
tempo
(b) I/ O-bound
40
Processo
41
Processo
42
Exerccios
Defina o conceito de processo.
Por que o conceito de processo to
importante no projeto de sistemas
multiprogramveis?
Quais as partes que compem um processo?
Defina os 5 estados possveis de um
processo.
Explique a diferena entre processos
foreground e background..
D exemplos de aplicaes CPU-bound e
I/O-bound
Processo
43
Arquitetura de Sistemas
Operacionais
Prof. Mrcio
Cap 06 Thread
Thread
44
Sumrio
Introduo
Ambiente monothread
Ambiente multithread
Arquitetura e implementao
Thread
45
Introduo
At o final da dcada de 70, os SOs
suportavam apenas processos com um nico
thread, ou seja, um processo com apenas um
nico programa fazendo parte do seu
contexto.
A partir do conceito de multithread possvel
projetar e implementar aplicaes
concorrentes de forma eficiente, pois um
processo poder ter diferentes partes do seu
cdigo sendo executadas em paralelo, com
um menor overhead do que utilizam
mltiplos processos
Thread
46
Introduo
O desenvolvimento de programas que
exploram os benefcios da
programao multithread no so
simples.
Introduz um novo conjunto de
problemas como a comunicao e
sincronizao de threads.
Thread
47
Ambiente Monothread
Em um ambiente monothread, um
processo suporta apenas um programa
no seu espao de endereamento.
Neste ambiente, aplicaes
concorrentes so implementadas
apenas com o uso de mltiplos
processos independentes ou
subprocessos.
Utilizao de processos independentes
e subprocessos.
Ex.: software de gerenciamento de
emails.
Thread
48
Ambiente Monothread
Problemas:
Uso de processos no desenvolvimento
de aplicaes concorrentes demanda
consumo de diversos recursos do
sistema.
Compartilhamento do espao de
endereamento. Como processo possui
seu prprio espao de
endereamento,a comunicao entre
processos torna-se difcil e lenta.
Thread
49
Ambiente Monothread
Ex.:
Microsoft MS-DOS e as primeiras
verses do MS-Windows.
Thread
50
Ambiente Monothread
Concorrncia com processos
Subprocessos
Thread
Processos Independentes
51
Ambiente Multithread
Neste ambiente no existe a idia de
programas associados a processos,
mas sim, a threads.
O processo neste ambiente, tem pelo
menos um thread de execuo, mas
pode compartilhar o seu espao de
endereamento com inmeros outros
threads.
Thread
52
Ambiente Multithread
Ambiente monothread
Thread
Thread
Thread
Thread
53
Ambiente Multithread
Um thread pode ser definido como uma
sub-rotina de um programa que pode
ser executada de forma assncrona, ou
seja, executada paralelamente ao
programa chamador.
A grande vantagem no uso de threads
a possibilidade de minimizar a
alocao de recursos do sistema, alm
de minimizar o overhead na criao,
troca e eliminao de processos.
Thread
54
Ambiente Multithread
Threads compartilham o processador
da mesma maneira que processos e
passam pelas mesmas mudanas de
estado.
Dentro de um mesmo processo,
threads compartilham o mesmo
contexto de software e espao de
endereamento com os demais, porm
cada thread possui seu prprio
contexto de hardware.
Thread
55
Ambiente Multithread
Uso de Bloco de Controle de Thread TCB (Thread Control Block).
Armazena, alm do contexto de
hardware, mais algumas informaes
relacionadas exclusivamente ao thread,
como prioridade, estado de execuo e
bits de estado.
Thread
56
Ambiente Multithread
Em ambientes monothread, o processo
ao mesmo tempo a unidade de
alocao de recursos e a unidade de
escalonamento.
Em ambiente multithread, a unidade
de alocao de recursos o processo,
onde todos os seus threads
compartilham o espao de
endereamento e dispositivos de E/S.
Thread
57
Ambiente Multithread
Cada thread representa um unidade de
escalonamento independente. Neste
caso, o sistema no seleciona um
processo para a execuo, mas sim um
de seus threads.
A grande diferena entre aplicaes
monothread e multithread est no uso
do espao de endereamento
Thread
58
Ambiente Multithread
Benefcios:
Programas concorrentes com mltiplos
threads so mais rpidos do que
programas concorrentes
implementados com mltiplos
processos.
Threads em um mesmo processo
podem compartilhar facilmente outros
recursos, como temporizadores, sinais,
atributos de segurana.
Thread
59
Thread
60
Ambiente Multithread
Ambiente multithread
Contexto
de hardware
Contexto
de hardware
Thread 1
Thread 2
Thread 3
Contexto de
software
Contexto
de hardware
Espao de
endereamento
Thread
61
Ambiente Multithread
Aplicao multithread
Processo
Variveis
Programa Principal
Thread_1
PC
SP
Contexto de
Hardware
...
Espao de
endereamento
Call Sub_1
Thread_2
Sub_1
Ret
PC
SP
Thread_3
Sub_2
PC
SP
Contexto de
Hardware
Fim
Contexto de
Hardware
Call Sub_2
...
Ret
Thread
62
Ambiente Multithread
Aplicao
multithread (a)
Thread de
entrada
Buffer
Thread de
exibio
Thread
Thread de
gravao
63
Ambiente Multithread
Aplicao
multithread (b)
Processo servidor
Solicitaes
Thread
Thread
Thread
Thread
Processo cliente
Processo cliente
Processo cliente
64
Arquitetura e Implementao
Thread
65
Arquitetura e Implementao
Podem ser oferecidos por uma
biblioteca de rotinas fora do ncleo do
SO(usurio), pelo prprio ncleo do
SO(kernel) , por combinao de ambos
(hbrido) ou um modelo chamado de
Scheduler activations.
Thread
66
Arquitetura e Implementao
Conjunto de rotinas disponveis para
que uma aplicao utilize as facilidades
dos threads chamado de pacotes de
threads.
Threads podem ser oferecidas por uma
biblioteca de rotinas fora do ncleo do
SO (modo usurio), pelo prprio SO do
sistema (modo kernel), por uma
combinao de ambos (modo hbrido)
ou por um modelo conhecido como
scheduler activations.
Thread
67
68
Arquitetura e Implementao
Thread 4
Thread 3
Thread 2
Thread 1
Thread 0
Modo
usurio
Biblioteca
Kernel
Thread
Modo
kernel
69
70
Kernel
Thread
Thread 4
Thread 3
Thread 2
Thread 1
Thread 0
Modo
usurio
Modo
kernel
71
Thread
72
TMU 5
TMU 4
TMU 3
TMU 2
TMU 1
TMU 0
Modo
usurio
Biblioteca
TMK 0
TMK 1
TMK 2
TMK 3
Modo
kernel
Kernel
Thread
73
Scheduler Activations
O modelo ideal deveria utilizar as
facilidades do pacote em modo kernel
com o desempenho do modo usurio.
Nesse pacote, o ncleo do sistema
troca informaes com a biblioteca de
threads utilizando uma estrutura de
dados, a scheduler activations.
Cada camada implementa seu
escalonamento de forma independente,
porm trocando informaes quando
necessrio.
Thread
74
Scheduler Activations
Thread 4
Thread 3
Thread 2
Thread 1
Thread 0
Scheduler Activations
Modo
usurio
Biblioteca
Kernel
Thread
Modo
kernel
75
Modelos de programao
O desenvolvimento de aplicaes multithreads no
simples, pois exige que a comunicao e o
compartilhamento de recursos entre os diversos
threads.
Depurao complexa
Fator importante:
Nmero total de threads e a forma como so criados e
eliminados.
Nmero excessivo de threads poder ocorrer um
overhead no sistema.
Dependendo da implementao, a definio do nmero
de threads pode ser dinmica ou esttica
Para obter os benefcios do uso de threads, uma
aplicao deve permitir que partes diferentes do seu
cdigo sejam executados em paralelo de forma
independente.
Thread
76
Atividades
Como uma aplicao pode implementar
concorrncia em ambiente monothread?
Quais os problemas de aplicaes
concorrentes desenvolvidas em ambientes
monothread?
O que thread e quais as vantagens de sua
utilizao.
Explique a diferena entre unidade de
alocao de recurso e unidade de
escalonamento
Quais os benefcios de uso de threads em
ambientes cliente-servidor?
Thread
77
Sistemas Operacionais
Prof. Mrcio
Cap 07
Sincronizao e Comunicao
entre Processos
Sincronizao e Comunicao
Thread
78
78
Sumrio
Introduo
Aplicaes concorrentes
Especificao de concorrncia em programas
Problemas de compartilhamento de recursos
Excluso mtua
Sincronizao condicional
Semforos
Monitores
Troca de mensagens
Deadlock
Sincronizao e Comunicao
Thread
79
79
Aplicaes Concorrentes
comum processos que trabalham
juntos (concorrentes) compartilharem
recursos do sistema. O
compartilhamento de recursos entre
processos pode gerar situaes
indesejveis, capazes at de
comprometer o sistema.
Os mecanismos que garantem a
comunicao entre processos
concorrentes e o acesso a recursos
compartilhados so chamados
mecanismos de sincronizao
Sincronizao e Comunicao
Thread
80
80
Aplicaes Concorrentes
Sincronizao e comunicao entre
processos
Sincronizao
gr
Processo
gravador
av
a
o
i tu
le
ra
Processo
leitor
dado
Buffer
Sincronizao e Comunicao
Thread
81
81
Especificao de Concorrncia em
Programas
Especificao de concorrncia em programas
So notaes utilizadas para especificar as
partes de um programa que devem ser
executados concorrentemente.
FORK e JOIN
Fork ao ser encontrado, faz com seja criado
um outro processo para a execuo de outro
programa
Join permite a sincronizao entre
programas. Um programa s continuar a ser
processado aps o trmino de outro.
Sincronizao e Comunicao
Thread
82
82
Especificao de Concorrncia
em Programas
Concorrncia em programas
Processo
principal
PARBEGIN
Comando_1;
Comando_2;
.
.
Comando_n;
PAREND
Processo 1
Processo 2
Processo n
Processo
principal
Sincronizao e Comunicao
Thread
83
83
Especificao de Concorrncia em
Programas
PARBEGIN e PAREND
Parbegin especifica que a seqncia
de comandos seja executada
concorrentemente em uma ordem
imprevisvel.
Parend define o ponto de
sincronizao onde o processamento s
continuar quando todos os processos
criados j tiverem terminado suas
execues.
Sincronizao e Comunicao
Thread
84
84
Especificao de Concorrncia
em Programas
X := SQRT (1024) + (35.4 * 0.23) - (302 / 7)
PROGRAM Expressao;
VAR X, Temp1, Temp2, Temp3 : REAL;
BEGIN
PARBEGIN
Temp1 := SQRT (1024);
Temp2 := 35.4 * 0.23;
Temp3 := 302 / 7;
PAREND;
X := Temp1 + Temp2 - Temp3;
WRITELN ('x = ', X);
END.
Sincronizao e Comunicao
Thread
85
85
Prob. de Compartilhamento
de Recursos
Onde dois ou mais processos tenham
acesso a um mesmo recurso
compartilhado, devem existir
mecanismos de controle que evitem
esses tipos de problemas
Sincronizao e Comunicao
Thread
86
86
Prob. de Compartilhamento
de Recursos
PROGRAM Conta_Corrente;
.
.
READ (Arq_Contas, Reg_Cliente);
READLN (Valor_Dep_Ret);
Reg_Cliente.Saldo :=
Reg_Cliente.Saldo + Valor_Dep_Ret;
WRITE (Arq_Contas, Reg_Cliente);
.
.
END.
Compartilhamento de arquivo
Thread
Sincronizao
e Comunicao
87
87
em disco
Compartilhamento de arquivo
em disco
caixa
instruo
Saldo arquivo
Valor
dep/ret
Saldo
memria
Read
1000
1000
Readln
1000
-200
1000
:=
1000
-200
800
Read
1000
1000
Readln
1000
+300
1000
:=
1000
+300
1300
Write
800
-200
800
write
1300
+200
1300
Sincronizao e Comunicao
Thread
88
88
Prob. de Compartilhamento
de Recursos
Inicialmente X possui valor 2
Processo A
Processo B
X := X + 1;
X := X - 1;
Processo A
LOAD x,Ra
ADD
1,Ra
STORE Ra,x
Processo B
LOAD x,Rb
SUB
1,Rb
STORE Rb,x
89
89
Prob. de Compartilhamento
de Recursos
Processo A
Processo B
LOAD x,Ra
ADD 1, Ra
STORE Ra,X
LOAD x,Rb
ADD 1, Rb
STORE Rb,X
Sincronizao e Comunicao
Thread
90
90
Prob. de Compartilhamento
de Recursos
Processo Comando
Ra
Rb
A
A
B
B
A
B
2
2
2
2
3
1
2
3
*
*
3
*
*
*
2
1
*
1
LOAD x, Ra
ADD 1, Ra
LOAD x, Rb
SUB 1, Rb
STORE Ra,x
STORE Rb,x
Sincronizao e Comunicao
Thread
91
91
92
92
Excluso Mtua
Regio crtica
Protocolos de acesso
BEGIN
.
.
Entra_Regiao_Critica;
Regiao_Critica;
Sai_Regiao_Critica;
.
.
END.
Sincronizao e Comunicao
Thread
93
93
Excluso Mtua
Situaes indesejadas
Starvation processo nunca consegue
executar sua regio crtica e
consequente acessar o recurso
compartilhado.
Escolha aleatria e com base em
prioridades, so situae que levam ao
starvartion.
Soluo simples uso de filas
Sincronizao e Comunicao
Thread
94
94
Excluso Mtua
Processo fora de sua regio crtica
impede que outros processos entrem
nas suas prprias regies crticas.
Nesse caso, um recurso estaria livre,
porm alocado a um processo.
Vrios processos estariam sendo
impedidos de utilizar o recurso,
reduzindo o grau de compartilhamento.
Sincronizao e Comunicao
Thread
95
95
Excluso Mtua
Solues de hardware
Desabilitao de interrupes
BEGIN
.
Desabilita_Interrupcoes;
Regiao_Critica;
Habilita_Interrupcoes;
.
END.
Sincronizao e Comunicao
Thread
96
96
Excluso Mtua
Solues de hardware
Instruo de mquina especial que permite
ler uma varivel, armazenar seu contedo
em uma outra rea a atribuir um novo
valor mesma varivel.
Instruo Test-and-Set
Executada sem interrupo
Test-and-Set (X,Y);
Sincronizao e Comunicao
Thread
97
97
Excluso Mtua
Instruo Test-and-Set
Faz com que o processo desabilite todas as
interrupes antes de entrar na sua regio
crtica, e as reabilite aps deixar a RC.
BEGIN
......
Desabilita_interrupes;
Regio Critica;
Habilita_Interrupes
......
END.
Sincronizao e Comunicao
Thread
98
98
Program test_and_set;
Procedure processo_A;
Begin
repeat
pode_A := true;
test_and_set(pode_A, Bloqueio);
Regiao_critica_A;
Bloqueio :=False;
until true;
End;
Procedure processo_B;
Var pode_B: bol;
Begin
repeat
pode_B := true;
while (pode_B) do;
test_and_set(pode_B
Bloqueio);
Regiao_critica_B;
Bloqueio :=False;
until true;
End;
Begin
bloqueio :=false;
parbegin
processo_A;
processo_B;
parend;
End.
Sincronizao e Comunicao
Thread
99
99
Excluso Mtua
Processo A
REPEAT
Pode_A:=T
While (Pode_A)
Test_and_set
While (Pode_A)
Test_and_set
Reg_Critica_A
Processo B
Pode_A
REPEAT
Pode_B:=T
Test_and_set
Reg_Critica_B
Bloqueio:=F
Pode_B:=T
While (Pode_B)
*
True
True
True
True
False
False
Pode_B
Bloqueio
*
True
False
False
False
True
True
False
False
True
True
False
True
True
Sincronizao e Comunicao
Thread
100
100
Excluso Mtua
Solues de software
Primeiro algoritmo
Segundo algoritmo
Terceiro algoritmo
Quarto algoritmo
Algoritmo de Dekker
Algoritmo de Peterson
Algoritmo para excluso mtua entre N
processos
Sincronizao e Comunicao
Thread
101
101
Primeiro Algoritmo
Vez
si
Vez = B m
n
Regioo
Crtica
si
Vez = A m
n
Regioo
Crtica
Vez = B
Vez = A
PA
PB
Sincronizao e Comunicao
Thread
102
102
Sincronizao e Comunicao
Thread
103
103
Primeiro Algoritmo
Processo_A
Processo_B
Sincronizao e Comunicao
Thread
Vez
A
A
B
B
A
A
A
104
104
Segundo Algoritmo
Introduz as variveis CA e CB.
Toda vez que um processo desejar
entrar na sua regio crtica, a varivel
do outro processo testada para
verificar se o recurso est livre para
uso.
Sincronizao e Comunicao
Thread
105
105
Segundo Algoritmo
CA e CB (boolean)
si
CB
m
n
o
CA = true
si
CA
m
n
o
CB = true
Regio Crtica
Regio Crtica
CA = false
CB = false
PA
PB
Sincronizao e Comunicao
Thread
106
106
Sincronizao e Comunicao
Thread
107
107
Segundo Algoritmo
Processo_A
While (CB)
CA:=T
Reg_Critica_A
Processo_B
While (CA)
CB:=T
Reg_Critica_B
CA
F
T
T
CB
F
T
T
108
108
Terceiro Algoritmo
Garante a excluso mtua, porm
introduz um novo problema, que a
possibilidade de bloqueio indefinido de
ambos os processos.
A instruo de atribuio das variveis
CA e CB antes do loop de teste.
problema: bloqueio indefinido, caso os 2
processos alterem as variveis CA e CB
antes de execuo da instruo WHILE,
ambos no entraro nas suas RC, como
se o recurso j tivesse alocado.
Sincronizao e Comunicao
Thread
109
109
Sincronizao e Comunicao
Thread
110
110
Terceiro Algoritmo
CA e CB (boolean)
CA = true
si
CB
m
n
o
Regio Crtica
CB = true
si
CA
m
n
o
Regio Crtica
CA = false
CB = false
PA
PB
Sincronizao e Comunicao
Thread
111
111
Quarto Algoritmo
Garante a excluso
No gera bloqueio simultneo dos
processos
Problema:
Tempos aleatrios serem prximos e a
concorrncia gerar uma situao onde os
dois processos alterem as variveis CA e
CB para falso antes do trmino do loop.
Sincronizao e Comunicao
Thread
112
112
Quarto Algoritmo
CA e CB (boolean)
CA = true
CB = true
si
m
CA = false
CB
n
o
espera de
Regio Crtica tempo aleatrio
CA = false
CA = true
PA
Sincronizao e Comunicao
Thread
si
m
CB = false
CA
n
o
espera de
Regio Crtica tempo aleatrio
CB = false
CB = true
PB
113
113
Sincronizao e Comunicao
Thread
114
114
Algoritmo de Peterson
115
115
Algoritmo de Peterson
CA e CB (boolean)
CA = true
Vez = B
CB
Vez = B
Vez (char)
CB = true
Vez = A
sim
no
CA
Vez = A
sim
no
Regio Crtica
Regio Crtica
CA = false
CB = false
PA
PB
Sincronizao e Comunicao
Thread
116
116
Sincronizao e Comunicao
Thread
117
117
Sincronizao Condicional
Ocorre quando um recurso
compartilhado no se encontra pronto
pra ser utilizado pelos processos.
Nesse caso, o processo que deseja
acessar o recurso dever ser colocado
no estado de espera.
Sincronizao e Comunicao
Thread
118
118
Sincronizao Condicional
Programa Produtor_Consumidor
Recurso compartilhado buffer (varivel
TamBuf), sendo controlado pela varivel
Cont.
Cont = 0 buffer vazio e o processo
Consumidor deve permanecer aguardando
at que se grave um dado.
Cont = TamBuf buffer est cheio e o
processo Produtor deve aguardar a leitura de
um novo dado.
Obs.: no est sendo implementado excluso
mtua na varivel compartilhada Cont.
Problema da Espera Ocupada
Sincronizao e Comunicao
Thread
119
119
Sincronizao Condicional
PROGRAM Produtor_Consumidor_1;
CONST TamBuf
= (* Tamanho qualquer *);
TYPE Tipo_Dado = (* Tipo qualquer *);
VAR Buffer : ARRAY [1..TamBuf] OF Tipo_Dado;
Dado
: Tipo_Dado;
Cont
: 0..TamBuf;
BEGIN
Cont := 0;
PARBEGIN
Produtor;
Consumidor;
PAREND;
END.
Sincronizao e Comunicao
Thread
120
120
Sincronizao Condicional
PROCEDURE Produtor;
BEGIN
REPEAT
Produz_Dado (Dado);
WHILE (Cont = TamBuf) DO (* Nao faz nada *);
Grava_Buffer (Dado, Cont);
UNTIL False;
END;
PROCEDURE Consumidor;
BEGIN
REPEAT
WHILE (Cont = 0) DO (* Nao faz nada *);
Le_Buffer (Dado);
Consome_Dado (Dado, Cont);
UNTIL False;
END;
Sincronizao e Comunicao
Thread
121
121
Semforos
uma varivel inteira, no negativa,
que s pode ser manipulada por duas
instrues: DOWN e P.
Funcionam como protocolos de entrada
e sada.
Se a varivel tiver valor > 0, nenhum
processo est utilizando o recurso,
caso contrrio o processo fica impedido
o acesso
Sincronizao e Comunicao
Thread
122
122
Semforos
Quando um processo desejar entrar em
sua regio crtica, deve executar uma
instruo DOWN, se o semforo for >
1, ento decrementado de 1, e o
processo que solicitou a operao pode
executar sua regio crtica, caso o
semforo seja 0, o processo fica em
estado de espera.
Ao sair de sua regio crtica, executar
uma instruo UP, incrementando o
semforo de 1 e liberando o acesso ao
recurso.
Sincronizao e Comunicao
Thread
123
123
Semforos
Semforo binrio na excluso mtua
DO
N
(S
>
0)
0)
D
O
=
(S
UP (S) - processo sai
da regio crtica
Libera processo
da fila de espera
Processo acessa
a regio crtica
Sincronizao e Comunicao
Thread
Fila de espera
de processos
124
124
Monitores
So mecanismos de sincronizao de
alto nvel, que tentam tornar mais
fceis o desenvolvimento e a correo
de programas concorrentes.
Implementa automaticamente a
excluso mtua entre seus
procedimentos, ou seja, somente um
processo pode estar executando algum
procedimento do monitor em um
determinado instante
Sincronizao e Comunicao
Thread
125
125
Monitores
Implementao da excluso mtua
realizada pelo compilador e no pelo
programador.
A comunicao do processo com o
monitor feita unicamente atravs de
chamadas a seus procedimentos e dos
parmetros passados para eles.
Sincronizao e Comunicao
Thread
126
126
Monitores
Estrutura do monitor
Declarao de
variveis globais
Procedimentos
Monitor
Proc. 1
Proc. 2
Fila de entrada
Proc. n
Inicializao
de variveis
Sincronizao e Comunicao
Thread
127
127
Monitores
Estrutura do monitor com varveis de
condio
Declarao de
variveis globais
Procedimentos
Condio C1
Monitor
Proc. 1
Proc. 2
Condio C2
Proc. n
Condio Cn
Fila de entrada
Filas de espera
Inicializao
de variveis
Sincronizao e Comunicao
Thread
128
128
Troca de Mensagens
Mecanismo de comunicao e
sincronizao entre processos,
implementado pelo SO atravs de duas
rotinas do sistema: SEND e RECEIVE.
Problema: perda da mensagem
Soluo: uso de mensagens de
recebimento (acknowledgement-ACK)
Sincronizao e Comunicao
Thread
129
129
Troca de Mensagens
Transmisso de mensagem
Processo
transmissor
Processo
receptor
Canal de comunicao
SEND
Sincronizao e Comunicao
Thread
RECEIVE
130
130
Troca de Mensagens
A comunicao pode ser feita de modo
direto e indireto:
Endereamento direto:
mensagem endereada explicitamente
pelo nome do processo receptor ou
transmissor;
S permite a comunicao entre dois
processos
Sincronizao e Comunicao
Thread
131
131
Troca de Mensagens
Comunicao direta
Processo A
Sincronizao e Comunicao
Thread
Processo B
132
132
Troca de Mensagens
Endereamento indireto:
Utiliza rea compartilhada, chamada de
mailbox.
Parmetros dos procedimentos SEND e
RECEIVE passam a ser nomes de
mailboxs e no mais nomes de
processos
Sincronizao e Comunicao
Thread
133
133
Troca de Mensagens
Comunicao indireta
Processo A
Processo B
Mailbox
ou Port
Sincronizao e Comunicao
Thread
134
134
Troca de Mensagens
Existem 3 diferentes esquemas de
implementar a sincronizao entre
processos que trocam mensagens.
Rendezvous
Implementa a forma sncrona de
comunicao entre os processos.
Problema: a execuo dos processos fica
limitada ao tempo de processamento no
tratamento das mensagens.
Sincronizao e Comunicao
Thread
135
135
Troca de Mensagens
Variao mais eficiente do rendezvous.
Permite a um processo enviar mensagens para
diversos destinatrios to logo seja possvel.
Forma assncrona
Tanto o processo receptor quanto o processo
transmissor no permanecem aguardando o
envio e o recebimento de mensagens.
Mecanismos que permitam ao processo
identificar se uma mensagem j foi enviada ou
recebida.
Aumenta a eficincia de aplicaes
concorrentes.
Sincronizao e Comunicao
Thread
136
136
Deadlock
Condies necessrias
Excluso mtua
Espera por recurso
No-preempo
Espera circular
Mecanismos
Preveno
Deteco
Correo
Sincronizao e Comunicao
Thread
137
137
Deadlock
Espera de um evento que nunca ir
ocorrer por um processo.
Ocorre por causa do compartilhamento
de recursos do sistema entre vrios
processos
Sincronizao e Comunicao
Thread
138
138
Deadlock
Condies para que ocorra Deadlock:
Excluso mtua apenas um processo de
cada vez pode usar esse recurso. Se outro
processo solicitar esse recurso, o processo
solicitante dever ser retardado at que o
recurso tenha sido liberado.
Posse e espera deve haver processos
que mantenham pelo menos um recurso e
tambm esteja esperando para obter
recursos adicionais mantidos por outros
processos
Sincronizao e Comunicao
Thread
139
139
Deadlock
Condies para que ocorra Deadlock:
No-preempo um recurso s pode ser
liberado voluntariamente pelo processo
que o mantm, depois que esse processo
tiver completado sua tarefa.
Espera circular um processo pode ter de
esperar por um recurso alocado a outro
processo e vice-versa.
Sincronizao e Comunicao
Thread
140
140
Deadlock
Espera circular
Processo A
Processo A
solicita o
Recurso 2
Recurso 1
alocado ao
Processo A
Recurso 2
Recurso 1
Processo B
Recurso 2
alocado ao
Processo B
Sincronizao e Comunicao
Thread
Processo B
solicita o
Recurso 1
141
141
Deadlock
Preveno:
Garantir que uma das 4 condies
necessrias para sua ocorrncia nunca se
satisfaa.
Excluso mtua ausncia de excluso
mtua, porm fera inconsistncias srias
em nvel dos processos e do sistema.
Posse e espera sempre que um
processos necessitar de recurso para
executar, que ele o requisite antes de
comear sua execuo, caso contrrio,
nenhum recurso ser alocado e o processo
ficar no estado de espera.
Sincronizao e Comunicao
Thread
142
142
Deadlock
Desvantagens: - grande desperdcio na
utilizao do sistema. Dificuldade de
determinar o nmero de recursos que
o processo precisar. Processo pode
sofre STARVATION.
- No-Preempo a liberao do
recurso pode fazer com que o processo
perca todo o processamento at ento
realizado. Tambm gera STARVATION.
- Espera Circular forar o processo a
ter acesso a apenas um recurso de
cada vez.
Sincronizao e Comunicao
Thread
143
143
Deadlock
DETECO:
Mecanismo a determinar a existncia de
um deadlock, permitindo identificar os
recursos e processos envolvidos.
Estrutura de dados capazes de identificar
cada recurso do sistema, o processo que
est alocando e os processos que esto
espera pela liberao do recurso.
Sincronizao e Comunicao
Thread
144
144
Deadlock
CORREO DE DEADLOCK
Eliminar um ou mais processos envolvidos
no deadlock e desalocar os recursos j
garantidos por eles, quebrando a espera
circular.
Sincronizao e Comunicao
Thread
145
145
Arquitetura de Sistemas
Operacionais
Prof. Mrcio
Cap 08 Gerncia do Processador
Gerncia do Processador
Thread
146
146
Sumrio
Introduo
Funes Bsicas
Critrios de escalonamento
Escalonamentos no-preemptivos e
preemptivos
Escalonamento FIFO
Escalonamento SJF
Escalonamento cooperativo
Escalonamento circular
Escalonamento por prioridades
Escalonamento circular com prioridades
Gerncia do Processador
Thread
147
147
Sumrio
Escalonamento por mltiplas filas
Escalonamento por mltiplas filas com
realimentao
Poltica de Escalonamento em Sistemas de
Tempo Compartilhado
Poltica de Escalonamento em Sistemas de
Tempo Real
Gerncia do Processador
Thread
148
148
Introduo
Escalonamento
Estado de
Execuo
lo
ca
Es
na
me
n to
Estado de
Espera
Gerncia do Processador
Thread
Estado de
Pronto
149
149
Funes Bsicas
Manter a UCP ocupada a maior parte do
tempo
Balancear o uso da UCP entre processos
Privilegiar a execuo de aplicaes crticas
Maximizar o throughput
Oferecer tempos de resposta razoveis para
usurios interativos
Implementada pelo scheduler e dispatcher
Processos unidades de alocao de
recursos
Threads unidades de escalonamento
Gerncia do Processador
Thread
150
150
Critrios de Escalonamento
Utilizao do processador
desejvel que o processador permanence
a maior parte do tempo ocupado.
30% (baixa carga de processamento)
90% (bastante carregado)
Throughput
Representa o nmero de processos
executados em um determinado intervalo
de tempo.
Gerncia do Processador
Thread
151
151
Critrios de Escalonamento
Tempo de Processador / Tempo de UCP
Tempo que um processo leva no estado de
execuo durante seu processamento.
Tempo de Espera
Tempo total que um processo permanece
na
fila
de
pronto
durante
seu
processamento, aguardando para ser
executado.
Desejvel reduo do tempo.
Gerncia do Processador
Thread
152
152
Critrios de Escalonamento
Tempo de Turnaround
Tempo que um processo leva desde a sua
criao at o seu trmino, levando em
considerao todo o tempo gasto na
espera para alocao de memria, espera
na fila de pronto, processamento na UCP e
na fila de espera, como nas operao de
E/S.
Gerncia do Processador
Thread
153
153
Critrios de Escalonamento
Tempo de Resposta
Tempo decorrido entre uma requisio ao
sistema ou aplicao e o instante em que
a resposta exibida.
Geralmente limitado pela velocidade do
dispositivo de E/S.
Gerncia do Processador
Thread
154
154
Escalonamentos
No-Preemptivo e Preemptivo
Preempo possibilidade do SO
interromper um processo em execuo
e substitu-lo por outro
Escalonamento no-preemptivo
Primeiro tipo de escalonamento
implementado nos sistemas
multiprogramveis, onde predominava o
processamento batch.
Gerncia do Processador
Thread
155
155
Escalonamentos
No-Preemptivo e Preemptivo
Escalonamento preemptivo
O SO pode interromper um processo em
execuo e pass-lo para o estado de
pronto, com o objetivo de alocar outro
processo na UCP.
Nos dias de hoje, a maioria dos SO
implementam polticas de escalonamento
preemptivas, que apesar de complexas,
possibilitam a implementao dos diversos
critrios de escalonamento apresentados.
Gerncia do Processador
Thread
156
156
Escalonamento FIFO
O processo que chegar primeiro ao
estado de pronto o selecionado para
a execuo. No preemptivo.
Bastante simples usa fila
Desvantagens:
Impossibilidade de prever-se quando um
processo ter sua execuo iniciada.
No se preocupa em melhorar o tempo
mdio de espera dos processos.
CPU-bound levam vantagem sobre os
processos I/O-bound.
Gerncia do Processador
Thread
157
157
Escalonamento FIFO
Escalonamento First-In-First-Out
UCP
Estado de
Trmino
Estado de
Espera
Gerncia do Processador
Thread
158
158
Escalonamento FIFO
Exemplo
Processo A
Processo B
Processo C
10
14
17
u.t.
Processo A
Processo
Tempo de
processador
(u.t.)
10
Processo B
Processo C
Gerncia do Processador
Thread
17
u.t.
159
159
Escalonamento SJF
O escalonamento seleciona o processo
que tiver o menor tempo de
processador ainda por executar.
Implementao utilizada nos primeiros
sistemas operacionais com
processamento exclusivamente batch.
Estimativa do tempo realizada com
base em anlises estatsticas de
execues passadas dos programas.
Gerncia do Processador
Thread
160
160
Escalonamento SJF
Desvantagens:
Impossibilidade de estimar o tempo de
processador para processos interativos, j
que a entrada de dados uma ao
imprevisvel.
Escalonamento SJF
Sua vantagem sobre o escalonamento
FIFO est na reduo do tempo mdio
de turnaround dos processo, porm no
SFJ possvel haver starvartion para
processos com tempo de processador
muito longo ou do tipo.
Gerncia do Processador
Thread
162
162
Escalonamento SJF
SJF com preempo SRT (shortest
remaining time).
Toda vez que um processo no estado
de pronto tem um tempo de
processador estimado menor do que o
processo em execuo o SO realiza
preempo.
SO fica responsvel por estimar os
tempos de processador dos processos.
Gerncia do Processador
Thread
163
163
Escalonamento SJF
Escalonamento Shortest-Job-First
Processo A
Processo B
Processo C
Gerncia do Processador
Thread
17
u.t.
164
164
Escalonamento Cooperativo
Processo em execuo libera
voluntariamente a UCP
Verifica a fila de mensagens
periodicamente
Podem ocorrer problemas se o
processo no verificar a fila, um
processo pode ficar ocupando por um
longo perodo o processador.
Exemplo: primeiros sistemas
MS-Windows
Gerncia do Processador
Thread
165
165
Escalonamento Circular
Bastante parecido com o FIFO, porm
quando um processo passa para o
estado de execuo existe um tempolimite para o uso contnuo do
processador denominado fatia de
tempo (time slice).
Mecanismo conhecido como preempo
por tempo
Gerncia do Processador
Thread
166
166
Escalonamento Circular
A fila de processos em estado de
pronto tratada como uma fila
circular.
O processo permanecer no estado de
execuo at que termine seu
processamento, voluntariamente passe
para o estado de espera ou que sua
fatia de tempo expire, sofrendo
preempo.
Gerncia do Processador
Thread
167
167
Escalonamento Circular
Fatia de tempo varivel, entre 10 a
100 milissegundo.
Esse valor pode afetar o desempenho
da poltica de escalonamento.
Principal vantagem:
No permitir que um processo monopolize
a UCP, por causa da fatia de tempo.
Adequado para sistemas de tempo
compartilhado
Gerncia do Processador
Thread
168
168
Escalonamento Circular
Desvantagens:
CPU-bound so beneficiados no uso do
processador em relao aos processos I/obound, ocasionando um balanceamento
desigual no uso do processador.
Soluo:
Escalonamento circular virtual
Gerncia do Processador
Thread
169
169
Escalonamento Circular
UCP
Estado de
Trmino
Estado de
Espera
Gerncia do Processador
Thread
170
170
Escalonamento Circular
Exemplo
Processo A
Processo B
Processo C
Gerncia do Processador
Thread
10 11
17
u.t.
171
171
Escalonamento Circular
Processos que saem do estado de
espera vo para uma fila de pronto
auxiliar. Tais processos possuem
preferncia na escalonamento em
relao a fila de pronto.
O escalonador s seleciona os
processos da fila de pronto quando a
fila auxiliar estiver vazia.
Fatia de tempo = fatia de tempo do
sistema tempo de processador que o
processo utilizou na ltima vez.
Gerncia do Processador
Thread
172
172
Escalonamento Circular
Escalonamento circular virtual
Fila dos processos no estado de Pronto
Estado de
Criao
UCP
Estado de
Trmino
Fila auxiliar
Estado de
Espera
Gerncia do Processador
Thread
173
173
Escalonamento por
Prioridades
um escalonamento do tipo
preemptivo realizado com base em um
valor associado a cada processo
denominado prioridade de execuo.
Processo com maior prioridade no
estado de pronto sempre escolhido
para execuo e aqueles com mesma
prioridade sero escalonados seguindo
o critrio de FIFO.
Gerncia do Processador
Thread
174
174
Escalonamento por
Prioridades
Nesse tipo de escalonamento, a perda
do uso do processador s ocorrer no
caso de uma mudana voluntria para
o estado de espera ou quando um
processo de prioridade maior passa
para o estado de pronto.
Processos I/O-bound recebem
prioridades mais altas que os CPUbound, como poltica compensatria.
Amplamente usado em sistemas
Windows e Linux.
Gerncia do Processador
Thread
175
175
Escalonamento por
Prioridades
Existem 2 variaes:
Escalonamento circular com prioridades
estticas, onde a prioridade definida no
contexto de software de cada processo e
permanece inalterada ao longo de sua
existncia.
Escalonamento circular com prioridades
dinmicas, que permite que a prioridade
seja alterada dinamicamente pelo
administrador do sistema ou pelo prprio
SO.
Gerncia do Processador
Thread
176
176
Escalonamento por
Prioridades
Filas dos processos no estado de Pronto
Prioridade P1
Prioridade P2
Estado de
Criao
UCP
Estado de
Trmino
Prioridade Pn
Estado de
Espera
Gerncia do Processador
Thread
177
177
Escalonamento por
Prioridades
Exemplo
Processo A
Processo B
Processo C
Gerncia do Processador
Thread
13
17
Processo
Tempo de
processador
(u.t.)
Prioridade
10
u.t.
178
178
Prioridade P2
Estado de
Criao
UCP
Estado de
Trmino
Prioridade Pn
Estado de
Espera
Gerncia do Processador
Thread
179
179
Escalonamento
por Mltiplas Filas
Neste escalonamento existem diversas
filas de processos no estado de pronto,
cada qual com uma prioridade
especfica.
Processo so associados s filas em
funo de caractersticas prprias,
como importncia para a aplicao,
tipo de processamento ou rea de
memria necessria.
Gerncia do Processador
Thread
180
180
Escalonamento
por Mltiplas Filas
Sua principal vantagem a
possibilidade da convivncia de
mecanismos de escalonamento distintos
em um mesmo SO.
Cada fila possui um mecanismo prprio,
permitindo que alguns processos sejam
escalonados pelo mecanismo FIFO,
enquanto outros pelo circular.
Gerncia do Processador
Thread
181
181
Escalonamento
por Mltiplas Filas
O processo no possui prioridade,
caracterstica essa que fica associada a
fila.
O processo sofre preempo caso um
outro processo entre em uma fila de
maior prioridade.
O SO s pode escalonar processos de
uma determinada fila caso todas as
outras filas de maior prioridade
estejam vazias.
Gerncia do Processador
Thread
182
182
Escalonamento
por Mltiplas Filas
Desvantagens:
Caso um processo altere seu
comportamento no decorrer do temo o
processo no poder ser redirecionado
para uma outra fila mais adequada.
Gerncia do Processador
Thread
183
183
Escalonamento
por Mltiplas Filas
Fila de processos do sistema
Maior
prioridade
Fila de processos interativos
UCP
Gerncia do Processador
Thread
184
184
185
185
186
186
Gerncia do Processador
Thread
187
187
Gerncia do Processador
Thread
188
188
189
189
Gerncia do Processador
Thread
190
190
Menor fatia
de tempo
Maior
Prioridade
UCP
Menor
Prioridade
Fila n (Circular)
Maior fatia
de tempo
Gerncia do Processador
Thread
191
191
Polticas em Sistemas de
Tempo Compartilhado
Caracterizam-se pelo processamento
interativo, no qual usurios interagem
com as aplicaes exigindo tempos de
respostas baixos.
A poltica de escalonamento escolhida
deve levar em considerao o
compartilhamento dos recursos de
forma equitativa para possibilitar o uso
balanceado da UCP entre processos.
Gerncia do Processador
Thread
192
192
Polticas em Sistemas de
Tempo Compartilhado
Escalonamento FIFO (exemplo)
Processo A
Gerncia do Processador
Thread
19
21
E/ S de B
E/ S de B
11
E/ S de A
E/ S de A
Processo B
Processo
Tempo de
processador
(u.t.)
Caracterstica
21
CPU-bound
I/ O-bound
27
u.t.
193
193
Polticas em Sistemas de
Tempo Compartilhado
Escalonamento circular (exemplo)
UCP livre
Processo A
20
23
E/ S de A
Processo
Tempo de
processador
(u.t.)
Caracterstica
15
CPU-bound
10
I/ O-bound
25
27
u.t.
E/ S de B
18
E/ S de B
13
Preempo por
tempo de A
Preempo por
tempo de A
Gerncia do Processador
Thread
11
E/ S de B
9
E/ S de B
E/ S de A
Processo B
194
194
Polticas em Sistemas de
Tempo Compartilhado
Escalonamento circular com
prioridades (exemplo)
20
24
27
E/ S de B
17 18
Preempo por
prioridade de A
14 15
Preempo por
prioridade de A
12
E/ S de B
E/ S de A
Preempo por
prioridade de A
Preempo por
prioridade de A
E/ S de B
E/ S de B
Processo B
E/ S de B
UCP livre
Processo A
Processo
Tempo de
processador
(u.t.)
Caracterstica
Prioridade
12
CPU-bound
Baixa
13
I/ O-bound
Alta
Gerncia do Processador
Thread
u.t.
195
195
Polticas em Sistemas de
Tempo Real
Gerncia do Processador
Thread
196
196
Polticas em Sistemas de
Tempo Real
Seu escalonamento deve levar em
considerao a importncia relativa de
cada tarefe na aplicao.
O escalonamento por prioridades o
mais adequado, j que para cada
processo uma prioridade associada
em funo da importncia do processo
dentro da aplicao.
Gerncia do Processador
Thread
197
197
Atividades
O que poltica de escalonamento de
um sistema operacional?
Quais os principais critrios utilizados
em uma poltica de escalonamento?
Diferencie os tempos de processador,
espera, turnaround e resposta.
Qual a diferena entre escalonamento
preemptivo e no preemptivo?
Explique o escalonamento circular.
Que tipo de escalonamento as
aplicaes de tempo real exigem?
Gerncia do Processador
Thread
198
198
Exerccios
Defina o conceito de processo.
Por que o conceito de processo to
importante no projeto de sistemas
multiprogramveis?
Quais as partes que compem um processo?
Defina os 5 estados possveis de um
processo.
Explique a diferena entre processos
foreground e background..
D exemplos de aplicaes CPU-bound e
I/O-bound
Processo
199
Atividades
Como uma aplicao pode implementar
concorrncia em ambiente monothread?
Quais os problemas de aplicaes
concorrentes desenvolvidas em ambientes
monothread?
O que thread e quais as vantagens de sua
utilizao.
Explique a diferena entre unidade de
alocao de recurso e unidade de
escalonamento
Quais os benefcios de uso de threads em
ambientes cliente-servidor?
Thread
200
Atividades
O que poltica de escalonamento de
um sistema operacional?
Quais os principais critrios utilizados
em uma poltica de escalonamento?
Diferencie os tempos de processador,
espera, turnaround e resposta.
Qual a diferena entre escalonamento
preemptivo e no preemptivo?
Explique o escalonamento circular.
Que tipo de escalonamento as
aplicaes de tempo real exigem?
Gerncia do Processador
Thread
201
201