Ciao, e benvenuto nella quarta puntata della settantesima stagione. Alla fine della scorsa puntata abbiamo lasciato un attore in camerino, pronto a essere messo in pausa e ripreso. Oggi scopriamo perché serve, e come. C'è un fatto scomodo che finora abbiamo aggirato: un processore, in un dato istante, può eseguire una cosa sola. Ma tu hai decine di processi che sembrano andare tutti insieme. Come si tiene in piedi questa illusione? La risposta è la magia più ipnotica del sistema operativo.
Partiamo dal trucco, che è tanto semplice quanto sfacciato: la velocità. Il sistema operativo non fa girare i processi davvero insieme. Li fa girare a turno, un pezzettino ciascuno, ma passando dall'uno all'altro così in fretta che tu non te ne accorgi. Dà qualche millesimo di secondo al browser, poi lo mette in pausa e ne dà un po' all'editor, poi al programma della musica, e così via, migliaia di volte al secondo. È come un giocoliere con un piatto solo, che corre da un bastoncino all'altro dandogli una spinta appena in tempo, prima che caschi. Da fuori sembrano dieci piatti che girano insieme. In realtà è un piatto solo, e un giocoliere velocissimo.
Vediamo il momento cruciale, quello che rende tutto possibile e ha un costo: il cambio di contesto. Quando il sistema operativo toglie il processore a un processo per darlo a un altro, deve fare esattamente ciò che dicevamo del camerino. Prima annota tutto lo stato del processo che va in pausa: a che punto era, i valori che aveva in mano, tutto. Lo mette da parte con cura. Poi tira fuori lo stato del processo che riprende, quello che aveva messo via prima, e lo rimette esattamente com'era. Solo allora quel processo riparte, e per lui è come se non fosse passato nessun tempo. Questo salvataggio e ripristino è il cambio di contesto, ed è il gesto che il sistema operativo compie migliaia di volte al secondo.
Nota una cosa che collega questa puntata a due stagioni fa. Ricordi quando parlavamo dello stato di un programma in esecuzione, la fotografia di dove è arrivato e cosa sta maneggiando? Il cambio di contesto è proprio salvare e ripristinare quella fotografia. Ed è anche il motivo per cui non è gratis. Fermare un attore, annotargli tutto, tirarne fuori un altro e rimetterlo in scena richiede tempo, un tempo in cui il processore non sta facendo lavoro utile per nessuno: sta solo cambiando i piatti. Se il sistema cambia troppo spesso, passa più tempo a spostare attori che a farli recitare. C'è sempre un equilibrio da trovare.
E qui entra in scena il regista invisibile: chi decide a chi tocca, e per quanto? Questo è il compito dello schedulatore, la parte del sistema operativo che assegna i turni. E non è una decisione banale, perché i processi non sono tutti uguali. Alcuni hanno fretta e devono rispondere subito, come quello che gestisce il tuo clic del mouse: se aspetta, tu senti il computer lento. Altri fanno un lavoro lungo in sottofondo, e non gli importa di aspettare un po'. Lo schedulatore deve fare il regista di una compagnia dove ogni attore vorrebbe stare sempre in scena, e trovare un ordine che accontenti tutti abbastanza.
C'è una tensione, qui, che vale la pena vedere, perché non ha una soluzione perfetta. Da un lato vuoi che il sistema sia reattivo: che quando fai qualcosa, risponda subito. Dall'altro vuoi che sia efficiente: che porti a termine tanto lavoro, senza sprecare tempo a cambiare continuamente. Ma queste due cose tirano in direzioni opposte. Per essere reattivo devi interrompere spesso, e ogni interruzione costa. Per essere efficiente devi interrompere poco, ma allora chi ha fretta aspetta. Non esiste la scelta giusta in assoluto: esiste quella adatta a cosa ti serve, e infatti sistemi diversi scelgono in modo diverso. Ne riparleremo verso la fine della stagione.
Voglio lasciarti con l'immagine che rende tutto vivido. Immagina un palcoscenico con un solo riflettore, che può illuminare un attore alla volta. Dietro le quinte ci sono venti attori, ognuno con la sua scena da fare. Il riflettore salta dall'uno all'altro fulmineo: illumina il primo per un istante, poi il secondo, poi il terzo. Se salta abbastanza in fretta, il pubblico ha l'impressione che tutti recitino insieme, che il palco sia pieno di vita simultanea. Ma sul palco, in ogni singolo istante, c'è sempre e solo un attore illuminato. Quella luce che salta è il processore. E la mano che la muove, con ritmo e giudizio, è il sistema operativo.
Per oggi ci fermiamo qui. Abbiamo svelato come un solo processore ospiti tanti processi: non insieme, ma a turno, passando dall'uno all'altro così in fretta da creare l'illusione della simultaneità, come un giocoliere con un piatto solo. Il gesto che lo permette è il cambio di contesto: annotare lo stato di chi va in pausa e ripristinare quello di chi riprende, la stessa fotografia dello stato di due stagioni fa. Non è gratis: cambiare troppo spesso spreca tempo. A decidere i turni è lo schedulatore, un regista che deve bilanciare chi ha fretta e chi può aspettare, tra reattività ed efficienza, senza una soluzione perfetta. Nella prossima puntata: la memoria che non c'è. Nelle note trovi qualche spunto. Se ti è utile, condividila. Grazie per l'ascolto, e ci sentiamo alla prossima.