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 programarse. 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 programarse.

Por ejemplo, cuando se trata de redes y programación de paquetes , un programador que conserva el trabajo [1] [2] deja el canal inactivo sólo 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 que conserva el trabajo [3] garantiza que los procesadores/núcleos no estén inactivos si hay procesos/subprocesos listos para su ejecución .

La 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 distribuidas por Poisson de paquetes por unidad de tiempo, cada uno de los cuales compite por el tiempo de programación, Leonard Kleinrock estableció la siguiente ley de conservación:

dónde

(Algunas fuentes usan para referirse al tiempo para dar servicio a un paquete en particular con unidades de unidad de tiempo por paquete, y usan . La ecuación es la misma, la única diferencia es el recíproco de la presentada anteriormente).

Comparación con programadores que no conservan el trabajo

Los programadores que no conservan el trabajo a veces son útiles para mejorar la previsibilidad y reducir la fluctuación de terminación de las actividades realizadas 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 le preocupa que la suma de los conjuntos de trabajo de todos los procesos ejecutables exceda la memoria disponible y provoque una sobrecarga de página no lineal. Limitar la cola de ejecución de esta manera podría dar lugar 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 quede inutilizable debido a la paliza.

Referencias

  1. ^ [1] Padma Mundur, Mejora de la QOS en redes IP (material del curso para redes multimedia)
  2. ^ [2] Jon Crowcroft, Programación y gestión de colas (material del curso para 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". Logística de investigación naval trimestral . 12 (2): 181-192. doi : 10.1002/nav.3800120206. ISSN  0028-1441.
  5. ^ [4] Jon Crowcroft, Programación (material del curso sobre Principios de comunicación)
  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, junto con ISCA 2006
  7. ^ [6] JC Sáez, JI Gomez y M. Prieto, "Mejora de la aplicación de prioridades mediante programación que no conserva el trabajo", Procesamiento paralelo, 2008. ICPP '08. 37ª Conferencia Internacional sobre Portland, OR, 2008, págs. 99-106.