Lucas Zampieri z firmy Red Hat opublikował żartobliwy harmonogram zadań scx_horoscope, który przydziela zasoby CPU na podstawie zasad astrologicznych, uwzględniając znaki zodiaku oraz położenie planet w danym momencie. Projekt rozwija się w celach edukacyjnych i rozrywkowych. Kluczowym celem scx_horoscope jest edukacja i demonstracja użycia mechanizmu „sched_ext” (SCX), który pozwala wykorzystać eBPF do tworzenia harmonogramów CPU.
Harmonogram jest w pełni funkcjonalny i dość stabilny, ale nie jest zalecany do użytku w pracy, ponieważ rzeczywiście uwzględnia przy obliczaniu priorytetów procesów retrogradację planet oraz fazy Księżyca. Do dokładnego określenia pozycji planet użyto pakietu astro.
Zadania są klasyfikowane z uwzględnieniem znaków zodiaku i przypisania do ciał niebieskich, na przykład słońce jest związane z krytycznymi procesami (PID 1, init), księżyc z zadaniami interaktywnymi (edytory, powłoki, emulatory terminala), merkur z zadaniami sieciowymi i operacjami wejścia/wyjścia, wenus z zadaniami desktopowymi, mars z aplikacjami o dużym obciążeniu (kompilatory, enkodery wideo), jowisz z procesami intensywnie zużywającymi pamięć (bazy danych, przeglądarki), a saturn z systemowymi procesami w tle i wątkami jądra.
W przypadku negatywnych wpływów astrologicznych pozycji planet, obliczonej na dany dzień, stosuje się obniżenie priorytetu o 50% dla klasy zadań związanej z planetą. Na przykład, przy retrogradacyjnym merkury zmniejsza się priorytet dla zadań sieciowych i interaktywnych, przy retrogradacyjnym marsie — dla zadań wymagających zasobów, a przy retrogradacyjnej wenus — dla zadań desktopowych.
Na priorytet wpływa również aktualna faza Księżyca — podczas pełni zadania interaktywne zyskują 1,4 razy więcej czasu. Ogniste i powietrzne znaki zodiaku zwiększają priorytet zadań zużywających CPU 1,5 razy, ale obniżają priorytet intensywnie zużywających pamięć zadań 0,7 razy. Wodne znaki zmniejszają priorytet zadań CPU 0,6 razy, ale zwiększają priorytet zadań zużywających pamięć 1,3 razy.
W planach na przyszłość uwzględniono stworzenie mapy procesów w oparciu o czas ich utworzenia, prognozowanie czasu zakończenia procesów na podstawie horoskopu oraz uwzględnienie astrologicznej kompatybilności przy przypisywaniu procesów do rdzeni CPU.
Źródło: opennet.ru
