Documente Academic
Documente Profesional
Documente Cultură
707
Jesús Ruiz V-27.296.976
Caso 1:
La planificación temporal define cuales procesos deben ejecutarse en una unidad de
tiempo. Como ejemplo, el sistema posee un conjunto de actividades, las cuales pueden
ejecutarse en primer o segundo plano. Cuando el sistema inicia crea procesos que
interactúan con el usuario y procesos que tienen funciones específicas (segundo plano),
como por ejemplo aceptar un email entrante ( pudiendo ser una actividad que se esta
ejecutando sin ser utilizada). Estos procesos se pueden ir atendiendo según su prioridad,
donde cada procesador tendría una planificación que permita una mejor respuesta a estos
tipos de trabajos.
Se implementa esta, ya que define una política de planificación en cada procesador
individual, como si de un monoprocesador se tratara.
Caso 2:
En las aplicaciones concurrentes de hoy en día, de tipo multihilo, los threads
habitualmente interaccionan de manera muy estrecha (estos usan memoria compartida
como mecanismo de comunicación entre ellos), por lo que la carencia de recursos para
planificar alguno de los hilos puede provocar que otros hilos de la aplicación que sí
disponen de procesador no progresen y consuman ciclos de CPU esperando por
condiciones que deberían satisfacer los hilos no planificados, lo que conduce a pobres
resultados en cuanto a tiempos de finalización y retardos. Esto invita a implementar
políticas de asignación de procesadores que permitan a una aplicación disponer de los
recursos necesarios para que la ejecución de la aplicación pueda progresar
adecuadamente, como nos lo permite la planificación espacial.
Debe incluir:
Gestión de recursos. Administración de recursos del hardware y de redes de un
sistema informático, como la unidad de procesamiento central, memoria, unidades
de disco y periféricos de entrada o salida.
Razón: Un sistema operativo puede ser mono-tarea, que es aquel que solamente
puede ejecutar un proceso del programa de computación a la misma vez. Esta es
una característica de los sistemas operativos más antiguos como MS-DOS.
En la planificación multinivel, los procesos pueden cambiar de una cola a otra (conocido
como colas realimentadas), para estos cambios se definen criterios.
Condición primaria de la ejecución del programa: Que las colas estén vaciás y el
procesador también.
!bandera || !AdministradorColas.getVacio()
Variables principales
Planificador AdministradorColas;
pthread_t threads[NUM_THREADS];
Para el control del proceso que se esta ejecutando en el cpu, se necesita saber de que cola
proviene, ya que cada una de estas tiene un Q asignado; esto es necesario para poder
controlar su tiempo de ejecución. Teniendo que si el tiempo que ha estado el proceso
ejecutándose es igual al tiempo de ejecución asignado, este ha terminado.
Retroalimentación de colas: Cada cola tiene asignado un quantum, si un proceso esta
ejecutando sus lineas de código en el CPU y se vence el quantum, el proceso es sacado del
procesador e ingresado en la cola de menor prioridad que le sigue. Por ejemplo, si se esta
ejecutando un proceso proveniente de la Cola 1 (donde Q=2), y este tenga un tiempo de
ejecución asignado de 3, cuando hayan pasado la unidad de quantum este sera sacado del
procesador e insertado en la cola 2.
Para dar información a todo momento de estado de las colas y la información de cada
proceso, basta con llamar a las funciones de imprimir.