Professional Documents
Culture Documents
Multiprogramao
::Aulas 7 e 8 de 27::
::Total: 8 de 179::
1 de 24
Multiprogramao
Lote sem multi:
A
Exec.
A
Espera
A
Exec.
A
Espera
A
B
Termina Exec.
B
Espera
B
B
Exec. Espera
Tempo
::Aulas 7 e 8 de 27::
::Total: 8 de 179::
2 de 24
Multiprogramao
Lote com multi:
Programa A
A
Exec.
A
Espera
Programa B
B
B
Espera Exec.
Programa C
C
Espera
Combinados
A
Exec.
B
Espera
C
Exec.
A
Espera
B
B
Exec. Espera
C
Espera
C
Exec.
A
B
C
A
B
C
Esp.
Exec. Exec. Exec.
Exec. Exec. Exec.
Tempo
::Aulas 7 e 8 de 27::
::Total: 8 de 179::
3 de 24
Multitarefa (Multitasking)
::Aulas 7 e 8 de 27::
::Total: 8 de 179::
4 de 24
Multitarefa Cooperativa
Neste tipo de multitarefa os processos tinham de
voluntariamente prescindir do controlo
periodicamente
O processo executava durante algum tempo e
depois entregava o controlo ao S.O.
O S.O. passava o controlo a outro processo
E dessa forma ia rodando pelos processos todos,
simulando a execuo simultnea das tarefas
As primeiras verses do windows (pr 95)
funcionavam assim
::Aulas 7 e 8 de 27::
::Total: 8 de 179::
5 de 24
Multitarefa Cooperativa
Este modo tem a vantagem de ser simples de
implementar
Mas existe uma desvantagem grande
Se os processos no devolverem o controlo ao
sistema, este fica pendurado (hanged)
Isso pode acontecer por acidente, em caso de falha
do processo, mas tambm pode ser propositado
::Aulas 7 e 8 de 27::
::Total: 8 de 179::
6 de 24
Multitarefa Preemptiva
Para melhor o desempenho do sistema foi criada a
multitarefa preemptiva
Com este modo o sistema no espera pela
devoluo do controlo
O S.O. pode, a qualquer momento, interromper o
funcionamento de um processo e executar outro
Os processos interrompidos diz-se que ficam em
espera (hold)
::Aulas 7 e 8 de 27::
::Total: 8 de 179::
7 de 24
Multitarefa Preemptiva
::Total: 8 de 179::
8 de 24
Multitarefa
::Aulas 7 e 8 de 27::
::Total: 8 de 179::
9 de 24
Escalonamento
maximizar o desempenho
minimizar o tempo de resposta
minimizar a latncia
::Aulas 7 e 8 de 27::
::Total: 8 de 179::
10 de 24
Escalonamento
::Aulas 7 e 8 de 27::
::Total: 8 de 179::
11 de 24
Processos concorrentes
Uma das situaes que ocorre em sistemas
multitarefa est relacionada com o acesso aos
recursos
Os processos concorrem uns com os outros para
esse acesso (processos concorrentes)
Por este motivo o S.O. obrigado a oferecer formas
de proteger o sistema e processos e garantir a
fiabilidade
::Aulas 7 e 8 de 27::
::Total: 8 de 179::
12 de 24
Proteo de memria
Os processos tm um espao de memria especfico
atribudo
Se tentarem aceder a algo fora desse espao o S.O.
tem de intervir
Para isto so teis as tcnicas de:
Segmentao de memria
Memria virtual
::Aulas 7 e 8 de 27::
::Total: 8 de 179::
13 de 24
Proteo de ficheiros
O S.O. fornece tambm meios para controlar o
acesso aos ficheiros
possvel trancar (lock) certos ficheiros impedindo
a escrita, leitura, ou ambas
Isto importante para evitar um tipo de problema
chamado race condition (condio de corrida)
um problema comum em sistemas multitarefa no
s com ficheiros mas com outros recursos
::Aulas 7 e 8 de 27::
::Total: 8 de 179::
14 de 24
Race Condition
O S.O. fornece tambm meios para controlar o
acesso aos ficheiros
possvel trancar (lock) certos ficheiros impedindo
a escrita, leitura, ou ambas
Isto importante para evitar um tipo de problema
chamado race condition (condio de corrida)
um problema comum em sistemas multitarefa no
s com ficheiros mas com outros recursos
::Aulas 7 e 8 de 27::
::Total: 8 de 179::
15 de 24
Race Condition
Uma race condition um problema provocado por
falhas de sincronizao
Um exemplo simples quando dois processos
utilizam o mesmo ficheiro
Processo A
Processo B
Ambos utilizam o mesmo ficheiro com dados
::Aulas 7 e 8 de 27::
::Total: 8 de 179::
16 de 24
Race Condition
Processo A
Tempo
Processo B
Ficheiro
L valor
valor = 10
10 + 1
valor = 10
Guarda Valor
valor = 11
L valor
Valor = 11
11 + 1
Valor = 11
Guarda Valor
Valor = 12
Tudo Corre Bem
::Aulas 7 e 8 de 27::
::Total: 8 de 179::
17 de 24
Race Condition
Processo A
Processo B
L valor
valor = 10
L valor
Tempo
Ficheiro
valor = 10
10 + 1
valor = 10
Guarda Valor
Valor = 11
10 + 1
Valor = 11
Guarda Valor
Valor = 11
Perderam-se dados
::Aulas 7 e 8 de 27::
::Total: 8 de 179::
18 de 24
Race Condition
Para evitar este tipo de problema o S.O. fornece
mecanismos de tranca (lock)
No incio o processo A pede ao sistema para trancar
o ficheiro
O processo B no vai conseguir aceder e evita-se o
problema
::Aulas 7 e 8 de 27::
::Total: 8 de 179::
19 de 24
Deadlock (Interbloqueio)
Devido ao mecanismo de tranca pode ocorrer outro
problema, o deadlock
Se dois processos necessitam ambos dos mesmos
dois ficheiros, conforme a ordem em que acedem e
trancam podem ficar bloqueados
Exemplo:
Processo A
Processo B
Ficheiro X
Ficheiro Y
::Aulas 7 e 8 de 27::
::Total: 8 de 179::
20 de 24
Deadlock (Interbloqueio)
Processo A
Processo B
Tranca X
Tranca Y
Tempo
Tranca Y
Ficheiro X
Ficheiro Y
livre
livre
Trancado por
A
livre
Trancado por
B
Tranca X
::Aulas 7 e 8 de 27::
::Total: 8 de 179::
21 de 24
Deadlock (Interbloqueio)
A maioria dos S.O. no consegue evitar deadlocks a
100%
Mas tentam detetar e prevenir
O sistema consegue detetar verificando o estado
dos processos e os recursos que requisitaram
Caso detete um deadlock pode:
Encerrar o processo bloqueado
Alterar os recursos atribudos aos processos at
desbloquear o processo bloqueado
::Aulas 7 e 8 de 27::
::Total: 8 de 179::
22 de 24
Deadlock (Interbloqueio)
Para prevenir existem vrias estratgias:
Criar filas de acesso aos recursos para evitar
trancas exclusivas (usado em impresso spool;
spooling)
Obrigar os processos a pedir os recursos todos no
incio (no prtico)
Ordenar os recursos e impor uma regra que
obrigue a que sejam requisitados por ordem
::Aulas 7 e 8 de 27::
::Total: 8 de 179::
23 de 24
Resumo
Um Sistema Operativo est dividido em vrias partes
especialmente o modo Kernel e o modo Utilizador
::Aulas 7 e 8 de 27::
::Total: 8 de 179::
24 de 24