Oggi Bart ci ha proposto un’altra delle sue magnifiche pensate.
Parlando dell’importanza della sincronizzazione e della rientranza del codice thread-safe, ha addirittura scomodato il principio di indeterminazione di Heisenberg (sì, per una volta posso anche linkare una voce della Wikipedia in italiano):
Le printf per debuggare un codice concorrente creano più problemi di quanti non ne risolvano: la temporizzazione di queste funzioni, infatti, modifica la velocità di esecuzione del programma e pertanto, un po’ come il principio di indeterminazione di Heisenberg, modificano il comportamento (cioè la posizione) del vostro bug.
Applausi a scena aperta.
Non possiamo che riprendere la pubblicazione su questo blog con le mitiche lezioni di Montrucchio, per gli amici Bart, il mitico assistente di tanti corsi di Sistemi Operativi. La sua nerdizia, da un lato ci riempie di somma gioia a causa della sua bravura, dall’altro ci provoca un certo senso di invidia data la sua inarrivabilità.
Questa mattina, ad esempio, ha tenuto la prima esercitazione del corso di Progettazione di Sistemi Operativi. Le chicche del giorno:
- La differenza tra interrupt e polling per la gestione degli eventi asincroni. Quale migliore modo, se non questo, per spiegarne la differenza?
Ammettiamo che voi dobbiate svegliarvi la mattina alle 6: cosa fate, rimanete svegli la notte a guardare l’orologio finché non arriva l’ora alla quale dovete alzarvi da letto, oppure caricate la sveglia e la impostate affiché suoni alle 6?
- La temporizzazione dei vecchi videogiochi realizzata con cicli for anziché con delle chiamate di attesa, che si sputtanano non appena la frequenza della CPU viene aumentata per innovazione tecnologica
Il buon vecchio tasto TURBO, che, se ricordavate, utilizzavamo quando vedevamo i nostri giochi girare troppo veloci sul buon vecchio Pentium a 12 Mhz.
Bravissimo…