Está en la página 1de 3

SISTEMAS OPERATIVOS

TEMA 2: PROCESOS: CONCURRENCIA, SINCRONIZACIÓN Y COMUNICACIÓN

RELACION DE EJERCICIOS

1. ¿Para qué se debe de planificar un proceso?

2. Si varios usuarios ejecutan el mismo programa y en


Memoria Principal se tiene una sola copia del programa,
¿tiene sentido que haya varios procesos?

3. Explicar por qué el estudio de la concurrencia es


apropiado e importante para los estudiantes de S.O.

4. Si existe una "condición de carrera", ¿obliga esto a que


se genere un error cuando se ejecute el programa?

5. ¿Cómo se podrían implementar las operaciones P y V en un


sistema con uno/varios procesadores y una memoria
principal común?

6. En la solución al problema de la cena de los filósofos,


¿por qué la variable de estado se colocó a 1 (hambriento)
antes de tomar los tenedores?

7. ¿Se puede hablar de paso de mensajes mediante buzones en


un solo host?

8. Dado el siguiente algoritmo para dos procesos 0 y 1:

Proceso (i)

REPETIR
COMIENZO
MIENTRAS interés [j] = 1 HACER ;
interés [i] := 1;
Sección Crítica;
interés [i] := 0;
Sección No Crítica;
FIN

donde i=0,1; j=1-i; e interés es un vector de variables


compartidas de tamaño 2 e inicializadas a cero.

Comprobar si se cumplen los requerimientos de exclusión


mutua. ¿Cumple las condiciones para tener procesos que
progresen adecuadamente?. Razonar las respuestas.
9. Considerar el siguiente algoritmo de exclusión mutua para
dos procesos 0 y 1:

Proceso (i)

REPETIR
COMIENZO
interes[i]:= 1;
turno:= i;
MIENTRAS (turno=i OR interes[j]=1) HACER ;
Sección Crítica;
interes[i]:= 0;
Sección No Crítica;
FIN;

donde i=0,1; j=1-i; y la variable compartida turno está


inicializada a cero.

- ¿Se satisface el requimiento de exclusión mutua?


- ¿Se satisfacen las otras condiciones para tener
procesos paralelos que cooperen correcta y eficazmente?
En caso afirmativo, comentar sus inconvenientes.

10. Sean tres semáforos: A y C inicializados a 0, y B


inicializado a 1. Dados tres procesos que acceden a
dichos semáforos de la siguiente forma:

PROC. 1 PROC. 2 PROC. 3


. . .
. . .
WAIT(A); WAIT(B); WAIT(B);
. . WAIT(C);
. . .
. . .
SIGNAL(C); SIGNAL(A); SIGNAL(B);
. SIGNAL(B); .
. . .

Indicar una planificación de los mismos que les permitan


terminar, y otra que conduzca a un interbloqueo.

11. Considerar la siguiente solución al problema del


productor-consumidor que se comunican a través de un
buffer circular de memoria de tamaño N:

Productor Consumidor

REPETIR REPETIR
COMIENZO COMIENZO
Producir elemento; WAIT (ED);
WAIT (EL); Elemento:=buffer[OUT];
buffer[IN]:=el.produc.; OUT:=(OUT+1) mod N;
IN:=(IN+1) mod N; SIGNAL (EL);
SIGNAL (ED); Consumir elemento;
FIN; FIN;
donde los semáforos ED y EL están inicializados a 0 y N
respectivamente. Las variables IN y OUT apuntan
respectivamente a la entrada del búfer donde se va a
almacenar el próximo elemento a consumir y a la entrada
del buffer de donde se va a extraer el próximo elemento
a consumir.

- ¿Es posible que IN = OUT? Justificar.


- ¿Pueden el Productor y el Consumidor manipular al
mismo tiempo el mismo elemento del búfer? Justificar.
- ¿Es válida la solución anterior para el caso de varios
procesos consumidores? ¿Por qué?

12. Dado el problema del Productor-Consumidor y los


siguientes algoritmos:

PRODUCTOR

REPETIR
COMIENZO
producir un elemento;
WAIT (espacio libre);
WAIT (manipulación del buffer);
depositar un elemento en el buffer;
SIGNAL (manipulación del buffer);
SIGNAL (elemento disponible);
FIN;

CONSUMIDOR

REPETIR
COMIENZO
WAIT (manipulación del buffer);
WAIT (elemento disponible);
sacar elemento del buffer;
SIGNAL (manipulación del buffer);
SIGNAL (espacio libre);
consumir elemento;
FIN;

¿Es válida la solución anterior? ¿Por qué?

13. Si un sistema tiene sólo semáforos binarios, implementar


una forma de simular semáforos generales (AYUDA: Se
tendrán que definir dos nuevas operaciones que se pueden
llamar WAITG y SIGNALG. Para la implementación podemos
fijarnos en la similitud que existe entre un semáforo
binario y un semáforo general).

14. Implementar la exclusión mutua mediante el paso de


mensajes utilizando una designación indirecta (buzones).

También podría gustarte