Perché è possibile modificare 250 gb di file su un 16GB notebook

0
192
ani-obottleneck-5611.jpg

Un I/O collo di bottiglia.

Robin Harris

Retroscena

Per decenni la memoria fisica è incredibilmente costoso. Come risultato, molte macchine è venuto con la capacità di memoria che oggi appaiono risibili. Non gigabyte, o in megabyte, ma kilobyte. Il più piccolo IBM 360 mainframe fatto fare con un piccolo 8KB di memoria principale nel 1960. Anche nel 1980, RAM costano più di $1000 megabyte. Oggi, è la metà di un centesimo.

Perché i ricordi erano così piccoli, ogni programma doveva essere infilata nella capacità disponibile. Programmi andati a elaborare lunghezze per spostare i segmenti di memoria (RAM) fisica.

Ma nel 1970 architetti ha avuto una brillante idea: estendere la memoria fisica attraverso la virtualizzazione di esso e l’utilizzo di memoria del disco rigido per una maggiore capacità. Il sistema operativo dovrebbe gestire il problema di spostamento di segmenti di programma in memoria fisica, il salvataggio di programmatori indicibile dolore.

E lo hanno fatto. IBM 370 serie MVS (Più memoria Virtuale) e DEC VMS (Memoria Virtuale del Sistema, l’esecuzione di Virtual Address Extension (VAX) hardware) sono due popolari istanze di sistemi con memoria virtuale. Al momento i dettagli — come migliori dimensioni di pagina e limitin botte — sono stati oggetto di accesi dibattiti.

Nel corso del tempo, il migliore in tutto disegni sono stati dimostrati, ottimizzato, e copiato. Oggi la memoria virtuale è realizzata in processori x86 – e la maggior parte delle altre Cpu — e sistemi operativi supportati. Come risultato, la maggior parte delle persone non ha idea della sua esistenza, è così fluida ed efficiente.

La memoria virtuale nozioni di base

Quando il fuoco di un’applicazione, il sistema operativo assegna uno spazio di indirizzi virtuali. In Windows 8.1 e, successivamente, con 64 bit, app, che spazio di indirizzi è un forte 128TB, mentre macOS offre un ginormous 18 exabyte di spazio indirizzabile per i processi a 64 bit. A 32 bit, le applicazioni sono limitate a un massimo di 4 gb di memoria virtuale e a volte meno.

Il sistema operativo — Windows, Linux o macOS, quindi gestisce virtuale in indirizzo fisico di traduzione e di scambio di in e out di RAM fisica attiva segmenti di programma. In genere i segmenti (o le pagine), che sono di 4 o di 8 KB. La CPU fornisce l’assistenza hardware per il sistema operativo per tenere traccia di milioni o addirittura miliardi di pagine.

Come fa il sistema operativo sapere quali pagine mantenere in memoria fisica? Il sistema operativo tiene traccia dei meno utilizzati di recente pagine per ogni processo e poiché la domanda per la memoria fisica si sviluppa, scambia la meno utilizzata pagine per liberare RAM per più pagine attive.

Naturalmente, la velocità con cui le pagine possono essere scambiati, ha un enorme impatto sulle prestazioni del sistema. Ecco perché avanzati PCIe/NVMe unità — come quelli che negli ultimi MacBook Pro — sono di vitale importanza.

Archiviazione di latenza è fondamentale

Con i tempi di accesso misurata in microsecondi, il tempo necessario per scambiare una pagina è ridotto da 6 a 10 millisecondi su un disco rigido, potenzialmente (non ho visto i tempi di accesso per i nuovi MacBook Pro Ssd), 10 µsec — un migliaio di volte più veloce. Dal momento che molti PCIe/NVMe, questi sono i tempi di accesso in 3-4 sec gamma, il nuovo Mac Ssd potrebbe essere di 2-3 mila volte più veloce di un disco rigido.

Più recenti Mac utilizzare gli Ssd. Di nuovo, la latenza parametri di riferimento sono scarse, ma altri ad alte prestazioni Ssd SATA hanno latenze in 100-150 µsec, il che rende il nuovo Mac Ssd potenzialmente 10-50 volte più veloce. La linea di fondo è che è molto veloce lo storage di memoria virtuale più veloce e rende pesantemente caricato sistema molto più reattivo e performante.

Come ogni sistema, un sistema di memoria virtuale può essere sovraccaricato. Se siete in rapida commutazione tra le applicazioni ad uso intensivo di memoria, come un editor video, Photoshop, DAW, un video programma di effetti e di uno strumento di compressione, il sistema potrebbe rallentare la swap traffico travolge il sistema di I/O. Suggerimento Pro: non farlo!

L’Archiviazione Bit prendere

Da un bordo di taglio funzionalità durante gli anni ‘ 70 onnipresente e dimenticato, 10s, la memoria virtuale è la tecnologia che consente il vostro notebook o desktop per eseguire insiemi di dati che sono ben oltre la dimensione della RAM. Mi comunemente modifica 250GB ProRes file video sul mio cinque anni 16GB MacBook Pro — senza maxing l’utilizzo della RAM.

Nella mia esperienza, la maggior parte dei problemi di prestazioni che pro app non sono virtuali memoria-assumendo una capacità di stoccaggio sufficiente-ma ruotano intorno inefficiente codice, insufficiente di CPU o di prestazioni grafiche, o altri colli di bottiglia nel sistema di driver o reti. In futuro, con l’avvento di high-performance non-volatile RAM, si può essere in grado di farla finita con la memoria virtuale di sistemi del tutto, la sua sostituzione con multi-terabyte di memoria principale che combinano RAM e storage in un unico spazio di indirizzi.

Ma almeno cinque anni e una storia per un altro post.

Cortesi i commenti sono benvenuti, naturalmente.