Diferencia entre revisiones de «Práctica Semáforos (Sistemas Operativos)»

De Cuba-Wiki
Línea 96: Línea 96:
P(X)  P(exc) P(X)
P(X)  P(exc) P(X)
...    ...    ...   
...    ...    ...   
V(X)  V(exc) V(X)
V(Y)  V(exc) V(X)
V(X)  V(X)  V(X)
V(Y)  V(X)  V(X)


Inicio
Inicio

Revisión del 14:13 31 mar 2007

Ejercicio 01[*]:


a)

A       B       C  
P( A )  P( B )  P( C )  
...     ...     ...  
V( B )  V( C )  V( A )  

Inicio
A = n > 0  
B = 0  
C = 0


b)

A        B        C  
P( A )   P( B )   P( C )  
P( msg ) P( msg )  
...      ...      ...  
V( A )   V( A )  
V( msg ) V( C )   V( B )  

Inicio
A = n > 0  
msg = 0  
B = 1  
C = 0  


c)

A       B       C  
P( A )  P( A )  P( C )  
...     ...     ...  
V( C )  V( C )  V( A )  

Inicio
A = n > 0  
C = 0  

Ejercicio 02:

Ejercicio 03:


a)
b)

Ejercicio 04:

Ejercicio 05[*]:


a) Hay un deadlock, porque Z espera que se incremente B, y B nunca se va a incrementar, porque eso lo hace Y (que no se va a ejecutar)
b) Se podrian invertir los primeros dos P's de Y y Z
c) Me parece que anda bien (por algo lo di como solucion del b :P)
d)

Ejercicio 06[*]:


a)

 S  R  B  C   Signal  Wait
 1  0  0  1     
 0  1  0  1     R      
 0  1 -1  1            B
 1  0  0  0     B      B
 1 -1  0  0            B
 1 -1  0 -1           B/C
 0  0  0 -1     B     B/C
 1  0  0  0     C      C
 0 -1  0  0            C
-1 -1  0  0           C/S


b)

Ejercicio 07[*]:

Al ejecutarse V(T) se produce un signal de T, entonces el PT selecciona un proceso T que se encuentra en la cola de bloqueados y lo coloca en la de listos. Luego se ejecuta V(S) y sucede lo mismo y luego V(R). En la ejecucion de V(R) no se produce ningun signal

Ejercicio 08:

Ejercicio 09:

Ejercicio 10:

Ejercicio 11[*]:

A         B         C  
P( A )    P( msg )  P( msg )  
P( A ) 
...       ...       ...  
V( msg )  V( A )    V( A )  
V( msg )    

Inicio
A=2  
msg=0  

Ejercicio 12[*]:

A      B      C  
P(X)   P(Y)   P(X)  
P(X)   P(exc) P(X)
...    ...    ...  
V(Y)   V(exc) V(X)
V(Y)   V(X)   V(X)

Inicio
A=1  
B=0  
C=0  

Ejercicio 13[*]: