Buenas, me parece que hay algunos inconsistencias en la solución del 1er parcial de 2016.
En el ejercicio 2, parte c:
Se pide realizar un esquema en el tiempo que muestre los procesos asignados a cada CPU y la cola de procesos listos, tomando como estrategia de planificación un Round Robin con quantum = 20.
- A los 20ms se le quita el procesador al proceso P1, sin embargo, la solución refeleja que este proceso pase a la Ready Queue.
- A los 160ms todos los procesos pasan a la Ready Queue al mismo tiempo. Sin embargo, sin P1 y P3 los que ganan el recurso procesador mientras que P2 queda en la cola de espera.
- Se aceptan soluciones que contemplen asignar el CPU a P2 y que P3 quede en la cola de espera?
- Si se quiere hilar fino, se puede ver que, por un lado, P1 hace mucho que no utiliza el procesador, y que el siguiente CPU Burst de P3 es menor que el de P2.
- Sin embargo, la letra no aclara nada al respecto por lo que, a mi entender, todos los procesos tendrían la misma chance de obtener el CPU porque no es posible saber que proceso entró primero a la cola de espera.
- Son aceptables soluciones que intercalen el CPU para cada proceso?
- Se debe considerar que un sistema expropiativo debe quitar el recurso CPU solo si hay procesos en la cola de espera? (Lo veo como una optimización razonable pero no se dió en el teórico).
----
Luego, en el ejercicio 3, la solución tiene, valga la redundancia, un problema de concurrencia:
Semaphore S;
begin
init(S,0);
A
cobegin
begin
cobegin
begin B; E end
begin P(S); C; F end
coend
cobegin
begin H; K; end
begin I; end
coend
M
end
begin D; G; J; V(S); L; end
coend
end
Según ese código, M
se ejecuta en paralelo con L
, y no existe ningún tipo de control al respecto. Sin embargo, M
depende de L
por lo que la solución no sería correcta.
Una forma de arreglar eso sería simplemente poner M
al final del cobegin
principal pues en ese caso la sincronización sería automática.
---
Perdón por el largo del post, pero me pareció que debía plantear esto antes del parcial, aunque sea sobre la hora.
Saludos!