stringtranslate.com

Programación de reparto equitativo

La programación de reparto justo es un algoritmo de programación para sistemas operativos de computadoras en el que el uso de la CPU se distribuye equitativamente entre los usuarios o grupos del sistema, a diferencia de la distribución equitativa de recursos entre los procesos. [1]

Un método común para implementar de manera lógica la estrategia de programación de reparto equitativo es aplicar recursivamente la estrategia de programación round-robin en cada nivel de abstracción (procesos, usuarios, grupos, etc.). El tiempo requerido por round-robin es arbitrario, ya que cualquier división igual del tiempo producirá los mismos resultados.

Este concepto fue desarrollado por primera vez por Judy Kay y Piers Lauder a través de su investigación en la Universidad de Sydney en la década de 1980. [2] [3]

Por ejemplo, si cuatro usuarios (A, B, C, D) están ejecutando un proceso cada uno de manera concurrente, el planificador dividirá de manera lógica los ciclos de CPU disponibles de modo que cada usuario obtenga el 25% del total (100% / 4 = 25%). Si el usuario B inicia un segundo proceso, cada usuario recibirá el 25% de los ciclos totales, pero a cada uno de los procesos del usuario B se le atribuirá ahora el 12,5% del total de ciclos de CPU cada uno, lo que totalizará la parte justa del usuario B del 25%. Por otro lado, si un nuevo usuario inicia un proceso en el sistema, el planificador redistribuirá los ciclos de CPU disponibles de modo que cada usuario obtenga el 20% del total (100% / 5 = 20%).

Otra capa de abstracción nos permite dividir a los usuarios en grupos y aplicar el algoritmo de reparto equitativo a los grupos también. En este caso, los ciclos de CPU disponibles se dividen primero entre los grupos, luego entre los usuarios dentro de los grupos y, finalmente, entre los procesos para ese usuario. Por ejemplo, si hay tres grupos (1,2,3) que contienen tres, dos y cuatro usuarios respectivamente, los ciclos de CPU disponibles se distribuirán de la siguiente manera:

100% / 3 grupos = 33,3% por grupo
Grupo 1: (33,3% / 3 usuarios) = 11,1% por usuario
Grupo 2: (33,3% / 2 usuarios) = 16,7% por usuario
Grupo 3: (33,3% / 4 usuarios) = 8,3% por usuario

Referencias

  1. ^ Opiniones (21 de noviembre de 2018). "Las principales preguntas de la entrevista para el perfil del puesto de ingeniero de datos". Revista Analytics India . Consultado el 15 de diciembre de 2021 .
  2. ^ Kay, J.; Lauder, P. (enero de 1988). "Un programador de reparto justo". Comunicaciones de la ACM . 31 (1): 44–55. doi : 10.1145/35043.35047 . S2CID  585052.
  3. ^ "Judy Kay: Programador de FairShare". Judy Kay. Archivado desde el original el 26 de marzo de 2018. Consultado el 24 de enero de 2018 .