processos e threads - ipsltodi.est.ips.pt/nribeiro/lecturing/so_02-03/a03.pdfprocessos e threads 1....

27
Processos e Threads 1. Comunicação entre processos (IPS) 2. Problemas clássicos de IPC 3. Problemas

Upload: others

Post on 12-Aug-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Processos e Threads - IPSltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A03.pdfProcessos e Threads 1. Comunicação entre processos (IPS) 2. Problemas clássicos de IPC 3. Problemas

Processos e Threads

1. Comunicação entre processos (IPS)

2. Problemas clássicos de IPC

3. Problemas

Page 2: Processos e Threads - IPSltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A03.pdfProcessos e Threads 1. Comunicação entre processos (IPS) 2. Problemas clássicos de IPC 3. Problemas

12/16/2002 João Magalhães 2001/2002 2

Comunicação entre processos

Topicos fundamentais de comunicação entre processos:

– Sincronismo entre processos (barreiras, mutex, semaforos)

– Acesso exclusivo a um recurso por um processo (mutex,

semaforos)

– Passagem de informação entre processos (pipes, sockets)

Page 3: Processos e Threads - IPSltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A03.pdfProcessos e Threads 1. Comunicação entre processos (IPS) 2. Problemas clássicos de IPC 3. Problemas

12/16/2002 João Magalhães 2001/2002 3

Comunicação entre processosCondições de corrida

Dois processos a aceder à mesma posição da fila de espera.

Page 4: Processos e Threads - IPSltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A03.pdfProcessos e Threads 1. Comunicação entre processos (IPS) 2. Problemas clássicos de IPC 3. Problemas

12/16/2002 João Magalhães 2001/2002 4

Regiões criticas (1)

Quatro condiçoes para ter acesso exclusivo:– Não podem existir dois processos simultaneamente em regiões

criticas

– Nada se pode assumir sobre a velocidade e o número de CPUs

– Nenhum processo fora da região critica pode bloquear outroprocesso

– Nenhum processo pode esperar eternamente para entrar na regiãocritica

Page 5: Processos e Threads - IPSltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A03.pdfProcessos e Threads 1. Comunicação entre processos (IPS) 2. Problemas clássicos de IPC 3. Problemas

12/16/2002 João Magalhães 2001/2002 5

Regiões criticas (2)

Exclusão mutua utilizando regiões criticas

Page 6: Processos e Threads - IPSltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A03.pdfProcessos e Threads 1. Comunicação entre processos (IPS) 2. Problemas clássicos de IPC 3. Problemas

12/16/2002 João Magalhães 2001/2002 6

Exclusão mutua com espera activa(1)

Solução proposta para problema de regiões criticas(a) Processo 0. (b) Processo 1.

Page 7: Processos e Threads - IPSltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A03.pdfProcessos e Threads 1. Comunicação entre processos (IPS) 2. Problemas clássicos de IPC 3. Problemas

12/16/2002 João Magalhães 2001/2002 7

Exclusão mutua com espera activa (2)

Solução de Peterson's paraexclusãomutua

Page 8: Processos e Threads - IPSltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A03.pdfProcessos e Threads 1. Comunicação entre processos (IPS) 2. Problemas clássicos de IPC 3. Problemas

12/16/2002 João Magalhães 2001/2002 8

Exclusão mutua com espera activa (3)

Entrada e saida de uma região critica utilizando aTSL

Page 9: Processos e Threads - IPSltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A03.pdfProcessos e Threads 1. Comunicação entre processos (IPS) 2. Problemas clássicos de IPC 3. Problemas

12/16/2002 João Magalhães 2001/2002 9

Espera não activa

Acesso a regiões criticas com espera activa:– Ambas as soluções anteriores são correctas

• Instrução TSL • Solução de Peterson’s

– Processo activo enquanto espera consome recursos

Como implementar espera não activa?

Page 10: Processos e Threads - IPSltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A03.pdfProcessos e Threads 1. Comunicação entre processos (IPS) 2. Problemas clássicos de IPC 3. Problemas

12/16/2002 João Magalhães 2001/2002 10

“Adormecer e Acordar”Problema produtor-consumidor pode ser fatal numa situação de corrida

Page 11: Processos e Threads - IPSltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A03.pdfProcessos e Threads 1. Comunicação entre processos (IPS) 2. Problemas clássicos de IPC 3. Problemas

12/16/2002 João Magalhães 2001/2002 11

SemaforosSolução do problema produtor-consumidor com semaforos

Page 12: Processos e Threads - IPSltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A03.pdfProcessos e Threads 1. Comunicação entre processos (IPS) 2. Problemas clássicos de IPC 3. Problemas

12/16/2002 João Magalhães 2001/2002 12

MutexesImplementação de mutex_lock e mutex_unlock

Page 13: Processos e Threads - IPSltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A03.pdfProcessos e Threads 1. Comunicação entre processos (IPS) 2. Problemas clássicos de IPC 3. Problemas

12/16/2002 João Magalhães 2001/2002 13

Monitores (1)Exemplo de um monitor

