€•º4Œsphinx.addnodes”Œdocument”“”)”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)”}”(hhh]”(hŒ pending_xref”“”)”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒEnglish”…””}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ/scheduler/sched-eevdf”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Simplified)”…””}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ)/translations/zh_CN/scheduler/sched-eevdf”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ)/translations/zh_TW/scheduler/sched-eevdf”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ)/translations/it_IT/scheduler/sched-eevdf”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ)/translations/ja_JP/scheduler/sched-eevdf”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ)/translations/ko_KR/scheduler/sched-eevdf”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒSpanish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒwarning”“”)”}”(hX?Si tiene alguna duda sobre la exactitud del contenido de esta traducción, la única referencia válida es la documentación oficial en inglés. Además, por defecto, los enlaces a documentos redirigen a la documentación en inglés, incluso si existe una versión traducida. Consulte el índice para más información.”h]”hŒ paragraph”“”)”}”(hX?Si tiene alguna duda sobre la exactitud del contenido de esta traducción, la única referencia válida es la documentación oficial en inglés. Además, por defecto, los enlaces a documentos redirigen a la documentación en inglés, incluso si existe una versión traducida. Consulte el índice para más información.”h]”hX?Si tiene alguna duda sobre la exactitud del contenido de esta traducción, la única referencia válida es la documentación oficial en inglés. Además, por defecto, los enlaces a documentos redirigen a la documentación en inglés, incluso si existe una versión traducida. Consulte el índice para más información.”…””}”(hh©hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸŒ2Documentation/translations/sp_SP/disclaimer-sp.rst”h Khh£ubah}”(h]”h ]”h"]”h$]”h&]”uh1h¡hhhžhhŸh·h NubhŒ field_list”“”)”}”(hhh]”(hŒfield”“”)”}”(hhh]”(hŒ field_name”“”)”}”(hŒOriginal”h]”hŒOriginal”…””}”(hhÊhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÈhhÅhŸŒV/var/lib/git/docbuild/linux/Documentation/translations/sp_SP/scheduler/sched-eevdf.rst”h KubhŒ field_body”“”)”}”(hŒ'Documentation/scheduler/sched-eevdf.rst”h]”h¨)”}”(hhÝh]”hŒ'Documentation/scheduler/sched-eevdf.rst”…””}”(hhßhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh KhhÛubah}”(h]”h ]”h"]”h$]”h&]”uh1hÙhhÅubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÃhŸhØh KhhÀhžhubhÄ)”}”(hhh]”(hÉ)”}”(hŒ Translator”h]”hŒ Translator”…””}”(hhûhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÈhhøhŸhØh KubhÚ)”}”(hŒ4Sergio González Collado ”h]”h¨)”}”(hŒ3Sergio González Collado ”h]”(hŒSergio González Collado <”…””}”(hj hžhhŸNh NubhŒ reference”“”)”}”(hŒsergio.collado@gmail.com”h]”hŒsergio.collado@gmail.com”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œmailto:sergio.collado@gmail.com”uh1jhj ubhŒ>”…””}”(hj hžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh Khj ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÙhhøubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÃhŸhØh KhhÀhžhubeh}”(h]”h ]”h"]”h$]”h&]”uh1h¾hhhžhhŸhØh KubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒGestor de tareas EEVDF”h]”hŒGestor de tareas EEVDF”…””}”(hjJhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjEhžhhŸhØh K ubh¨)”}”(hXå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.”h]”hXé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.”…””}”(hjXhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh K hjEhžhubh¨)”}”(hXDe 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.”h]”hXDe 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.”…””}”(hjfhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh KhjEhžhubh¨)”}”(hX³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.”h]”hX¿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.”…””}”(hjthžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh K#hjEhžhubjD)”}”(hhh]”(jI)”}”(hŒ REFERENCIAS”h]”hŒ REFERENCIAS”…””}”(hj…hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhj‚hžhhŸhØh K2ubh¨)”}”(hŒk[1] https://citeseerx.ist.psu.edu/document?repid=rep1&type=pdf&doi=805acf7726282721504c8f00575d91ebfd750564”h]”(hŒ[1] ”…””}”(hj“hžhhŸNh Nubj)”}”(hŒghttps://citeseerx.ist.psu.edu/document?repid=rep1&type=pdf&doi=805acf7726282721504c8f00575d91ebfd750564”h]”hŒghttps://citeseerx.ist.psu.edu/document?repid=rep1&type=pdf&doi=805acf7726282721504c8f00575d91ebfd750564”…””}”(hj›hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”juh1jhj“ubeh}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh K4hj‚hžhubh¨)”}”(hŒY[2] https://lore.kernel.org/lkml/a79014e6-ea83-b316-1e12-2ae056bda6fa@linux.vnet.ibm.com/”h]”(hŒ[2] ”…””}”(hj°hžhhŸNh Nubj)”}”(hŒUhttps://lore.kernel.org/lkml/a79014e6-ea83-b316-1e12-2ae056bda6fa@linux.vnet.ibm.com/”h]”hŒUhttps://lore.kernel.org/lkml/a79014e6-ea83-b316-1e12-2ae056bda6fa@linux.vnet.ibm.com/”…””}”(hj¸hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”jºuh1jhj°ubeh}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh K6hj‚hžhubh¨)”}”(hŒ$[3] https://lwn.net/Articles/969062/”h]”(hŒ[3] ”…””}”(hjÍhžhhŸNh Nubj)”}”(hŒ https://lwn.net/Articles/969062/”h]”hŒ https://lwn.net/Articles/969062/”…””}”(hjÕhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”j×uh1jhjÍubeh}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh K8hj‚hžhubh¨)”}”(hŒ$[4] https://lwn.net/Articles/925371/”h]”(hŒ[4] ”…””}”(hjêhžhhŸNh Nubj)”}”(hŒ https://lwn.net/Articles/925371/”h]”hŒ https://lwn.net/Articles/925371/”…””}”(hjòhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”jôuh1jhjêubeh}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh K:hj‚hžhubeh}”(h]”Œ referencias”ah ]”h"]”Œ referencias”ah$]”h&]”uh1jChjEhžhhŸhØh K2ubeh}”(h]”Œgestor-de-tareas-eevdf”ah ]”h"]”Œgestor de tareas eevdf”ah$]”h&]”uh1jChhhžhhŸhØh K ubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”hØuh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)”}”(jHNŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”j:Œerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”hØŒ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”(jjj j uŒ nametypes”}”(j‰j ‰uh}”(jjEj j‚uŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ:Documentation/translations/sp_SP/scheduler/sched-eevdf.rst”(NNNNt”†”aŒ decoration”Nhžhub.