stringtranslate.com

Programador que conserva el trabajo

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 trabaja con 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. Por el contrario, un programador que no conserva el trabajo podría dejar el canal inactivo con paquetes aún pendientes de transmisión .

De manera similar, cuando se hace referencia a la programación de la CPU , es decir, subprocesos o procesos programados en uno o más procesadores o núcleos disponibles , un programador de conservación de trabajo [3] garantiza que los procesadores/núcleos no estén inactivos si hay procesos/subprocesos listos para su ejecución .

Ley de conservación de Kleinrock

Los programadores que conservan el trabajo también se destacan por obedecer la Ley de Conservación de Kleinrock. [4] [5]

En el contexto en el que tenemos conexiones con tasas de llegada de paquetes por unidad de tiempo distribuidas por Poisson que compiten por el tiempo de programación, Leonard Kleinrock estableció la siguiente ley de conservación:

dónde

(Algunas fuentes utilizan para referirse al tiempo necesario para atender un paquete en particular unidades de tiempo por paquete, y utilizan . La ecuación es la misma, la única diferencia es que es el recíproco de la presentada anteriormente).

Comparación con los programadores que no conservan el trabajo

Los programadores que no conservan el trabajo a veces son útiles para mejorar la previsibilidad y reducir la inestabilidad de terminación de las actividades llevadas a cabo por un sistema informático y de comunicación. En sistemas multiprocesador, son útiles para mejorar el rendimiento en algunos escenarios. [6] [7] A veces, un programador que no conserva el trabajo puede ser ú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 excediera la memoria disponible y provocara una sobrecarga 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 sea inutilizable debido al thrashing.

Referencias

  1. ^ [1] Padma Mundur, Mejora de la calidad de servicio en redes IP (material del curso sobre redes multimedia)
  2. ^ [2] Jon Crowcroft, Programación y gestión de colas (material del curso Comunicaciones digitales II)
  3. ^ [3] G. Buttazzo, G. Lipari, L. Abeni, M. Caccamo, Sistemas blandos en tiempo real: previsibilidad versus eficiencia, Springer 2005
  4. ^ Kleinrock, Leonard (1965). "Una ley de conservación para una amplia clase de disciplinas de colas". Naval Research Logistics Quarterly . 12 (2): 181–192. doi :10.1002/nav.3800120206. ISSN  0028-1441.
  5. ^ [4] Jon Crowcroft, Scheduling (material del curso Principios de las comunicaciones)
  6. ^ [5] 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
  7. ^ [6] JC Sáez, JI Gomez y M. Prieto, "Mejora de la aplicación de prioridades mediante una programación que no conserva el trabajo", Procesamiento paralelo, 2008. ICPP '08. 37.ª Conferencia internacional sobre, Portland, OR, 2008, pp. 99-106.