Ejercicio 2 de procesos y memoria (septiembre 2000)


Enunciado

Sea un sistema que usa un algoritmo de planificación de procesos basado en prioridades con carácter expulsivo y que proporciona un mecanismo de comunicación asíncrono (envío no bloqueante pero recepción bloqueante). Se pretende analizar la traza de ejecución de dos procesos que usan un semáforo S con un valor inicial igual a 0 y tienen el siguiente perfil de ejecución:

Proceso P1 (alta prioridad)

  1. Uso del procesador
  2. DOWN(S)
  3. Uso del procesador
  4. SEND(Proceso 2, mensaje)
  5. Uso del procesador
  6. Primer fallo de página sobre una determinada página de la región de código. Hay marcos libres.
  7. Uso del procesador
  8. Primer fallo de página sobre una determinada página de la región de datos con valor inicial. No hay marcos libres y el marco elegido para el reemplazo está modificado.
  9. Uso del procesador
  10. Primer fallo de página sobre una determinada página de la región de datos sin valor inicial. No hay marcos libres pero el marco elegido para el reemplazo no está modificado.
  11. Uso del procesador
  12. Fallo de página por escritura en una página marcada como copy-on-write. Hay marcos libres.
  13. Uso del procesador
  14. Fin del proceso

Proceso P2 (baja prioridad)

  1. Uso del procesador
  2. UP(S)
  3. Uso del procesador durante un intervalo de tiempo muy pequeño
  4. RECEIVE(mensaje)
  5. Uso del procesador durante un tiempo ilimitado

Se pide:

  1. Mostrar la traza de ejecución de los dos procesos especificando en qué momentos se activa el sistema operativo, el motivo de dicha activación (llamada al sistema, interrupción de un dispositivo o excepción) y, de manera breve, la labor que realiza el sistema operativo durante esta activación.
  2. Analizar qué ocurriría con la ejecución de estos dos procesos si el semáforo estuviera iniciado con un valor igual a 1, el proceso 2 realizara un DOWN en vez de un UP y el proceso 1 tuviera menos prioridad que el 2. ¿Qué podría hacer el sistema operativo ante esta situación?

Solución

  1. A continuación, se muestra la traza de ejecución:
  2. A continuación, se muestra la traza de ejecución siguiendo los nuevos supuestos: Se ha producido una situación de interbloqueo debido al uso conflictivo de los recursos por parte de los procesos. Para tratar este tipo de situaciones, el sistema operativo podría usar una de las técnicas clásicas de tratamiento de interbloqueos (detección y recuperación, predicción o prevención= o simplemente ignorarlo.