Articulo de referencia

Conjunto de trabajo

El conjunto de trabajo es un concepto en informática que define la cantidad de memoria que requiere un proceso en un intervalo de tiempo determinado. [1] Definición Peter Dennin...

El conjunto de trabajo es un concepto en informática que define la cantidad de memoria que requiere un proceso en un intervalo de tiempo determinado. [1]

Definición

Peter Denning (1968) define "el conjunto de información de trabajo de un proceso en un momento dado como la colección de información a la que hace referencia el proceso durante el intervalo de tiempo del proceso ". [2] Normalmente, las unidades de información en cuestión se consideran páginas de memoria . Se sugiere que esto es una aproximación del conjunto de páginas a las que el proceso accederá en el futuro (por ejemplo, durante las próximas unidades de tiempo) y, más específicamente, se sugiere que es una indicación de qué páginas deben mantenerse en la memoria principal para permitir que se realice el mayor progreso posible en la ejecución de ese proceso. Yo ( a , τ ) {\displaystyle W(t,\tau )} a {\estilo de visualización t} ( a τ , a ) {\displaystyle (t-\tau ,t)} τ {\estilo de visualización \tau}

Razón fundamental

El efecto de la elección de las páginas que se deben mantener en la memoria principal (en lugar de enviarlas al almacenamiento auxiliar) es importante: si se mantienen demasiadas páginas de un proceso en la memoria principal, entonces menos procesos pueden estar listos en un momento dado. Si se mantienen muy pocas páginas de un proceso en la memoria principal, entonces su frecuencia de fallos de página aumenta considerablemente y la cantidad de procesos activos (no suspendidos) que se están ejecutando actualmente en el sistema se acerca a cero.

El modelo de conjunto de trabajo establece que un proceso puede estar en la RAM si y solo si todas las páginas que está utilizando actualmente (que a menudo se aproximan a las páginas utilizadas más recientemente) pueden estar en la RAM. El modelo es un modelo de todo o nada, lo que significa que si aumenta la cantidad de páginas que necesita utilizar y no hay espacio en la RAM, el proceso se intercambia fuera de la memoria para liberarla para que la utilicen otros procesos.

A menudo, una computadora muy cargada tiene tantos procesos en cola que, si se permitiera que todos los procesos se ejecutaran durante un intervalo de tiempo de programación , harían referencia a más páginas que las que hay en RAM, lo que provocaría que la computadora se " bloqueara ".

Al intercambiar algunos procesos de la memoria, el resultado es que los procesos (incluso los que se eliminaron temporalmente de la memoria) terminan mucho antes de lo que lo harían si la computadora intentara ejecutarlos todos a la vez. Los procesos también terminan mucho antes de lo que lo harían si la computadora solo ejecutara un proceso a la vez hasta completarlo, ya que permite que otros procesos se ejecuten y avancen durante los momentos en que un proceso está esperando en el disco duro o en algún otro recurso global.

En otras palabras, la estrategia del conjunto de trabajo evita la sobrecarga y mantiene el grado de multiprogramación lo más alto posible, optimizando así la utilización y el rendimiento de la CPU.

Implementación

El principal obstáculo para implementar el modelo de conjunto de trabajo es realizar un seguimiento del conjunto de trabajo. La ventana del conjunto de trabajo es una ventana móvil. En cada referencia de memoria aparece una nueva referencia en un extremo y la referencia más antigua desaparece en el otro extremo. Una página está en el conjunto de trabajo si se hace referencia a ella en la ventana del conjunto de trabajo.

Para evitar la sobrecarga de mantener una lista de las últimas k páginas referenciadas, el conjunto de trabajo a menudo se implementa manteniendo un registro del tiempo t de la última referencia y considerando que el conjunto de trabajo son todas las páginas referenciadas dentro de un cierto período de tiempo.

El conjunto de trabajo no es un algoritmo de reemplazo de páginas , pero los algoritmos de reemplazo de páginas pueden diseñarse para eliminar únicamente las páginas que no están en el conjunto de trabajo de un proceso en particular. Un ejemplo es una versión modificada del algoritmo de reloj llamado WSClock.

