#104 – Lo SWAP della memoria

Pillole di Bit
Pillole di Bit
#104 - Lo SWAP della memoria
Loading
/

La memoria RAM, quella veloce e costosa, è sempre troppo poca. Per ovviare a questo fatto è stato progettato il sistema che fa SWAP e trasferisce un po’ di memoria dalla RAM al disco. Le prestazioni calano, ma il computer resta funzionante.

Avevo parlato della RAM nella Puntata 8 di questo podcast

Sotto la parte dei contatti c’è l’intero script della puntata.

Pillole di Bit (https://www.pilloledib.it/) è un podcast indipendente realizzato da Francesco Tucci, se vuoi metterti con contatto con me puoi scegliere tra diverse piattaforme:
Telegram (o anche solo il canale dedicato solo ai commenti delle puntate)
TikTok (per ora è un esperimento)
Twitter
BlueSky
– Il mio blog personale ilTucci.com
– Il mio canale telegram personale Le Cose
Mastodon personale
Mastodon del podcast
– la mail (se mi vuoi scrivere in modo diretto e vuoi avere più spazio per il tuo messaggio)

Rispondo sempre

Se questo podcast ti piace, puoi contribuire alla sue realizzazione!
Con una donazione diretta:
– Singola con Satispay
Singola o ricorrente con Paypal
Usando i link sponsorizzati
– Con un acquisto su Amazon (accedi a questo link e metti le cose che vuoi nel carrello)
– Attivando uno dei servizi di Ehiweb
– Iscrivendoti a FiscoZen, se hai la Partita IVA (prima consulenza gratuita e 50€ di sconto sul primo anno)

Se hai donato più di 5€ ricordati di compilare il form per ricevere i gadget!

Il sito è gentilmente hostato da ThirdEye (scrivete a domini AT thirdeye.it), un ottimo servizio che vi consiglio caldamente e il podcast è montato con gioia con PODucer, un software per Mac di Alex Raccuglia


Ciao a tutti e bentornati all’ascolto di Pillole di Bit, questa è la puntata 104 e io sono, come sempre, Francesco.
Oggi parliamo di come funziona lo swap della memoria RAM sul disco fisso.
Innanzitutto cos’è e a cosa serve l’area di swap della memoria?
Partiamo da un passo indietro, per le basi andate ad ascoltare l’episodio 8 sulla memoria RAM.
La RAM (che sta per Random Access Memory – memoria ad accesso casuale) è una memoria che è molto più veloce di quella del disco, per molto intendo diversi ordini di grandezza, ma costa di più e, come detto nella puntata 8, è volatile, quindi se manca l’alimentazione tutto quello che contiene viene perso.
Per poter lavorare, un qualsiasi programma ha bisogno di mettere dei dati nella RAM in modo da averli a disposizione in brevissimo tempo.
Il problema, però, da quando esistono i calcolatori, è sempre solo uno: la RAM è poca e ne servirebbe sempre di più.
Qualche cenno storico.
Il Commodore 16 nel 1984 aveva 16KB di RAM, equivalenti a un po’ più di sedicimila caratteri.
Giusto per fare un esempio, lo script di questa puntata ne ha meno di ottomila.
Il Commodore 64 aveva nel 1982, guarda caso 64KB di RAM, 4 volte di più. Era molto più caro.
MS DOS, in una delle sue prime versioni usava 10 volte la memoria del Commodore 64: 640KB. Anche se il PC ne aveva di più montati sulla scheda, non riusciva a usarne di più di seicento quaranta.
Chi è vecchio come me si ricorderà i floppy disk di avvio con i file di configurazione specifici per poter usare tutto il megabyte acquistato.
Primo, perché alcuni programmi, dai, erano i videogiochi, volevano più RAM.
Secondo perché per quel che costavano, avere parte della RAM inutilizzabile era davvero fastidioso.
Mi ricordo di aver pagato 480.000 Lire 4MB di RAM alla fine degli anni 90.
La famosa frase attribuita a Bill Gates nel 1981 “640k dovrebbero bastare per chiunque” lui nega di averla mai pronunciata.
Adesso si usano computer (e telefoni) che hanno svariati gigabyte di RAM, ma non basta mai.
Abbiamo computer che posso far girare contemporaneamente molti programmi e quindi abbiamo bisogno di tanta, tantissima RAM.
Attenzione, che li facciano girare contemporaneamente è un’illusione, fanno solo una cosa per volta, ma la fanno per brevissimo tempo. Ne parleremo in una delle prossime puntate.
Un facile esempio: il browser Chrome che sto usando per scrivere questa puntata, con tutte le tab aperte, occupa due giga e mezzo di RAM.
Insomma, cosa succede se la RAM finisce?
Se la cosa non fosse gestita, il sistema operativo andrebbe in errore e si bloccherebbe (tipo schermata blu di Windows o kernel panic di Linux e derivate), se il problema è gestito invece non permetterebbe ai programmi di usarne di più di quella che c’è disponibile e questi smetterebbero di funzionare.
I progettisti hanno quindi pensato a un modo per evitare che la RAM possa finire: usano l’altro spazio di memoria a disposizione della macchina: il disco fisso.
Le procedure di gestione di questa parte di memoria spostata su disco, lo swap, appunto sono piuttosto complesse (un po’ come tutto quello che è all’interno di un sistema operativo, magari ne parleremo in qualche puntata più avanti).
Semplificando possiamo dire che a ogni programma in esecuzione sono destinate alcune zone della RAM che lui può usare come meglio crede, che sembrano essere tutte consecutive tra di loro, ma a livello fisico non lo sono.
Ve lo avevo detto che era roba complessa.
Queste parti di memoria sono chiamate pagine e il programma al quale sono destinate, come dicevamo, le usa come crede.
Il sistema operativo, sotto, le gestisce come ritiene meglio, ma il programma non sa come.
Se una pagina di memoria non è usata da molto tempo il sistema operativo la sposta sul disco, liberando lo spazio relativo per altri processi.
Quando la pagina messa sul disco viene richiesta dal processo, questa viene spostata in RAM, eventualmente spostando una pagina non usata da molto tempo sul disco, per liberare spazio.
E qui ci si accorge di quanto possa essere lento il disco.
Se ho bisogno di aggiornare un dato in memoria dico al sistema operativo una cosa del genere:
aggiorna la cella all’indirizzo 152 mettendo la parola “ciao”
Se la pagina dove c’è il dato da aggiornare è in RAM il sistema operativo accede alla cella e la aggiorna. Finito.
Se invece è nell’area di swap la procedura è più lunga
. ah, devo prenderla dallo swap
. ho spazio per metterla in RAM?
. no
. qual è una pagina che non uso da un po’?
. eccola
. la leggo dalla RAM e la scrivo sul disco
. contrassegno come libera la pagina appena messa sul disco
. prendo quella che era sul disco che devo modificare e la leggo dal disco e la scrivo nella RAM
. la aggiorno a “ciao”
Adesso dovrebbe essere facile capire come mai quando la RAM si riempie, l’utilizzo del computer inizia ad essere molto molto lento.
Per essere precisi questi sono i tempi di accesso dei due sistemi.
Per tempo di accesso intendo quanto tempo ci va da che io chiedo un dato a quando ce l’ho.
Il tempo di accesso per la RAM può essere misurato in 15 nano secondi che equivale a 15 miliardesimi di secondo. In un secondo ci stanno 67 milioni di operazioni di questa durata
Il tempo di accesso su un disco può essere misurato in 15 millisecondi, che sono 15 milioni di nanosecondi. In un secondo ci stanno 67 operazioni di questo tipo.
Spero di aver reso l’idea della differenza.
Un tempo si indicava la dimensione corretta da assegnare all’area di swap sul disco, che ai fini del sistema operativo è un grosso file che occupa fisicamente lo spazio.
Adesso, la tecnologia ci aiuta ed è tutto più facile. Fatela gestire dal sistema operativo.
Linux, al contrario di Windows dedica un’intera partizione allo swap con un filesystem diverso da quello normalmente usato per i dati.
Come dicevo, ogni sistema ha i suoi algoritmi per gestire la memoria.
Ad esempio se Windows libera subito la memoria alla chiusura di un processo, MacOS la lascia occupata, ma sovrascrivibile, così se si riapre il programma appena chiuso, non sarà necessario caricarlo tutto in memoria in quanto è già lì. Se se ne apre un altro, allora la memoria viene sovrascritta.
L’area di SWAP sul disco è una zona sulla quale il sistema operativo scrive moltissimo, se possibile non dovrebbe essere posizionata su un disco SSD che ha una sua quantità di scritture massime prima di diventare inutilizzabile.

Il sondaggio
Ho chiuso il sondaggio sul podcast, sono usciti un po’ di dati interessanti.
Innanzitutto grazie a chi ha risposto, direi che in base ai numeri che vedo dagli ascolti ha risposto circa uno su 20.
Le risposte più interessanti sono state solo alcune tra quelle che ho indicato.
La parte puntate belle e brutte me la tengo buona per il futuro, in generale ho capito che apprezzate di più le cose digitali e un po’ meno quelle meccaniche.
Come immaginavo la stragrande maggioranza di voi ascoltatori è di sesso maschile, le donne sono in netta minoranza (1%)
L’età mi ha colpito, più della metà è over 40, il 40% è tra i 20 e i 40, il resto tra i più giovani e i più vecchi.
Ma la cosa che davvero non mi aspettavo è come avete trovato il podcast. Tantissimi ascoltatori sono arrivati tramite le proposte delle app. Per tantissimi intendo molto più della metà. Quindi le classifiche nelle app saranno poco precise, ma a qualcosa servono.
Grazie ancora a tutti per aver partecipato.
per chi è iscritto al gruppo Telegram metterò alcuni grafici con i numeri più precisi.

I contatti
Vi ricordo, come sempre, che trovate tutte le informazioni e i contatti relativi a questo podcast sul sito pillole di bit con il punto prima dell’IT, trovate le note dell’episodio, i link per le donazioni, che sono sempre bene accette e mi danno un grande aiuto a tirare avanti il podcast e tutte le note degli episodi.
Il metodo più facile per comunicare con me è entrare nel gruppo telegram del podcast, una piccola community di un centinaio di persone, si accede da www punto pilloledibit con il punto prima dell’it barra telegram.
Se volete gli adesivi c’è un form da compilare con i vostri dati e a fronte di una donazione, ve li spedisco a casa.
Ho altri due podcast, uno molto più nerd: geekcookies, l’altro non tecnologico, che parla di Torino, la città doive vivo da sempre.
Lo trovate sul sito www punto iltucci punto com barra a torino tutto attaccato.

Il tip
Il tip di questa settimana è per chi usa Linux da poco e ha il problema di dover recuperare il prompt dei comandi una volta lanciato un programma.
Mi spiego meglio.
Se si avvia un programma da riga di comando, questo resta attivo sul monitor e vedrete tutti i suoi messaggi.
Se dovete disconnettervi dalla sessione, il programma cesserà di funzionare alla disconnessione.
Ma se si preme Control e Z vi tornerà il prompt dove potete dare il comando disown.
Domodossola
Imola
Salerno
Otranto
Washington
Napoli
Questo comando sgancia il programma dalla sessione, ma lo manterrà attivo, anche se voi vi disconnettete.
Grazie al gruppo telegram di GeekCookies, dove ho imparato questa nuova cosa.

Bene è proprio tutto, non mi resta che salutarvi e darvi appuntamento alla prossima puntata.