Ejercicios planificación de procesos

De Wiki de Sistemas Operativos
Saltar a: navegación, buscar

Ejercicio 1

Dada la siguiente configuración de procesos:

     H0  t
PA   0   3
PB   1   5
PC   2   6

Teniendo en cuenta el siguiente comportamiento:

  • El proceso A cada 1 unidad de tiempo de ejecución bloquea por operación de E/S
  • El proceso B cada 3 unidades de tiempo de ejecución bloquea por operación de E/S

Suponga que el tiempo de bloqueo de todos los procesos es de 2 unidades de tiempo debido al tiempo de acceso al dispositivo de E/S.

En caso de empate, considere que el orden de inserción a la cola de preparados es por orden de llegada (FIFO).

Realice la traza temporal de ejecución de dichos procesos para los siguientes criterios de planificación:

  • Turno rotatorio estricto, suponiendo que el quantum es de 2 unidades de tiempo.
  • Por prioridades, suponiendo que A < B < C.
  • Turno rotatorio proporcional al número de procesos en estado preparado, suponiendo que el quantum es de 2 unidades de tiempo. Si hay dos o más procesos preparados el quantum pasa a ser de una unidad de tiempo.

Ver solución ejercicio 1

Ejercicio 2

En un planificador multinivel con realimentación se dispone de dos colas:

  • La primera cola tiene procesos que reciben un quantum de 4 unidades de tiempo.
  • La segunda cola tiene procesos que reciben un quantum de 2 unidades de tiempo. Los procesos en esta cola reciben dos oportunidades de ejecución. Por tanto, se itera dos veces sobre esta cola antes de pasar a la primera cola.

Los procesos que acaban de ser lanzados pasan inicialmente a la segunda cola. Si consumen completamente el quantum una vez, promocionan a la primera cola. Si dejan de consumir completamente el quantum una vez, descienden a la segunda.

Dada la siguiente configuración de procesos:

    H0  t
Pa   0  4
Pb   1  4
Pc   2  12
Pd   3  12

Suponga que los procesos A y B bloquean por operación de E/S tras 1 unidad de ejecución. Los procesos C y D no bloquean. Los tiempos de bloqueo por E/S son de 1 unidad de tiempo. En toda decisión del planificador tenga en cuenta a los procesos que justo acaban de pasar a estado preparado tras un bloqueo.Represente gráficamente la evolución temporal de la asignación del procesador.

Ver solución ejercicio 2

Ejercicio 3

[Este ejercicio formó parte del Primer Parcial de Evaluación Contínua del curso 2010/11 del 23 de marzo de 2011]

Dada la siguiente configuracion de procesos:

Proceso H0 t
PA 0 3
PB 1 5
PC 2 6

Teniendo en cuenta el siguiente comportamiento:

  • El proceso A cada 1 unidad de tiempo de ejecución bloquea .
  • El proceso B cada 3 unidades de tiempo de ejecución bloquea.

Suponga que el tiempo de bloqueo de todos los procesos es de 2 unidades de tiempo debido al tiempo de acesso al dispositivo de E/S.

Realice la traza de ejecución de dichos procesos y los índices de penalización para los siguientes criterios de planificación:

  1. Turno rotatorio con compensacion con quantum de 2 unidades de tiempo.


  • En caso de que un proceso haya consumido el 50% de su quantum y en la cola de procesos preparados haya un unico proceso, insertelo delante de este.
  • Si dos o mas procesos pasan de estado preparado a la vez, considere que el orden de insercion en la cola de preparados es el siguiente: 1ºA 2ºB 3ºC
  • Recuerde que un proceso en estado bloqueado se inserta en la cola de preparados una vez que pasa el tiempo de bloqueo ( que en este ejercicio se trata de 2 unidades de tiempo)
  • En toda decisión del planificador tenga en cuenta a los procesos que justo acaban de pasar a estado preparado tras un bloqueo.

Ver solución ejercicio 3

Ejercicio 4

[Este ejercicio formó parte del Primer Parcial de Evaluación Contínua del curso 2011/12 del 8 de Noviembre de 2011]

Dado el código de los siguientes procesos:

Código proceso A:

int fd;                                         #1
fd = open("fichero.txt", O_WRONLY, 0600);       #2
for(int i=0;i<2;i++) {                          #3
  write(fd, "%d", sizeof(int));                 #4
}
close(fd);                                      #5

Código proceso B:

int fd, contador = 0;                           #1
for(int i=0;i<2;i++) {                          #2
  contador+=2;                                  #3
}
printf("el contador vale: %d\n", contador);     #4

De manera teórica, suponga que la ejecución de cada línea de código toma una unidad de tiempo. Considere que las llamadas write y printf son bloqueantes puesto que suponen accesos a dispositivos de E/S, siendo los tiempos de bloqueo de 3 unidades de tiempo. Suponga que ambos procesos se lanzan a la vez, pero el planificador da paso en primer lugar al proceso A.

Realice la traza temporal de ejecución de dichos procesos y los índices de penalización suponiendo planificación por turno rotatorio con compensación con quantum de 2 unidades de tiempo:

  • En caso de que un proceso haya consumido el 50% de su quantum y en la cola de procesos preparados haya un único proceso, insértelo delante de éste.
  • Si dos o más procesos pasan a estado preparado a la vez, considere que el orden de inserción de preparados en la cola es el siguiente: 1º-A, 2º-B.
  • Recuerde que un proceso en estado bloqueado se inserta en la cola de preparados una vez que pasa el tiempo de bloqueo (que en este ejercicio se trata de 3 unidades de tiempo.
  • En toda decisión del planificador tenga en cuenta los procesos que justo acaban de pasar a estado preparado tras un bloqueo.

Ver solución del ejercicio 4