Variantes

El conjunto de trabajo se puede dividir en conjunto de trabajo de código y conjunto de trabajo de datos . Esta distinción es importante cuando el código y los datos están separados en el nivel relevante de la jerarquía de memoria, ya que si alguno de los conjuntos de trabajo no encaja en ese nivel de la jerarquía, se producirá una superación. Además del código y los datos en sí, en los sistemas con memoria virtual , las entradas del mapa de memoria (de memoria virtual a memoria física) de las páginas del conjunto de trabajo deben almacenarse en caché en el búfer de búsqueda de traducción (TLB) para que el proceso avance de manera eficiente. Esta distinción existe porque el código y los datos se almacenan en caché en bloques pequeños ( líneas de caché ), no en páginas completas, pero la búsqueda de direcciones se realiza a nivel de página. Por lo tanto, incluso si los conjuntos de trabajo de código y datos caben en la caché, si los conjuntos de trabajo se dividen en muchas páginas, el conjunto de trabajo de dirección virtual puede no encajar en el TLB, lo que provoca una superación del TLB.

Existen análogos de conjuntos de trabajo para otros recursos limitados, sobre todo para los procesos . Si un conjunto de procesos requiere una interacción frecuente entre varios procesos, entonces tiene unconjunto de trabajo de proceso que debeprogramarse conjuntamentepara poder progresar:[3]

Los programas paralelos tienen un conjunto de trabajo de procesos que debe programarse conjuntamente (programarse para su ejecución simultánea) para que el programa paralelo pueda avanzar.

Si los procesos no están programados simultáneamente (por ejemplo, si hay dos procesos pero solo un núcleo para ejecutarlos), entonces los procesos solo pueden avanzar a un ritmo de una interacción por intervalo de tiempo.

Otros recursos incluyen manejadores de archivos o sockets de red ; por ejemplo, copiar un archivo a otro se hace más simplemente con dos manejadores de archivos: uno para la entrada, uno para la salida, y por lo tanto tiene un tamaño de "conjunto de trabajo de manejadores de archivos" de dos. Si solo hay un manejador de archivos disponible, la copia aún se puede hacer, pero requiere adquirir un manejador de archivos para la entrada, leer de él (por ejemplo, en un búfer), liberarlo, luego adquirir un manejador de archivos para la salida, escribir en él, liberarlo, luego adquirir el manejador de archivos de entrada nuevamente y repetir. De manera similar, un servidor puede requerir muchos sockets, y si es limitado, necesitará liberar y volver a adquirir sockets repetidamente. En lugar de agotar, estos recursos son típicamente necesarios para el programa, y ​​si no puede adquirir suficientes recursos, simplemente falla.

Véase también

Referencias

  1. ^ Denning, Peter J. (2 de febrero de 2021). "Análisis de conjuntos de trabajo". Encuestas de computación de la ACM . 53 (6). Asociación para la Maquinaria Computacional (ACM): 1– 36. doi :10.1145/3399709. ISSN  0360-0300.
  2. ^ Denning, Peter J. (1968). "El modelo de conjunto de trabajo para el comportamiento del programa" (PDF) . Comunicaciones de la ACM . 11 (5): 323– 333. doi :10.1145/363095.363141. S2CID  207669410.
  3. ^ Ousterhout, JK (1982). "Técnicas de planificación para sistemas concurrentes" (PDF) . Actas de la Tercera Conferencia Internacional sobre Sistemas de Computación Distribuida : 22– 30.

Lectura adicional

  • Tanenbaum, Andrew (2009). Sistemas operativos modernos, tercera edición. Págs. 209-210.
  • Denning, PJ (1980). Conjuntos de trabajo pasados ​​y presentes. IEEE Transactions on Software Engineering, 1/1980, volumen SE-6, págs. 64–84. [1]
  • Silberschatz, A., Galvin, PB y Gagne, G. (2005). Conceptos de sistemas operativos, 7.ª edición. Palatino: Wiley. pp. 346.
Obtenido de "https://es.wikipedia.org/w/index.php?title=Conjunto_de_trabajo&oldid=1237726626"