Grupo de funções, variaveis e estruturas de dados.

Processos podem chamar elementosdo monitor arbitrariamente.

Processos não têm acesso aosdados do monitor.

Apenas um processo está activo num monitor.

Page 14: Processos e Threads - IPSltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A03.pdfProcessos e Threads 1. Comunicação entre processos (IPS) 2. Problemas clássicos de IPC 3. Problemas

12/16/2002 João Magalhães 2001/2002 14

Exemplo de MonitoresProblema produtor-consumidor com monitores

Page 15: Processos e Threads - IPSltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A03.pdfProcessos e Threads 1. Comunicação entre processos (IPS) 2. Problemas clássicos de IPC 3. Problemas

12/16/2002 João Magalhães 2001/2002 15

Implementação de Monitores em JavaSolução do problema produtor-consumidor em Java (parte 1)

Page 16: Processos e Threads - IPSltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A03.pdfProcessos e Threads 1. Comunicação entre processos (IPS) 2. Problemas clássicos de IPC 3. Problemas

12/16/2002 João Magalhães 2001/2002 16

Implementação de Monitores em Java Solução do problema produtor-consumidor em Java (parte 2)

Page 17: Processos e Threads - IPSltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A03.pdfProcessos e Threads 1. Comunicação entre processos (IPS) 2. Problemas clássicos de IPC 3. Problemas

12/16/2002 João Magalhães 2001/2002 17

Barreiras

Utilização de uma barreira:– processos aproximam-se de uma barreira– Todos os processos são bloqueados pela barreira– Quando o ultimo chega (quorum), passam todos

Page 18: Processos e Threads - IPSltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A03.pdfProcessos e Threads 1. Comunicação entre processos (IPS) 2. Problemas clássicos de IPC 3. Problemas

12/16/2002 João Magalhães 2001/2002 18

Problemas clássicos de IPC

Jantar de filosofos (acesso a recursos limitados)

Acessos de leitura e de escrita

Barbeiro adormecido (filas de espera)

Page 19: Processos e Threads - IPSltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A03.pdfProcessos e Threads 1. Comunicação entre processos (IPS) 2. Problemas clássicos de IPC 3. Problemas

12/16/2002 João Magalhães 2001/2002 19

Jantar de filosofos (1)

Filosofos comem/pensam

Para comer são necessários 2 garfos

Escolher um garfo de cada vez

Como prevenir deadlocks

Page 20: Processos e Threads - IPSltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A03.pdfProcessos e Threads 1. Comunicação entre processos (IPS) 2. Problemas clássicos de IPC 3. Problemas

12/16/2002 João Magalhães 2001/2002 20

Jantar de filosofos(2) Solução errada do problema

Page 21: Processos e Threads - IPSltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A03.pdfProcessos e Threads 1. Comunicação entre processos (IPS) 2. Problemas clássicos de IPC 3. Problemas

12/16/2002 João Magalhães 2001/2002 21

Jantar de filosofos(3) Soluçao do problema (parte 1)

Page 22: Processos e Threads - IPSltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A03.pdfProcessos e Threads 1. Comunicação entre processos (IPS) 2. Problemas clássicos de IPC 3. Problemas

12/16/2002 João Magalhães 2001/2002 22

Jantar de filosofos(4) Soluçao do problema (parte 2)

Page 23: Processos e Threads - IPSltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A03.pdfProcessos e Threads 1. Comunicação entre processos (IPS) 2. Problemas clássicos de IPC 3. Problemas

12/16/2002 João Magalhães 2001/2002 23

Acesso de leituras e de escritas

Reader

Writer

Reader Reader ReaderReader

Reader

Espera acessoexclusivo.

Page 24: Processos e Threads - IPSltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A03.pdfProcessos e Threads 1. Comunicação entre processos (IPS) 2. Problemas clássicos de IPC 3. Problemas

12/16/2002 João Magalhães 2001/2002 24

Acessos de leituras e escritasUma solução para o problema

Page 25: Processos e Threads - IPSltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A03.pdfProcessos e Threads 1. Comunicação entre processos (IPS) 2. Problemas clássicos de IPC 3. Problemas

12/16/2002 João Magalhães 2001/2002 25

Problema do barbeiro adormecido (1)

Page 26: Processos e Threads - IPSltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A03.pdfProcessos e Threads 1. Comunicação entre processos (IPS) 2. Problemas clássicos de IPC 3. Problemas

12/16/2002 João Magalhães 2001/2002 26

Problema do barbeiro adormecido(2)Soluçao do problema.

Page 27: Processos e Threads - IPSltodi.est.ips.pt/nribeiro/Lecturing/SO_02-03/A03.pdfProcessos e Threads 1. Comunicação entre processos (IPS) 2. Problemas clássicos de IPC 3. Problemas

12/16/2002 João Magalhães 2001/2002 27

Problema:

No cenário do problema acesso de leituras e escritas

alterar a solução de modo a que o writer não espere

indeterminadamente.

Reader

Writer

Reader Reader ReaderReader

Reader

Espera acessoexclusivo.