• Nenhum resultado encontrado

Comunicação entre processos (2)

N/A
N/A
Protected

Academic year: 2022

Share "Comunicação entre processos (2)"

Copied!
24
0
0

Texto

(1)

EEL770 – Sistemas Operacionais

Comunicação entre processos (2)

Pedro Cruz

(2)

Lembretes

• Proposta de trabalho

– Enviar para [email protected]

• Prazo: dia 02 de abril

(3)

Aula passada

• Comunicação entre processos é útil

– Troca de dados – Consistência – Sincronização

• Problemas e soluções parecidos

– Processos – Threads

– Dispositivos em sistemas distribuídos

(4)

Aula passada

• Condição de corrida

• Região crítica

• Exclusão mútua

• Espera ocupada

– Desabilitar interrupções – Variáveis do tipo trava – Variáveis do tipo “vez”

– Solução de Peterson

(5)

Aula passada

• Implementação de comunicação

– Área de memória compartilhada

• Problema de leitura e escrita não-atômica – Instruções especiais de processador

• Necessita de suporte do hardware – Semáforos

• Implementados como chamadas de sistema

(6)

Semáforos

• Variável “compartilhada” diz quantos recursos estão disponíveis

– Operação de verificar variável, alterar variável e dormir são atômicas

• Implementadas como chamadas de sistema Up

Down

(7)

Up e Down

• Up

– Verifica variável

• Se possível, incrementa e segue para execução – Envia sinal de wake

• Se não, dorme e aguarda sinal

• Down

– Verifica variável

• Se possível, decrementa e segue para execução – Envia sinal de wake

• Se não, dorme e aguarda sinal

Ocorrem de forma atômica!

(8)

Semáforo

• Exclusão mútua

• Sincronismo

(9)

Produtores-consumidores com semáforos

• Produtor

down(&empty);

down(&mutex);

insert(item);

up(&mutex);

up(&full);

• Consumidor down(&full);

down(&mutex);

item = remove();

up(&mutex);

up(&empty);

mutex = 1 // acesso à região crítica

empty = N // contador de espaços vazios

full = 0 // contador de espaços preenchidos

(10)

Espera ocupada em threads

• Threads em espaço de núcleo

– Acordadas pelo escalonador

• Threads em espaço de usuário

– Acordadas pelo processo do usuário

Como ocorre a espera ocupada em ambos os casos?

(11)

Mutex

• Forma simples de garantir exclusão mútua

– Se pode acessar a região crítica, acessa

– Se não pode acessar a região crítica, dorme

(12)

Mutexes

mutex_lock:

MOVE Reg, #1 | copia 1 para Reg

TSL Reg, MUTEX | troca MUTEX com Reg CMP Reg, #0 | compara Reg com 0

JZE ok | se for 0, vai para ok

CALL thread_yield | mutex ocupado, libere CPU

JMP mutex_lock | tente outra vez

(13)

Problemas com semáforos

• Erros são comuns

– Ordem das chamadas de “reserva” e “contagem” é crítica

• Se é feita de outra maneira, pode haver um impasse

(14)

Produtores-consumidores com semáforos - problema

• Produtor

down(&mutex);

down(&empty);

• Consumidor down(&full);

down(&mutex);

mutex = 1 // acesso à região crítica

empty = N // contador de espaços vazios

full = 0 // contador de espaços preenchidos

(15)

Monitores

• Abstração “melhor” para os semáforos

– Recurso é protegido pelo monitor – Processos entram numa fila

– Monitor organiza quais processos devem acessar o recurso

• Apenas um por vez

– Monitor oferece interface de programação

(16)

Monitor

• Chamadas

– wait(c)

• Bloqueia o processo enquanto a condição c for verdadeira – Outro processo pode usar o recurso protegido

– signal(c)

• Acorda o processo aguardando a condição c ser falsa

• Filas para utilização

• Filas para sinalização

(17)

Monitor - exemplo

Monitor ProduceConsume { insert(item){

if(count == N) wait( full ); // desculpa =/

insert_item(item);

count++;

if (count == 1) signal( empty );}

item remove(){

if (count == 0) wait(empty);

item = remove_item();

count--;

if (count == (N-1)) signal(full);}} //perdão =/

(18)

Problemas de todos os mecanismos vistos

• Resolvem:

– Exclusão mútua – Sincronismo

• Funcionam

– Para uma única CPU

– Para várias CPUs com memória compartilhada

• Não resolvem:

(19)

Troca de mensagens

• Chamadas de sistema

– send(destination, &message);

– receive(source, &message);

• Processos devem:

– Saber como identificar destino e/ou fonte – Ter um formato de mensagem estabelecido

• Mensagens podem ser:

– Bloqueantes

– Não-bloqueantes

(20)

Troca de mensagem

• Envios podem gerar reconhecimento

– ACK

• Falta de reconhecimento pode gerar reenvio

– Indica perda de mensagem

• Reenvio pode gerar recebimento duplicado

– Pode gerar problemas na aplicação

• Solução é numerar as mensagens e rejeitar mensagens

duplicadas

(21)

Paradigmas de troca de mensagem

• Um para um

– Endereçamento direto – Caixa postal

• Um para muitos

– Broadcast

• Muitos para um

– Cliente-servidor

• Muitos para muitos

– Quadro negro

(22)

Barreira

• Processos concorrentes impõe uma barreira

– Processos que alcançam a barreira são bloqueados

– Processos são liberados quando todos alcançam a barreira

(23)

Leitura-cópia-atualização

• Não permitir a leitura de dados durante alteração

– Leitor acessa dados anteriores até alteração completa

A

D C B

A X

D C B

A

C X B

(24)

Comunicação entre processos (2)

Pedro Cruz

Referências

Documentos relacionados

Segundo o Instituto Trata Brasil (2017), que divulgou um estudo com base em dados do Sistema Nacional de Informações sobre Saneamento (SNIS) de 2016 sobre serviços de saneamento

AMIZADE PERFEITA Além das amizades visando o prazer e a utilidade, temos sua terceira forma, a mais perfeita e da qual trata Aristóteles para que se possa compreender sua

Para saber como o amostrador Headspace 7697A da Agilent pode ajudar a alcançar os resultados esperados, visite www.agilent.com/chem/7697A Abund.. Nenhum outro software

A espectrofotometria é uma técnica quantitativa e qualitativa, a qual se A espectrofotometria é uma técnica quantitativa e qualitativa, a qual se baseia no fato de que uma

Uso inalatório A administração para inalação deve proceder da seguinte forma: - Romper a ampola no local indicado, protegendo os dedos para não cortá-los; - Depositar a dose

Os negros e negras deste país devem ser vistos como cidadãos e cidadãs em seu sentido mais pleno, assim como a história da cultura negra (maracatus, afoxés e etc) e das religiões

Habermas 11 outrora definia o sentido de verdade a partir da situação ideal de fala, através dos pressupostos idealizantes de (a) publicidade e total inclusão de

Para instigar a curiosidade dos alunos, neste momento o professor deve fazer uma leitura coletiva com os alunos, apresentada em formato de slide, para que