Escolar Documentos
Profissional Documentos
Cultura Documentos
Processos e Threads
1
Processos e threads
1. Processos
2. Threads
3. Comunicação inter processos (IPC)
4. Problemas clássicos de IPC
5. Escalonamento (Scheduling)
2
Processos: O modelo de
processos
⚫ Multiprogramação de 4 programas
⚫ Modelo conceitual de 4 processos sequenciais
independentes
⚫ apenas um programa ativo em um dado instante
3
Criação de Processos
5
Hierarquias de Processos
⚫ Pai cria um processo filho, processos filhos
podem criar seus próprios processos
⚫ Formam uma hierarquia
– UNIX denomina um “grupo de processos (process
group)
⚫ Windows não tem o conceito de hierarquia de
processos
– todos os processos são criados iguais
6
Estados de um processos
7
Sete Estados de um Processo
8
Estados de um processos
10
Implementação de Processos
12
Implementação de Processos
Utilização da Cpu = 1 - pn
14
Imagens de processos na memória
virtual
15
Threads: O modelo de Treads
17
Resolver agora
18
Threads: O modelo de Treads
19
Thread Usage (1)
20
Uso de Thread
22
Threads POSIX
23
24
Threads: O modelo de Treads
25
Implementando Threads no espaço do
usuário
28
Ativações do Escalonador
(Scheduler)
29
Pop-Up Threads
Supondo que os valores dos saldos de A e B sejam, respectivamente, 500 e 900, antes de os
processos executarem, pede-se (JUSTIFIQUE CADA RESPOSTA):
⚫ a) Quais os valores corretos esperados para os saldos dos clientes A e B após o término da
execução dos processos?
⚫ b) Quais os valores finais dos saldos dos clientes se a sequência temporal de execução das
operações for: 1a, 2a, 1b, 2b, 1c, 2c, 1d, 2d, 1e, 2e, 1f, 2f?
Regiões críticas
Quatro condições para proporcionar exclusão mútua
1. Dois Processos NÃO podem estar simultaneamente
nas suas regiões críticas
2. Nenhuma suposição pode ser feita em relação à
velocidade e número de CPUs
3. Nenhum processo fora de sua região crítica pode bloquear
outro processo
4. Nenhum processo deve esperar para sempre para entra em
sua região crítica
35
Regiões Críticas
36
Propostas para obtenção de exclusão mútua
• Desabilitando interrupções.
• Variáveis do tipo trava.
• Chaveamento obrigatório.
• Solução de Peterson.
• A instrução TSL.
Exclusão Mútua com Espera Ocupada
Alternância estrita (chaveamento obrigatório)
38
Exclusão Mútua com Espera Ocupada
39 Solução de Peterson
Exclusão Mútua com Espera Ocupada
40
Exclusão Mútua com Espera Ocupada
41
Sleep and Wakeup
43
Semáforos
45
Futexes – Fast User Space Mutex
46
Mutexes em Pthreads
47
Mutexes em Pthreads
48
Exemplo (1/2)
49
Exemplo (2/2)
50
Monitores
51
Monitor
⚫ Processos em espera ficam
na fila de entrada ou em
uma fila de condição
⚫ Um processo se coloca em
uma fila de condição pela
chamada cwait(cn)
⚫ csignal(cn) traz um
processo da fila de condição
cn
⚫ Consequentemente
csignal(cn) bloqueia o
processo e o coloca na fila
urgente (a menos que
csignal seja a última
operação do monitor)
52
Monitores
54
l Produtor-Consumidor usando Java
55
Passagem de Messagens
⚫ Semáforos:
– Explique o que são.
– Quais as operações (e suas semânticas) que
podem ser realizadas sobre eles?
– Dê dois exemplos de sua utilização: um para a
solução da exclusão mútua e outro para a
sincronização condicional.
58
59
Filósofos Jantando
60
Filósofos Jantando: uma não
solução
61
62 Solução para o problema do jantar dos filósofos (parte 1)
63 Solução para o problema do jantar dos filósofos (parte 2)
O problema do Barbeiro
Dorminhoco
64
65 Solução para o problema do Barbeiro Dorminhoco
Escalonamento com um
processador
66
Escalonamento: Introdução
68
Escalonamento de CPU
69
Classificação das Atividades do
Escalonador
71
Escalonamento a longo prazo
73
Escalonamento de curto prazo
74
Critérios de escalonamento a longo
prazo
⚫ Orientados ao usuário
– Tempo de resposta: Tempo entre a submissão de
uma solicitação ao início da resposta
– Tempo de Turnaround: Tempo entre a submissão
de uma solicitação ao seu término
⚫ Orientados ao sistema
– Utilização do processador
– Justiça
– throughput
75
Prioridades
79
Exemplos de execução para
discutir políticas de
escalonamento
Arrival Service
Process Time Time
1 0 3
2 2 6
3 4 4
4 6 5
5 8 2
82
Menor Processo Próximo
(Shortest Process Next (SPN) ou Shortest Job First)
A B C D B C D A
8 4 4 4 4 4 4 8
84
Exercício: calcule o tempo de turnaround
para Menor Processo Próximo
85
Exercício: calcule o tempo de turnaround
para Menor Processo Próximo
86
Estimando a rajada de CPU requerida
87
Estimando a rajada de CPU requerida
88
Coeficientes Decrescentes Exponencialmente
89
Coeficientes Decrescentes Exponencialmente
91
Escalonamento em sistemas
interativos
93
Round-Robin
96
Responder agora
97
Round Robin: crítica
⚫ Favorece processos limitados por CPU
– Um processo limitado por I/O usa a CPU por um tempo menor
que seu quantum e então é bloqueado esperando por I/O
– Um processo limitado por CPU executa por todo seu quantum e
é colocado de volta na fila de pronto (consequentemente fica na
frente dos processos bloqueados)
⚫ Uma solução: Round Robin virtual
– Quando um I/O é completado, o processo bloqueado é
colocado em uma fila auxiliar que tem preferência sobre a fila
de Pronto principal
– Uma processo escalado a partir da fila auxiliar não roda mais
que o quantum básico menos o tempo gasto rodando desde
que foi selecionado da fila Pronto
98
Fila para Round Robin Virtual
99
Escalonamento por Prioridades
10
0
Escalonamento com Filas Múltiplas (ou
multi-nível) com feedback
10
4
Escalonamento Garantido
10
5
Escalonamento por Loteria
10
6
Escalonamento por cota justa
10
7
Escalonamento em sistemas de tempo real
⚫ Depende da situação!
⚫ Carga do sistema
⚫ Suporte de hw para o dispatcher
⚫ Método de avaliação
10
9
11
0
11
1
11
2
11
3
11
4
11
5
11
6
11
7
11
8
Escalonamento geral de tempo real
Escalonamento por taxa
monotônica
Condições necessárias para RMS:
1. Cada processo periódico deve terminar dentro
de seu período.
2. Nenhum processo é dependente de outro
processo.
3. Cada processo precisa da mesma quantidade
de tempo de CPU a cada surto.
4. Processos não periódicos não têm prazos.
5. A preempção de processos ocorre
instanteneamente e sem prazos.
Escalonamento prazo mais curto
primeiro
Escalonamento em sistemas em
lote
12
Escalonamento em 3 Níveis
3
Política versus Mecanismo
12
5
Escalonamento de Threads