Академический Документы
Профессиональный Документы
Культура Документы
Captulo VII
Nome: Wallyson Emanuel da Silva e Silva
1. Defina o que uma aplicao concorrente e d um exemplo de sua utilizao.
Pode ocorrer inconsistncia nos dados caso no haja uma gerncia correta
quanto a utilizao concorrente dos recursos compartilhados
3. O que excluso mtua e como implementada?
Retira_da_Fila_de_Espera;
VAR X: INTEGER;
PROCEDURE Soma;
BEGIN
X := X + 1;
END;
PROCEDURE Diminui;
BEGIN
X := X 1;
END;
BEGIN
X := 0;
END;
BEGIN
PARBEGIN
Regiao_Critica.Soma;
Regiao_Critica.Diminui;
PAREND;
END;
- para a sincronizao condicional:
MONITOR Condicional;
VAR Cheio, Vazio : (* Variaveis especiais de condicao*);
PROCEDURE Produz;
BEGIN
IF (Cont = TamBuf ) THEN WAIT (Cheio);
.
.
IF (Cont = 1) THEN SIGNAL (Vazio)
END;
PROCEDURE Consome;
BEGIN
IF (Cont = 0 ) THEN WAIT (Vazio);
.
.
IF (Cont = TamBuf - 1 ) THEN SIGNAL (Cheio);
END;
BEGIN;
END;
12. Qual a vantagem da forma assncrona de comunicao entre processos e como esta pode
ser implementada?
A vantagem desse mecanismo aumentar a eficincia de aplicaes concorrentes. Para
implementar essa soluo, alm da necessidade de buffers para armazenar as
mensagens, devem haver outros mecanismos de sincronizao que permitam ao
processo identificar se uma mensagem j foi enviada e recebida.
13. O que deadlock, quais as condies para obt-lo e quais as solues possveis?
a situao em que um processo aguarda por um recurso que nunca estar disponvel
ou um evento que no ocorrer.
Condies necessrias para ocorrer o deadlock:
Excluso mtua: cada recurso s pode estar alocado a um nico processo em um
determinado instante;
Espera por recurso: um processo, alm dos recursos j alocados, pode estar
esperando por outros recursos;
No-preempo: um recurso no pode ser liberado de um processo s porque outros
processos desejam o mesmo recurso.
Espera circular: um processo pode ter de esperar por um recurso alocado a outro
processo e vice-versa.
Para prevenir a ocorrncia, preciso garantir que uma das quatro condies
apresentadas, necessrias para sua existncia, nunca se satisfaa.
14. Em uma aplicao concorrente que controla saldo bancrio em contas-correntes, dois
processos compartilham uma regio de memria onde esto armazenados os saldos dos
clientes A e B. Os processos executam concorrentemente os seguintes passos: Supondo
que os valores dos saldos de A e B sejam, respectivamente, 500 e 900, antes de os
processos executarem, pede-se:
a) Quais os valores corretos esperados para os saldos dos clientes A eB aps trmino
da execuo dos processos?
Cliente A: 200 e o Cliente B: 1 200
b) quais os valores finais dos saldos dos clientes se a sequencia temporal de execuo
das operadoras for: 1a, 2a, 1b, 2b, 1c, 2c, 1d, 2d, 1e, 2e, 1f, 2f?
Cliente A: 400 e o cliente B 1.100
c) Utilizando semforos, proponha uma soluo que garanta a integridade dos saldos e
permita o maior compartilhamento possvel dos recursos entre os processos, no
esquecendo a especificao da inicializao dos semforos.
Processo I (Cliente A)
/* saque em A*/
Down (S1)
x := saldo_do_cliente_A;
x:= x 200;
saldo_do_cliente_A:= x;
Up (S1)
/* deposito em B*/
Down (S2)
x := saldo_do_cliente_B;
x:= x + 100;
saldo_do_cliente_B:= x;
Up (S2)
Processo 2 (cliente B)
/* saque em A*/
Down (S1)
y := saldo_do_cliente_A;
y:= y 100;
saldo_do_cliente_A:= y;
Up (S1)
/* deposito em B*/
Down (S2)
y := saldo_do_cliente_B;
y:= y + 200;
saldo_do_cliente_B:= y;
Up (S2)
15. O problema dos leitores/escritores, apresentado a seguir, consiste em sincronizar
processos que consultam/utilizam dados em uma base comum. Pode haver mais de um
leitor lendo ao mesmo tempo; no entanto, enquanto um escritor est atualizando a base,
nenhum outro processo pode ter acesso a ela (nem mesmo leitores).
a) Suponha que exista apenas um leitor fazendo acesso base. Enquanto este processo
realiza a leitura, quais os valores das trs variveis?
acesso: 0 excluso: 1 Nleitores: 1
b) Chega um escritor enquanto o leitor ainda est lendo. Quais os valores das trs
variveis aps o bloqueio do escritor? Sobre qual(ais) semforo(s) se d o bloqueio?
acesso: 0 excluso: 1 Nleitores: 1, o bloqueio ocorre no semforo Acesso.
c) Chega mais um leitor enquanto o primeiro ainda no acabou de ler e o escritor est
bloqueado. Descreva os valores das trs variveis quando o segundo leitor inicia a
leitura.
acesso: 0 excluso: 1 Nleitores: 2
d) Os dois leitores terminam simultaneamente a leitura. possvel haver problemas
quanto integridade do valor da varivel Nleitores? Justifique.
No, pois a excluso mtua a esta varivel implementada pelo semforo
excluso.
e) Descreva o que acontece com o escritor quando os dois leitores terminam suas
leituras. Descreva os valores das trs variveis quando o escritor inicia a escrita.
O processo escritor inicia a escrita. acesso: 0 excluso: 1 Nleitores: 0
f)