48
TADS - SO – Aula 8 Prof. Charles Fortes [email protected] Sistemas Operacionais Sincronização e Comunicação entre Processos

Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos

Embed Size (px)

DESCRIPTION

Anhanguera - Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos

Citation preview

Page 1: Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos

TADS - SO – Aula 8Prof. Charles Fortes

[email protected]

Sistemas Operacionais

Sincronização e Comunicação entre Processos

Page 2: Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos

2

Atualizando a Turma

Page 3: Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos

3

Page 4: Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos

4

Previously on TADS-SO...

Page 5: Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos

5

Conceitos básicos de SO

O que é um sistema operacional?

É um programa ou conjunto de programas cuja função é gerenciar os recursos do hardware

Funções básicas

Facilidade de acesso aos recursos do sistema + Compartilhar os recursos de forma organizada e protegida

Page 6: Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos

6

Conceitos básicos de SO

Hardware e Software são logicamente equivalentes

Sistemas monoprogramáveis executam apenas uma tarefa por vez

Sistemas multiprogramáveis executam várias tarefas “ao mesmo tempo”

Sistemas multiprocessadores possuem vários processadores, além disto podem ser fortemente ou fracamente acoplados.

Page 7: Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos

7

Conceitos básicos de SO

O Processar é comporto por: Unidade de Controle, Unidade Lógica e Aritmética, e registradores

A memória principal pode ser volátil ou não volátil

Memória secundária é o armazenamento de dados “permanente” e não volátil

A linguagem de máquina é o que o processador realmente entende e está diretamente ligado a sua arquitetura, que comumente vão ser RISC ou CISC

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

8

Conceitos básicos de SO

Tradutor: Traduz o programa para linguagem de máquina

Interpretador: Interpreta código direto

Linker: Liga vários módulos como um só

Loader: Carrega o programa na memória

Depurador: Acompanhar a execução de um programa

Page 9: Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos

9

Conceitos básicos de SO

Multiprogramáveis surgiram pela necessidade de usar melhor os recursos do computador

Ao final de cada instrução, a unidade de controle verifica interrupções e exceções e as trata

Page 10: Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos

10

Conceitos básicos de SO

Kernel

oferece um conjunto de rotinas e serviços

Page 11: Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos

11

Conceitos básicos de SO

Processos e Threads

ProgramaConjunto de instruções

Processoum programa em execução

Page 12: Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos

12

Aplicações Concorrentes

Page 13: Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos

13

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 14: Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos

14

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 15: Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos

15

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 16: Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos

16

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

Page 17: Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos

17

Especificação de ConcorrênciaComandos Fork e Join

Page 18: Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos

18

Especificação de Concorrência

Page 19: Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos

19

Problemas de Compartilhamento de RecursosProblema da conta corrente

Page 20: Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos

20

Problemas de Compartilhamento de RecursosNem sempre a sai como se parece

Page 21: Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos

21

Problemas de Compartilhamento de RecursosNem sempre a sai como se parece

Page 22: Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos

22

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 23: Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos

23

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 24: Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos

24

A solução seria usar uma fila (FIFO) para controlar as entradas

Exclusão MútuaSituações indesejadas

Page 25: Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos

25

Desabilitar as interrupções

Instruções Test-And-Set

Soluções de HardwareSituações indesejadas

Page 26: Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos

26

Soluções de HardwareTest-And-Set

Page 27: Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos

27

Soluções de HardwareTest-And-Set

Page 28: Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos

28

Primeiro Algoritmo

Soluções de SoftwareSituações indesejadas

Page 29: Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos

29

Segundo Algoritmo

Soluções de SoftwareSituações indesejadas

Page 30: Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos

30

Terceiro Algoritmo

Soluções de SoftwareSituações indesejadas

Page 31: Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos

31

Quarto Algoritmo

Soluções de SoftwareSituações indesejadas

Page 32: Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos

32

Algoritmo de Peterson

Soluções de SoftwareSituações indesejadas

Page 33: Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos

33

Todos eles tem o problema do busy wait

Soluções de SoftwareSituações indesejadas

Page 34: Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos

34

Vinculado a uma condição de acesso.

Sincronização Condicional

Page 35: Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos

35

Semáforos

Page 36: Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos

36

DeadLock

Page 37: Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos

37

Page 38: Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos

38

Page 39: Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos

39

Problema dos filósofos

Uma mesa com cinco pratos e cinco garfos, onde os filósofos podem sentar, comer e pensar. Toda vez que um filósofo para e pensar e deseja comer, é necessário que ele utilize dois garfos, posicionados a sua direita e sua esquerda

Page 40: Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos

40

Problema dos filósofos

Soluções

a) Permitir que apenas quatro filósofos sentem a mesa simultaneamente;

b) Permitir que o filósofo pegue um garfo apenas se o outro estiver disponível;

c) Permitir que um filósofo ímpar pegue primeiro o seu garfo da esquerda e depois o da direita, enquanto um filósofo par pegue o garfo da direita e, em seguida, o da esquerda;

Page 41: Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos

41

Exemplo do Barbeiro (problema do barbeiro)

Um barbeiro recebe clientes para cortar cabelo. Na barbearia há uma cadeira de barbeiro e apenas cinco cadeiras para clientes esperarem. Quando um cliente chega, caso o barbeiro esteja trabalhando, ele senta se houver cadeira vazia ou vai embora se todas as cadeiras estiverem ocupadas. No caso de o barbeiro não ter nenhum cliente para atender, ele senta na cadeira e dorme até que um novo cliente apareça.

Page 42: Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos

42

Monitores

Page 43: Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos

43

Sincronização condicional entre Monitores

Page 44: Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos

44

Let’s Code

Page 45: Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos

45

Exercício para entregar por e-mail

Enviar para: [email protected]: [TADS_ASO] Exercício Capítulo 7

Prazo limite: 22/05/2014 às 23h59m horário de Brasília

(valerá o horário que o google marcar como “recebido” no e-mail)

Page 46: Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos

46

Livro texto: Arquitetura de Sistemas Operacionais 4ªed.Capítulo 7 – Item 7.11 página 131

Questões de 1 a 13 apenas

Se pegar as respostas na internet ou eu receber 2 iguais eu anulo o exercício

Valendo: 1 x

Page 47: Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos

47

Page 48: Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos

Dúvidas?

[email protected]