Lucas Zampieri zo spoločnosti Red Hat zverejnil vtipný plánovač úloh scx_horoscope, ktorý prideľuje CPU na základe astrologických princípov, berúc do úvahy znamenia zverokruhu a pozície planét v aktuálnom momente. Projekt sa vyvíja na vzdelávacie a zábavné účely. Kľúčovým cieľom scx_horoscope je vzdelávanie a demonštrácia používania mechanizmu „sched_ext“ (SCX), ktorý umožňuje využívať eBPF na vytváranie plánovačov CPU.
Plánovač je plne funkčný a dosť stabilný, ale neodporúča sa na pracovné použitie, pretože skutočne berie do úvahy pri výpočte priorít procesov retrográdny pohyb planét a fázy mesiaca. Na presné určenie pozície planét sa používa balík astro.
Úlohy sú klasifikované s ohľadom na znamenia zverokruhu a väzby na nebeské telá, napríklad slnko je spojené s kriticky dôležitými procesmi (PID 1, init), mesiac s interaktívnymi úlohami (textové editory, príkazové riadky, emulátory terminálu), merkúr so sieťovými úlohami a vstupom/výstupom, venere s desktopovými úlohami, mars s vysokou záťažou aplikácií (kompilátory, video kódovače), jupiter s procesmi aktívne využívajúcimi pamäť (DBMS, prehliadače), saturn so systémovými pozadím procesmi a vláknami jadra.
Pri negatívnych astrologických faktoroch vplyvu pozície planét, vypočítaného na aktuálny deň, sa uplatňuje zníženie priority o 50 % pre triedu úloh spojenú s planetou. Napríklad pri retrográdnom merkúre sa znižuje priorita pre sieťové a interaktívne úlohy, pri retrográdnom marse – pre náročné úlohy a pri retrográdnej venere – pre desktopové úlohy.
Na prioritu tiež vplýva aktuálna fáza mesiaca – počas splnu získavajú interaktívne úlohy 1,4-krát viac času. Ohnivé a vzdušné znamenia zverokruhu zvyšujú prioritu CPU úloh 1,5-krát, ale znižujú prioritu úloh intenzívne využívajúcich pamäť 0,7-krát. Vodné znamenia znižujú prioritu CPU úloh 0,6-krát, ale zvyšujú prioritu pamäťových úloh 1,3-krát.
V budúcnosti sa plánuje vytvorenie notálnej mapy procesov na základe času ich vytvorenia, predpovedanie času ukončenia procesov podľa horoskopu a zohľadnenie astrológickej kompatibility pri prideľovaní procesov k jadrom CPU.
Zdroj: opennet.ru
