1

docs/sp_Sp: Add translation to spanish of the documentation related to EEVDF

Translate Documentation/scheduler/sched-eevdf.rst to Spanish.

Signed-off-by: Sergio González Collado <sergio.collado@gmail.com>
Reviewed-by: Carlos Bilbao <carlos.bilbao.osdev@gmail.com>
[jc: fixed build warning]
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Link: https://lore.kernel.org/r/20240824095402.7706-1-sergio.collado@gmail.com
This commit is contained in:
Sergio González Collado 2024-08-24 11:54:02 +02:00 committed by Jonathan Corbet
parent 14ac4cac4d
commit 6ffc34cefc
3 changed files with 63 additions and 4 deletions

View File

@ -6,3 +6,4 @@
:maxdepth: 1
sched-design-CFS
sched-eevdf

View File

@ -14,10 +14,10 @@ Gestor de tareas CFS
CFS viene de las siglas en inglés de "Gestor de tareas totalmente justo"
("Completely Fair Scheduler"), y es el nuevo gestor de tareas de escritorio
implementado por Ingo Molnar e integrado en Linux 2.6.23. Es el sustituto de
el previo gestor de tareas SCHED_OTHER.
Nota: El planificador EEVDF fue incorporado más recientemente al kernel.
implementado por Ingo Molnar e integrado en Linux 2.6.23. Es el sustituto
del previo gestor de tareas SCHED_OTHER. Hoy en día se está abriendo camino
para el gestor de tareas EEVDF, cuya documentación se puede ver en
Documentation/scheduler/sched-eevdf.rst
El 80% del diseño de CFS puede ser resumido en una única frase: CFS
básicamente modela una "CPU ideal, precisa y multi-tarea" sobre hardware

View File

@ -0,0 +1,58 @@
.. include:: ../disclaimer-sp.rst
:Original: Documentation/scheduler/sched-eevdf.rst
:Translator: Sergio González Collado <sergio.collado@gmail.com>
======================
Gestor de tareas EEVDF
======================
El gestor de tareas EEVDF, del inglés: "Earliest Eligible Virtual Deadline
First", fue presentado por primera vez en una publicación científica en
1995 [1]. El kernel de Linux comenzó a transicionar hacia EEVPF en la
versión 6.6 (y como una nueva opción en 2024), alejándose del gestor
de tareas CFS, en favor de una versión de EEVDF propuesta por Peter
Zijlstra en 2023 [2-4]. Más información relativa a CFS puede encontrarse
en Documentation/scheduler/sched-design-CFS.rst.
De forma parecida a CFS, EEVDF intenta distribuir el tiempo de ejecución
de la CPU de forma equitativa entre todas las tareas que tengan la misma
prioridad y puedan ser ejecutables. Para eso, asigna un tiempo de
ejecución virtual a cada tarea, creando un "retraso" que puede ser usado
para determinar si una tarea ha recibido su cantidad justa de tiempo
de ejecución en la CPU. De esta manera, una tarea con un "retraso"
positivo, es porque se le debe tiempo de ejecución, mientras que una
con "retraso" negativo implica que la tarea ha excedido su cuota de
tiempo. EEVDF elige las tareas con un "retraso" mayor igual a cero y
calcula un tiempo límite de ejecución virtual (VD, del inglés: virtual
deadline) para cada una, eligiendo la tarea con la VD más próxima para
ser ejecutada a continuación. Es importante darse cuenta que esto permite
que la tareas que sean sensibles a la latencia que tengan porciones de
tiempos de ejecución de CPU más cortos ser priorizadas, lo cual ayuda con
su menor tiempo de respuesta.
Ahora mismo se está discutiendo cómo gestionar esos "retrasos", especialmente
en tareas que estén en un estado durmiente; pero en el momento en el que
se escribe este texto EEVDF usa un mecanismo de "decaimiento" basado en el
tiempo virtual de ejecución (VRT, del inglés: virtual run time). Esto previene
a las tareas de abusar del sistema simplemente durmiendo brevemente para
reajustar su retraso negativo: cuando una tarea duerme, esta permanece en
la cola de ejecución pero marcada para "desencolado diferido", permitiendo
a su retraso decaer a lo largo de VRT. Por tanto, las tareas que duerman
por más tiempo eventualmente eliminarán su retraso. Finalmente, las tareas
pueden adelantarse a otras si su VD es más próximo en el tiempo, y las
tareas podrán pedir porciones de tiempo específicas con la nueva llamada
del sistema sched_setattr(), todo esto facilitara el trabajo de las aplicaciones
que sean sensibles a las latencias.
REFERENCIAS
===========
[1] https://citeseerx.ist.psu.edu/document?repid=rep1&type=pdf&doi=805acf7726282721504c8f00575d91ebfd750564
[2] https://lore.kernel.org/lkml/a79014e6-ea83-b316-1e12-2ae056bda6fa@linux.vnet.ibm.com/
[3] https://lwn.net/Articles/969062/
[4] https://lwn.net/Articles/925371/