WEBVTT

00:00.000 --> 00:01.050
Istruttore: In questa

00:01.050 --> 00:03.240
lezione parleremo della memoria virtuale.

00:03.240 --> 00:05.760
La memoria virtuale, nota anche come file di pagina,

00:05.760 --> 00:06.840
è essenzialmente un

00:06.840 --> 00:09.630
blocco di spazio sul disco rigido o sull'unità a stato

00:09.630 --> 00:11.430
solido che viene allocato dal sistema

00:11.430 --> 00:13.020
operativo e finge di essere memoria,

00:13.020 --> 00:15.840
o RAM, quando la RAM fisica è insufficiente per i programmi

00:15.840 --> 00:18.660
in esecuzione.

00:18.660 --> 00:20.040
Si tratta di un'ottima funzione

00:20.040 --> 00:21.683
della maggior parte dei sistemi operativi

00:21.683 --> 00:23.670
moderni, che consente di emulare la presenza di

00:23.670 --> 00:24.930
una quantità di memoria superiore

00:24.930 --> 00:26.220
a quella reale.

00:26.220 --> 00:27.300
Tenete però presente

00:27.300 --> 00:30.540
che questa non è una soluzione perfetta per tutte le soluzioni

00:30.540 --> 00:33.150
e che si tratta più che altro di una soluzione temporanea;

00:33.150 --> 00:35.850
se si utilizza molta RAM virtuale, probabilmente sarà

00:35.850 --> 00:38.220
necessario aumentare anche la RAM fisica del

00:38.220 --> 00:39.523
sistema.

00:39.523 --> 00:40.777
Perché?

00:40.777 --> 00:42.024
Ricordiamo che, quando

00:42.024 --> 00:43.770
si tratta di diversi tipi di memoria

00:43.770 --> 00:46.890
e di archiviazione, esistono tre tipi principali.

00:46.890 --> 00:49.080
La memoria cache all'interno del processore

00:49.080 --> 00:50.790
è estremamente veloce.

00:50.790 --> 00:53.130
Poi c'è la memoria fisica ad accesso casuale,

00:53.130 --> 00:54.300
o memoria di sistema,

00:54.300 --> 00:56.220
e la RAM è più lenta della cache, ma è

00:56.220 --> 01:00.300
comunque molto più veloce dell'uso di un dispositivo di archiviazione,

01:00.300 --> 01:04.290
come un disco rigido o persino un'unità a stato solido più veloce.

01:04.290 --> 01:06.919
In definitiva, non esiste un vero e proprio sostituto

01:06.919 --> 01:09.690
della memoria fisica, ma in caso di necessità è possibile

01:09.690 --> 01:11.704
utilizzare la RAM virtuale.

01:11.704 --> 01:14.790
Quando si parla di RAM virtuale o di memoria virtuale,

01:14.790 --> 01:15.990
come spesso la chiamiamo,

01:15.990 --> 01:18.150
ne esistono due tipi.

01:18.150 --> 01:20.010
Se si utilizza un sistema

01:20.010 --> 01:22.740
Windows, si parla di file di pagina.

01:22.740 --> 01:25.740
Se si utilizza un sistema Linux, Unix o Mac, questo spazio

01:25.740 --> 01:28.620
viene solitamente chiamato spazio di swap.

01:28.620 --> 01:30.990
Entrambe le cose hanno lo stesso identico significato.

01:30.990 --> 01:32.640
Si tratta essenzialmente di un file

01:32.640 --> 01:34.869
nascosto sul dispositivo di archiviazione che aumenta

01:34.869 --> 01:37.710
di dimensioni e finge di essere la memoria di sistema.

01:37.710 --> 01:39.925
Quindi, quando la memoria fisica del sistema

01:39.925 --> 01:42.600
si esaurisce, i dati vengono trasferiti dalla memoria

01:42.600 --> 01:44.880
fisica al file di pagina o allo spazio di swap,

01:44.880 --> 01:47.910
facendo finta di avere più memoria di quella che si ha.

01:47.910 --> 01:48.840
Un chiaro segnale che indica

01:48.840 --> 01:51.064
che si sta facendo troppo affidamento sulla memoria virtuale

01:51.064 --> 01:53.400
si ha quando si inizia a sentire il disco rigido girare spesso

01:53.400 --> 01:55.741
mentre si lavora su diversi programmi.

01:55.741 --> 01:57.600
Questo perché le cose vengono scambiate

01:57.600 --> 01:59.340
dentro e fuori dal file di pagina o dallo

01:59.340 --> 02:01.470
spazio di swap e di nuovo nella RAM.

02:01.470 --> 02:02.670
E ogni volta che ciò accade,

02:02.670 --> 02:04.830
deve leggere e scrivere dal disco rigido,

02:04.830 --> 02:06.368
rallentando l'intero sistema

02:06.368 --> 02:08.820
e tutti gli altri processi.

02:08.820 --> 02:10.500
Quando si ha a che fare con la memoria

02:10.500 --> 02:11.790
virtuale, il sistema operativo

02:11.790 --> 02:13.180
assegna le posizioni di memoria

02:13.180 --> 02:15.000
ai diversi processi in blocchi di

02:15.000 --> 02:17.535
quattro kilobyte.

02:17.535 --> 02:20.024
Questi pezzi sono noti come pagine.

02:20.024 --> 02:22.050
Ora, il controller di memoria sarà in grado di spostare

02:22.050 --> 02:24.480
le cose all'interno o all'esterno della memoria fisica

02:24.480 --> 02:27.570
utilizzando questi blocchi o pagine da quattro kilobyte, liberando così

02:27.570 --> 02:30.030
una maggiore quantità di memoria fisica.

02:30.030 --> 02:33.210
Ma ricordate che la CPU del sistema non può leggere direttamente

02:33.210 --> 02:36.990
dal disco rigido come può fare dalla memoria usando il suo bus, e quindi quel

02:36.990 --> 02:39.630
materiale deve essere impaginato dentro e fuori dalla

02:39.630 --> 02:41.640
memoria dal file di swap o dal file di pagina

02:41.640 --> 02:43.901
in modo da poterlo usare.

02:43.901 --> 02:46.770
Se iniziate a notare un forte rallentamento del sistema, ricordate

02:46.770 --> 02:49.290
che probabilmente si tratta di un problema di memoria, quindi

02:49.290 --> 02:50.670
controllate la memoria disponibile

02:50.670 --> 02:52.380
e la quantità di memoria libera.

02:52.380 --> 02:54.630
E se non ne avete molta, potrebbe essere il momento

02:54.630 --> 02:56.619
di aggiungere altra memoria fisica.

02:56.619 --> 02:59.160
Nel frattempo, però, è possibile aumentare le dimensioni

02:59.160 --> 03:01.260
della memoria virtuale o del file di pagina o dello

03:01.260 --> 03:03.990
spazio di swap per poterne contenere un po' di più e far credere

03:03.990 --> 03:06.090
al sistema di avere più memoria di quanta ne abbia

03:06.090 --> 03:08.301
in realtà, come soluzione intermedia fino a quando

03:08.301 --> 03:11.553
non sarà possibile installare un modulo fisico di RAM.
