Una patch miracolosa per linux

25 Novembre 2010 0 di Elvio

Nel 1991 lo studente finlandese Linus Torvalds, impegnato presso la University of Helsinki, ebbe l’idea di creare un sistema operativo simile a Unix che potese girare su un comunissimo PC.
Inspirandosi a Minix (S.O. utilizzato per scopi didattici), cominciò a progettare il cuore del sistema, il Kernel (il Kernel ha la funzione di coordinare i processi, la memoria virtuale, il file system, la rete e le periferiche).

Nell’agosto del 1991 Linus Torvalds, finito il suo lavoro, rese pubblico (attraverso un annuncio sui newsgroup) il suo progetto, offrendo a tutti la possibilità di mettere mano ed usare il nuovo sistema operativo battezzato Linux.
In poco tempo si formò una comunità molto ampia di sviluppatori e la cooperazione tra sviluppatori di tutto il mondo permise a Linux di diventare un sistema operativo affidabile e di grande qualità.

E’ proprio per la sua natura quindi che i progressi di Linux, sempre tantissimi ed in costante crescita, dipendono da aggiornamenti mirati e continui al kernel (rigorosamente coordinati, seguiti e controllati dal suo inventore Linus Torvalds).

Pensare quindi che ancora oggi, dopo più di 20 anni di aggiornamenti ed onorato servizio, qualcuno sia riuscito a fare migliorie prestazionali significative sul kernel di linux, sembrerebbe un vero miracolo.
Eppure con una semplice patch (un aggiornamento), lo sviluppatore Mike Galbraith è riuscito ad abbassare i tempi di latenza ed incrementare di molto le prestazioni di Linux (in caso di sovraccarico di CPU).

La patch interverrebbe sulle priorità dei vari processi attivi, orientando il sistema operativo a destinare le risorse disponibili solo sui task (processi) che ne hanno maggior bisogno.
La patch da applicare al kernel va quindi semplicemente a modificare il comportamento dello scheduler dei task che, di conseguenza, riesce ad abbassare i tempi di latenza di ben 10 volte.

Di seguito troverete due filmati dimostrativi effettuati sullo stesso PC (fornito di processore Intel Core i7 970) appesantito da una compilazione del kernel con ben 64 job paralleli (make -j64) e, in aggiunta, la riproduzione di un filmato ad alta risoluzione (per occupare senza scampo l’intera CPU).

Se disponete di una visione fluida dei filmati (quindi una buona scheda grafica ed un buon collegamento internet) noterete come l’appesantimento di CPU che si può notare sul primo filmato (non fornito di patch), sia invece meno significativo sul secondo filmato (con la patch inserita) nonostante il carico di lavoro, riservato alla CPU, non sia in alcun modo variato.
L’efficacia della patch è quindi inoppugnabile e lo stesso Linus Tolvald ha espresso parere entusiastico, garantendo che la nuova patch verrà inclusa sul prossimo aggiornamento del kernel Linux 2.6.38 che uscirà a breve.