36
# Sistemas Operacionais # Aula 08 – Sincronização e Comunicação entre Processos Prof. Leinylson Fontinele Pereira

Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)

Embed Size (px)

Citation preview

Page 1: Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)

# Sistemas Operacionais #Aula 08 – Sincronização e Comunicação

entre ProcessosProf. Leinylson Fontinele Pereira

Page 2: Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)

Sistemas Operacionais - Aula 02: Conceitos Básicos

Na aula anterior...

Thread e Processos

18:48

Page 3: Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)

Sistemas Operacionais - Aula 02: Conceitos Básicos

Mundo 8 - Sincronização e Comunicação entre Processos

3

Thread e Processos

Estrutura do Sistema Operacional

Sincronização e Comunicação entre Processos

Page 4: Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)

Sistemas Operacionais - Aula 02: Conceitos Básicos

O que vamos aprender?

Sincronização e Comunicaçao entre Processos

Produtor vs Consumidor

18:48

Page 5: Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)

Sistemas Operacionais - Aula 02: Conceitos Básicos5

Aplicações Concorrentes

Page 6: Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)

Sistemas Operacionais - Aula 02: Conceitos Básicos6

A aplicação concorrente tem como base a execução cooperativa de

múltiplos processos ou threads que trabalham em uma mesma tarefa na

busca de um resultado comum.

Page 7: Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)

Sistemas Operacionais - Aula 02: Conceitos Básicos

Escalonamento Multilista

7

Page 8: Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)

Sistemas Operacionais - Aula 02: Conceitos Básicos

Listas com Quantum Variável

8

Page 9: Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)

Sistemas Operacionais - Aula 02: Conceitos Básicos

Windowns

9

Page 10: Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)

Sistemas Operacionais - Aula 02: Conceitos Básicos10

Em uma aplicação concorrente, os recursos de do

sistema são compartilhados, como E/S, áreas de

memória, arquivos, etc.

Este compartilhamento muitas vezes cria situações indesejadas, por isto estes

processos tem que ter suas execuções sincronizadas. Estes recursos são oferecidos

pelos sistemas operacionais.

Page 11: Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)

Sistemas Operacionais - Aula 02: Conceitos Básicos11

Quando temos apenas um processador, o sistema operacional

alterna a execução dos processos segundo os critérios de

escalonamento pré-estabelecidos para ele.

Mesmo não havendo paralelismo real, ainda assim

conseguimos aumento de desempenho.

Page 12: Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)

Sistemas Operacionais - Aula 02: Conceitos Básicos

Concurrency vs. Parallelism

12

Concurrent execution on single-core system:

Parallelism on a multi-core system:

Page 13: Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)

Sistemas Operacionais - Aula 02: Conceitos Básicos13

Comunicação entre processosTrocas de mensagens e variáveis compartilhadas

Page 14: Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)

Sistemas Operacionais - Aula 02: Conceitos Básicos14

Especificação de ConcorrênciaComandos Fork e Join

Page 15: Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)

Sistemas Operacionais - Aula 02: Conceitos Básicos15

Especificação de Concorrência

Page 16: Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)

Sistemas Operacionais - Aula 02: Conceitos Básicos16

Problemas de Compartilhamento de RecursosProblema da conta corrente

Page 17: Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)

Sistemas Operacionais - Aula 02: Conceitos Básicos

Sincronização e Comunicação entre Processos

17

Page 18: Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)

Sistemas Operacionais - Aula 02: Conceitos Básicos

Problema de Concorrência I

18

Page 19: Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)

Sistemas Operacionais - Aula 02: Conceitos Básicos

Problema de Concorrência II

19

Page 20: Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)

Sistemas Operacionais - Aula 02: Conceitos Básicos20

Como Solucionar?

Page 21: Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)

Sistemas Operacionais - Aula 02: Conceitos Básicos21

Exclusão Mútua

A forma mais eficiente é impedir o acesso simultâneo.

Quando é assim, o acesso a área crítica é feito um

bloqueio para acesso exclusivo

Page 22: Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)

Sistemas Operacionais - Aula 02: Conceitos Básicos22

No starvation (espera indefinida), um processo nunca

consegue acesso ao recurso compartilhado. Quando um

acaba o SO escolhe quem vai acessar agora, e isto pode

fazer com que seu processo sempre perca pela

aleatoriedade ou por prioridade

Exclusão MútuaSituações indesejadas

Page 23: Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)

Sistemas Operacionais - Aula 02: Conceitos Básicos

Material: https://sites.google.com/site/leinylsonnassau

Aula adaptada do material de:

Sistemas Operacionais, Anhaguera - Prof. Charles Fortes

Arquitetura de Sistemas Operacionais, Machado e Maia

Curso de Java, Loiane Groner

23

Page 24: Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)

Sistemas Operacionais - Aula 02: Conceitos Básicos

Nesta aula aprendemos... Sincronização e Comunicaçao entre Processos

Produtor vs Consumidor

24

Page 25: Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)

Sistemas Operacionais - Aula 02: Conceitos Básicos

Em uma aplicação concorrente que controla saldo bancário em contas correntes, dois processoscompartilham uma região de memória onde estão armazenados os saldos dos clientes A e B. Osprocessos executam, concorrentemente os seguintes passos:

26

Page 26: Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)

Sistemas Operacionais - Aula 02: Conceitos Básicos

Thread

27

Page 27: Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)

Sistemas Operacionais - Aula 02: Conceitos Básicos

Thread

28

Page 28: Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)

Sistemas Operacionais - Aula 02: Conceitos Básicos

Thread

29

Page 29: Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)

Sistemas Operacionais - Aula 02: Conceitos Básicos

Thread

30

Page 30: Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)

Sistemas Operacionais - Aula 02: Conceitos Básicos

Thread

31

Page 31: Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)

Sistemas Operacionais - Aula 02: Conceitos Básicos

Thread

32

Page 32: Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)

Sistemas Operacionais - Aula 02: Conceitos Básicos

Thread

33

Page 33: Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)

Sistemas Operacionais - Aula 02: Conceitos Básicos

Thread

34

Page 34: Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)

Sistemas Operacionais - Aula 02: Conceitos Básicos

Thread

35

Page 35: Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)

Sistemas Operacionais - Aula 02: Conceitos Básicos

Na próxima aula veremos... Gerência do Processador

Política de escalonamento de um sistema operacional

36

Page 36: Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)

Sistemas Operacionais - Aula 02: Conceitos Básicos

Alguma Dúvida?

37

[email protected]