Forse l´abbiamo notato e forse no, ma le declinazioni desktop delle distribuzioni Linux registrano sovente rallentamenti all´interfaccia grafica se pesantemente occupate in altri task (quindi in condizioni di scarsità di risorse, CPU e memoria).
Questo comportamento, a quanto pare, dovrebbe avere le ore contate grazie ad una patch del kernel ad opera dello sviluppatore Mike Galbraith, che modifica il comportamento del task scheduler di Linux e lo porta a tagliare la latenza massima di un ordine di grandezza (10 volte!).
Nessuna parola esprime meglio il miglioramento ottenuto quanto i video che seguono, riportati da Phoronix, il primo senza patch e il secondo in presenza di essa, entrambi registrati in sistemi appesantiti dal processo di compilazione del kernel (make -j64, di modo che siano ben 64 i job paralleli ad occupare l´intera CPU Intel Core i7 970) e dalla riproduzione di un video 1080p Ogg.
Sembra che la patch verrà inclusa nel kernel Linux 2.6.38 e lo stesso Torvalds ha già espresso parere entusiastico.
[youtube uk70SeGA7pg]
[youtube prxInRdaNfc]
Per ciò che concerne i dettagli tecnici, segue la spiegazione dello sviluppatore (che essendo ben al di là delle mie conoscenze tecniche sull´argomento, riporto integralmente):
Each task´s signal struct contains an inherited pointer to a refcounted autogroup struct containing a task group pointer, the default for all tasks pointing to the init_task_group. When a task calls __proc_set_tty(), the process wide reference to the default group is dropped, a new task group is created, and the process is moved into the new task group. Children thereafter inherit this task group, and increase It´s refcount. On exit, a reference to the current task group is dropped when the last reference to each signal struct is dropped. The task group is destroyed when the last signal struct referencing IT is freed. At runqueue selection time, If a task has no cgroup assignment, It´s current autogroup is used.