En los sistemas informáticos y de comunicación, un programador que conserva el trabajo es un programador que siempre intenta mantener ocupados los recursos programados, si hay trabajos enviados listos para ser programados. Por el contrario, un programador que no conserva el trabajo es un programador que, en algunos casos, puede dejar los recursos programados inactivos a pesar de la presencia de trabajos listos para ser programados.
Por ejemplo, cuando se trata de redes y programación de paquetes , un programador que conserva el trabajo [1] [2] deja el canal inactivo solo cuando no hay paquetes para transmitir, mientras que un programador que no conserva el trabajo puede dejar el canal inactivo con paquetes aún. pendiente de transmisión .
De manera similar, cuando se hace referencia a la programación de la CPU , es decir, subprocesos o procesos programados sobre uno o más procesadores o núcleos disponibles , un planificador de conservación de trabajo [3] asegura que los procesadores / núcleos no estén inactivos si hay procesos / subprocesos listos para su ejecución .
Los programadores que no conservan el trabajo a veces son útiles para mejorar la previsibilidad y reducir la fluctuación de terminación para las actividades realizadas por un sistema informático y de comunicaciones. En los sistemas multiprocesador , son útiles para mejorar el rendimiento en algunos escenarios. [4] [5] A veces, un planificador que no conserva el trabajo puede resultar útil para mejorar la estabilidad de un sistema; Por ejemplo, un programador de procesos puede optar por mantener los procesos fuera de la cola de ejecución si existiera la preocupación de que la suma de los conjuntos de trabajo de todos los procesos ejecutables excedería la memoria disponible y conduciría a una sobrecarga de eliminación de páginas no lineal. Limitar la cola de ejecución de esta manera podría conducir a una subutilización de los procesadores disponibles (y por lo tanto no conservar el trabajo) con el objetivo de evitar situaciones en las que el sistema no se pueda utilizar debido a la falla.
Referencias
- ^ [1] Padma Mundur, Mejora de la calidad de servicio en redes IP (material del curso para redes multimedia )
- ^ [2] Jon Crowcroft, Programación y gestión de colas (material del curso para Comunicaciones digitales II )
- ^ [3] G. Buttazzo, G. Lipari, L. Abeni, M. Caccamo, Soft Real-Time Systems: Predictability vs. Efficiency, Springer 2005
- ^ [4] A. Fedorova, M. Seltzer y MD Smith, "Un programador de sistema operativo que no conserva el trabajo para procesadores SMT", en Actas del taller sobre la interacción entre sistemas operativos y arquitectura informática, en conjunto con ISCA 2006
- ^ [5] JC Sáez, JI Gomez y M. Prieto, "Mejorar el cumplimiento de prioridades mediante la programación que no conserva el trabajo", procesamiento paralelo, 2008. ICPP '08. 37th International Conference on, Portland, OR, 2008, págs. 99-106.