Escolar Documentos
Profissional Documentos
Cultura Documentos
9 de setembro de 2021
1 / 50
Sumário
1 Multiprogramação
2 Escalonamento
Conceitos
Algoritmos de escalonamento
3 Concorrência
Memória compartilhada
Troca de mensagens
Prevenção de deadlock
2 / 50
Multiprogramação
1 Multiprogramação
2 Escalonamento
Conceitos
Algoritmos de escalonamento
3 Concorrência
Memória compartilhada
Troca de mensagens
Prevenção de deadlock
3 / 50
Multiprogramação
Multiprogramação
Figura 1.1: (a) Multiprogramação para quatro programas (b) Modelo conceitual
de quatro processos sequenciais independentes (c) Somente um programa está
ativo a cada momento [Tanenbaum and Machado Filho, 1995]
4 / 50
Multiprogramação
5 / 50
Multiprogramação
6 / 50
Multiprogramação
Concorrência
7 / 50
Multiprogramação
Programação concorrente
8 / 50
Escalonamento
1 Multiprogramação
2 Escalonamento
Conceitos
Algoritmos de escalonamento
3 Concorrência
Memória compartilhada
Troca de mensagens
Prevenção de deadlock
9 / 50
Escalonamento
Conceitos
10 / 50
Escalonamento Conceitos
1 Multiprogramação
2 Escalonamento
Conceitos
Algoritmos de escalonamento
3 Concorrência
Memória compartilhada
Troca de mensagens
Prevenção de deadlock
11 / 50
Escalonamento Conceitos
Escalonamento
Escalonadores
13 / 50
Escalonamento Conceitos
Cadências de escalonamento
As cadências de escalonamento são aplicadas em momentos diferentes da
interação com o processador.
14 / 50
Escalonamento Conceitos
Troca de Contexto
O dispatcher é o responsável por realizar a troca de contexto, uma vez que
o escalonador tenha decidido qual processo irá utilizar a CPU.
1 Multiprogramação
2 Escalonamento
Conceitos
Algoritmos de escalonamento
3 Concorrência
Memória compartilhada
Troca de mensagens
Prevenção de deadlock
16 / 50
Escalonamento Algoritmos de escalonamento
Algoritmos
17 / 50
Escalonamento Algoritmos de escalonamento
Avaliação de algoritmos
18 / 50
Escalonamento Algoritmos de escalonamento
Algoritmo FCFS
O algoritmo mais elementar é o FCFS - First-Come First-Served: o
primeiro processo que chega é atendido;
Precisa apenas de uma la simples;
Quando uma tarefa termina, a próxima da la ganha uso do
processador.
19 / 50
Escalonamento Algoritmos de escalonamento
Algoritmo SJF
No modelo SJF - Shortest Job First o processo mais curto é executado
primeiro;
Menor tempo de utilização da CPU e disponível para escalonamento
(ready);
Alternativa: próximo de menor tempo restante leva em consideração o
tempo de término.
20 / 50
Escalonamento Algoritmos de escalonamento
21 / 50
Escalonamento Algoritmos de escalonamento
Prioridades
Prioridade explicita os que devem ser executados primeiro;
Processos com prioridade mais alta existe a chance de serem
escalonados mais vezes;
Normalmente os processos são organizados em categorias de
prioridade.
1 Multiprogramação
2 Escalonamento
Conceitos
Algoritmos de escalonamento
3 Concorrência
Memória compartilhada
Troca de mensagens
Prevenção de deadlock
23 / 50
Concorrência
Conceitos
24 / 50
Concorrência
25 / 50
Concorrência Memória compartilhada
1 Multiprogramação
2 Escalonamento
Conceitos
Algoritmos de escalonamento
3 Concorrência
Memória compartilhada
Troca de mensagens
Prevenção de deadlock
26 / 50
Concorrência Memória compartilhada
Condição de corrida
Situações onde dois ou mais processos estão acessando dados com-
partilhados, e o resultado nal do processamento depende de quem
roda quando.
27 / 50
Concorrência Memória compartilhada
28 / 50
Concorrência Memória compartilhada
30 / 50
Concorrência Memória compartilhada
Listing 1: a Listing 2: b
while (TRUE) { while (TRUE) {
while ( t u r n !=0) /* ç l a o */ while ( t u r n !=1) /* ç l a o */
critical_region () ; critical_region () ;
turn = 1; turn = 0;
5 non_critical_region () ; 5 non_critical_region () ;
} }
31 / 50
Concorrência Memória compartilhada
Problema do produtor-consumidor
32 / 50
Concorrência Memória compartilhada
33 / 50
Concorrência Memória compartilhada
34 / 50
Concorrência Memória compartilhada
#d e f i n e N 100
typedef i n t semaphore
semaphore mutex = 1; /* c o n t r o l a ã r e g i o í c r t i c a */
semaphore empty = N ; /* c o n t r o l a çõ p o s i e s v a z i a s */
5 semaphore full = 0; /* c o n t r o l a çõ p o s i e s o c u p a d a s */
35 / 50
Concorrência Troca de mensagens
1 Multiprogramação
2 Escalonamento
Conceitos
Algoritmos de escalonamento
3 Concorrência
Memória compartilhada
Troca de mensagens
Prevenção de deadlock
36 / 50
Concorrência Troca de mensagens
Problema do deadlock
37 / 50
Concorrência Troca de mensagens
Denição
38 / 50
Concorrência Troca de mensagens
39 / 50
Concorrência Troca de mensagens
Grafo
Representação:
Processos (círculos);
Recursos (retângulos);
Instâncias dos recursos
(pontos).
Uma aresta orientada é
denominada:
P1 → R1;
Arco.
Figura 3.3: Grafo de alocação de
recursos [Favacho, 2009]
40 / 50
Concorrência Troca de mensagens
Grafo
P1 está bloqueando R2 e
aguardando R1;
P2 está bloqueando R1 e R2 e
aguardando R3;
P3 está bloqueando R3.
41 / 50
Concorrência Troca de mensagens
Soluções
42 / 50
Concorrência Prevenção de deadlock
1 Multiprogramação
2 Escalonamento
Conceitos
Algoritmos de escalonamento
3 Concorrência
Memória compartilhada
Troca de mensagens
Prevenção de deadlock
43 / 50
Concorrência Prevenção de deadlock
Exclusão mútua
44 / 50
Concorrência Prevenção de deadlock
Manter e esperar
Impedir que alguém que tenha algum recurso solicite outro já previne
o deadlock;
Fazer que um processo inicie com todos os recursos que vai precisar:
possível solução;
Só permite solicitar um recurso quando não estiver consumindo
nenhum outro.
Nesse caso pode acontecer starvation se o recurso for popular.
45 / 50
Concorrência Prevenção de deadlock
Preempção
46 / 50
Concorrência Prevenção de deadlock
Espera circular
47 / 50
Concorrência Prevenção de deadlock
OBRIGADO!!!
PERGUNTAS???
48 / 50
Concorrência Prevenção de deadlock
Chagas, F. (2016).
Notas de aula do prof. fernando chagas.
FARINES, J. M. and MELO, R. (2000).
Sistemas de Tempo Real, volume 1.
IME-USP.
Favacho, A. (2009).
Notas de aula da Profa. Aletéia Favacho.
Guarezi, D. J. and Silva, E. B. (2010).
Processos em windows e unix.
Disponível em:
http://www.inf.ufsc.br/∼magro/PROCESSOS%20EM%20WINDOWS%2
Acessado em 28/01/2011.
SILVA, L. (2021).
Notas de aula do prof. luciano silva.
Tanenbaum, A. S. and Machado Filho, N. (1995).
Sistemas operacionais modernos.
49 / 50
Concorrência Prevenção de deadlock
Prentice-Hall, 3 edition.
50 / 50