Devo disabilitare il file di scambio se ho molta RAM o devo spostarlo su un'unità RAM virtuale?


97

Immagina di avere tonnellate di RAM. Diciamo 64 GB. Questo è molto anche per i PC da gioco. Ora il percorso predefinito di un file di paging in Windows si trova sull'unità principale del sistema operativo, che si tratti di HDD o SSD, che sono più veloci in generale, ma comunque non veloci come la RAM.

Qualcosa mi dice che disabilitare il file di paging sul disco rigido o creare un disco RAM virtuale e lasciare che il file di paging sia lì potrebbe far spostare Windows tutta la sua memoria virtuale su RAM, e quindi aumentare le prestazioni del sistema, ma non ne sono molto informato area, quindi potrebbe non essere affatto vero.

Ho provato entrambi, ma non ho potuto analizzare i risultati per raggiungere una conclusione definitiva con il mio livello di conoscenza nelle cose della memoria.

Funzionerebbe? Se no, perché?


57
Avere un file di paging su un disco RAM non realizza mai nulla. Si toglie una certa quantità di memoria disponibile e si aggiunge una certa quantità di memoria virtuale. Null-sum. Non hai file di paging.
usr

14
In qualche modo ha senso farlo su Linux in alcuni casi in cui il disco ram che ospita il file di scambio è effettivamente compresso. Vedi: en.wikipedia.org/wiki/Zram . Tuttavia, non credo che Windows abbia una tale funzionalità disponibile.
Matt H,

2
La risposta è sì ma ci sono molti non credenti.
Mehrdad,

14
@ user367257 creare un disco ram su cui archiviare il tuo file di paging è come prestare al tuo amico £ 10 in modo che abbia abbastanza soldi per permetterti di prendere in prestito £ 10 da lui. Potrebbe essere tecnicamente possibile, ma tutto ciò che hai realizzato è complicare inutilmente un viaggio verso il nulla.
Rob Moir,

2
Lo farei (e lo farei) solo per un SSD, dato che ricevi solo così tante scritture (anche se ora è molto), con 6 GB. Funziona bene.
Ry,

Risposte:


134

Non importa quanta RAM hai, vuoi che il sistema sia in grado di usarlo in modo efficiente. Non avere alcun file di paging impone al sistema operativo di utilizzare la RAM in modo inefficiente per due motivi. Innanzitutto, non può rendere le pagine scartabili, anche se non sono state né accedute né modificate da molto tempo, il che costringe la cache del disco ad essere più piccola. In secondo luogo, deve riservare la RAM fisica per eseguire il backup di allocazioni che è molto improbabile che possano mai richiederlo (ad esempio, un mapping di file modificabile privato), portando a un caso in cui è possibile avere molta RAM fisica gratuita e tuttavia le allocazioni vengono rifiutate evitare di impegnarsi eccessivamente.

Si consideri, ad esempio, se un programma crea una mappatura della memoria privata scrivibile di un file da 4 GB. Il sistema operativo deve riservare 4 GB di RAM per questa mappatura, perché il programma potrebbe concepibilmente modificare ogni byte e non c'è altro posto che RAM per memorizzarlo. Quindi immediatamente, 4 GB di RAM vengono sostanzialmente sprecati (può essere utilizzato per memorizzare nella cache pagine del disco pulite, ma questo è tutto).

È necessario disporre di un file di paging se si desidera ottenere il massimo dalla RAM, anche se non viene mai utilizzato. Funziona come una polizza assicurativa che consente al sistema operativo di utilizzare effettivamente la RAM in suo possesso, piuttosto che doverlo riservare a possibilità straordinariamente improbabili.

Le persone che hanno progettato il comportamento del tuo sistema operativo non sono pazzi. Avere un file di paging offre al sistema operativo più opzioni e non ne farà di cattive.

Non ha senso provare a mettere un file di paging nella RAM. E se hai molta RAM, è molto improbabile che venga utilizzato il file di paging (deve solo essere lì), quindi non importa in particolare quanto sia veloce il dispositivo su cui si trova.


9
Stavo contraddicendo il downvote. Ma al tuo ultimo commento: corro 2 macchine diverse senza scambio. Va benissimo se sai esattamente come verrà utilizzata la macchina.
spudone,

6
Ho il sospetto che il file di paging in un ramdrive sia iniziato come una "soluzione alternativa" di culto del carico per il fatto che alcuni software si rifiuteranno di avviarsi se rileva che non esiste un file di paging. (Mi è stato detto che gli strumenti grafici / video di Adobe lo fanno.)
Dan Neely,

8
@DavidSchwartz Le informazioni fornite sono tecnicamente corrette ed è una buona informazione da sapere. Ma la conclusione che ti viene in mente che dovresti sempre avere un file di paging indipendentemente da quanta RAM hai non è corretta e sostengo la mia affermazione che questa non dovrebbe essere la risposta accettata.
Jason Wheeler,

5
Non mi piace sentire che "i file di paging sono magici, quindi non spegnerli o ti dispiacerà" quando so che in molte circostanze comuni puoi disattivarli e vedere in sicurezza un miglioramento delle prestazioni perché non aumentano più l'I / O del disco del 100% o più ogni volta che l'MMS vuole fare qualcosa. Tutto ciò che voglio sentire dalle persone dall'altra parte di questo dibattito è "sì, ci sono circostanze in cui è possibile disattivarle e ridurre l'I / O del disco che può provocare il thrashing". Non sto dicendo che i file di paging sono sempre cattivi, forse puoi dire che non sono sempre necessari.
Fred Hamilton,

5
Mi sono reso conto che ciò che mi turbava di tutto ciò è che una parte sembra dire "i file di paging non fanno altro che bene" e l'altro lato è "i file di paging sono terribili" e quindi le persone si trincerano da una parte o dall'altra. La "verità" è che in alcuni casi sono molto utili e persino anti-crash e in altri casi non sono necessari e possono effettivamente ridurre le prestazioni. Sono contento di ciò come la mia dichiarazione finale a prescindere. Vivi a lungo e prospera, @David Schwartz.
Fred Hamilton,

32

Hai pienamente ragione nel tuo assunto.

Gli algoritmi di gestione della memoria sono molto complessi e sicuramente non perfetti. Quindi lo scambio avviene anche quando c'è molta RAM di riserva. Su alcuni sistemi, ad esempio Linux, puoi controllare lo swappiness , su altri no. Scambiando i dati quando c'è ancora molta RAM, il sistema a modo suo si prepara alla situazione in cui potrebbe esaurire la RAM.

Quindi disabilitare la funzionalità di scambio potrebbe darti il ​​miglioramento delle prestazioni perché userai solo la RAM che è più veloce come hai già detto.

Una cosa da considerare (e l'hai già menzionata): devi avere abbastanza RAM per ospitare tutti i programmi che stai eseguendo, altrimenti rischi di rimanere senza memoria . In questo caso le prestazioni diminuiranno, alcuni processi potrebbero essere terminati dal sistema operativo e il sistema potrebbe subire arresti anomali / blocchi. (leggi di più qui )

Su alcuni computer, in particolare quelli che mantengono il file di scambio su HDD e non su SSD, l'effetto della disabilitazione dello scambio è molto evidente. Su altri non è così ovvio. Ma anche se non ottieni un evidente miglioramento, pensaci in un altro modo, disabilitando lo scambio ti risparmierai un po 'di spazio su disco sul tuo SSD.

Disabilitando lo scambio, impedirai anche agli algoritmi di memoria di eseguire operazioni non necessarie - spostare i dati dalla RAM allo scambio e viceversa - in caso di SSD ciò impedirà un'eccessiva usura. E in ogni caso ciò migliorerà le prestazioni eliminando operazioni non necessarie.

Leggi anche:


2
@ChrisH Probabilmente non saresti in grado di caricare un database sql in un elaboratore di testi, dal momento che quelli vengono eseguiti interamente nella RAM :-)
TylerH,

9
Questa risposta è errata e contiene molte informazioni errate. Ma il modo semplice per capire perché è sbagliato è questo: le persone che hanno progettato il comportamento della memoria del tuo sistema operativo sono probabilmente alcune delle persone più intelligenti al mondo. Perché dovrebbero progettare un sistema in modo tale da dargli più opzioni (l'opzione di scambiare se, e solo se, pensa che sia meglio) peggiorerebbe le sue prestazioni? Solo un idiota progetterebbe un sistema del genere.
David Schwartz,

17
@DavidSchwartz, non vedo come il fatto che le persone che hanno sviluppato algoritmi di gestione della memoria siano intelligenti, fa la differenza per il soggetto originale. OP ha chiesto se la disabilitazione dello scambio può migliorare le prestazioni e ho spiegato che può, a determinate condizioni e può portare a problemi in altre condizioni. Rispondere alla tua domanda sul perché (?) - Posso dire, perché gli algoritmi non sono perfetti ed è compito dell'utente metterli a punto. Questo è il motivo per cui esiste un parametro di swappiness in Linux ed è per questo che disabilitare lo swapping è assolutamente possibile.
Art Gertner,

11
@smc Non c'è nulla di insolito nel caso d'uso dell'OP. L'idea che i sistemi operativi non siano correttamente ottimizzati per i casi d'uso standard di torbiera è una totale assurdità. (Vedi la mia risposta per ulteriori informazioni sul perché non vuoi farlo.)
David Schwartz,

4
Il presupposto che un determinato algoritmo prenderà sempre una decisione desiderabile per l'utente è assolutamente falso. Prendono decisioni sulla base di parametri impostati che i programmatori hanno deciso che sono importanti. Questo potrebbe essere in diretto contrasto con ciò che un utente deve avere successo.
Anaksunaman,

14

Puoi disabilitare in modo sicuro il file di paging?

Se si esaurisce la memoria libera, inclusa la memoria virtuale, il sistema non può continuare a garantire l'esecuzione deterministica e termina automaticamente. Prima che ciò accada, il sistema operativo farà varie altre cose come uccidere programmi che usano troppa memoria. Quello che voglio dire è che la memoria è sempre finita e ogni sistema operativo può farcela. Pertanto, limitare la memoria totale disponibile a 64 GB non danneggerà Windows: molti sistemi non possono andare oltre gli 8 GB anche con un file di paging, poiché con 1 o 2 GB di RAM il file di paging è in genere molto più piccolo di 6 o 7 GB. Va notato che fino a quando si dispone di una quantità eccessiva di RAM non utilizzata, il sovraccarico del sistema operativo che mantiene un file di paging non sarà misurabile.

Ha senso mettere il file di paging su un ramdisk?

Per aumentare la memoria disponibile, la maggior parte se non tutti i sistemi operativi avanzati utilizzano un tipo di file di scambio in cui prendono parte della memoria che è nella RAM e non è stata accesa per un po ', scrivere la memoria sul disco rigido (file di scambio noto come file di paging ) e eliminare la memoria dalla RAM in modo che sia disponibile una memoria più veloce. Il file di scambio viene utilizzato per estendere la dimensione massima della memoria oltre la dimensione della RAM disponibile.

Pertanto, l'utilizzo di un ramdisk (che riduce la memoria disponibile della dimensione del ramdisk) per ospitare il file di scambio (che aumenta la memoria disponibile della dimensione del file di scambio) funzionerà, ma non avrà molto senso. Non offrirà più memoria rispetto alla disabilitazione del file di paging, tuttavia richiederà comunque al sistema di eseguire algoritmi di paging.


Nel caso in cui il file di paging si trovi su un'unità RAM virtuale, il tempo utilizzato per copiare alcuni megabyte dalla RAM sul disco rigido virtuale o viceversa verrà ridotto. E se il file di paging è completamente disabilitato, non ci dovrebbe essere alcun tempo perso su quello. È corretto?
user1306322

2
Corretta. La copia di byte dalla RAM in un file di paging che si trova su un ramdisk è il file di paging più veloce possibile. Ma non copiare affatto è più intelligente.
Peter,

2
Gli Swapfile sono lì per compensare la mancanza di RAM. Se c'è molta RAM, non è necessario compensare. Il tuo sistema operativo utilizzerà comunque il file di scambio, quindi in questo caso è più veloce disattivarlo.

6
@Mast Questa è una grossa semplificazione eccessiva. Gli Swapfile sono anche lì per consentire un uso efficiente della RAM.
David Schwartz,

1
@DavidSchwartz Forse, ma questa è la spiegazione che mi ha spiegato meglio. Nella maggior parte dei casi, una piccola quantità di file di scambio è sempre benefica rispetto a nessun file di scambio. Tuttavia, non ho le risorse per eseguire il backup.

8

Per ribadire ciò che altri hanno detto, spostare lo swap su un disco RAM dritto è piuttosto inutile (nel caso più comune, vedi sotto). Raggiunge che a un certo punto, quando il sistema è affamato di memoria libera, alcuni dati vengono spostati dalla RAM alla RAM in modo piuttosto inefficiente.

Lo scambio su HDD / SSD consente al sistema operativo di cancellare alcune pagine RAM completamente inutilizzate e utilizzare lo spazio liberato, ad esempio la cache dei file o altri buffer di sistema. Potresti non capire che il sistema alloca meno di questi buffer RAM perché non hai memoria virtuale disponibile senza un file di paging; quindi in effetti potresti rallentare la tua performance disabilitando lo swap.

Tuttavia, un disco RAM compresso come unità di scambio , un'unità "ZSWAP", può essere utile in casi limite (dove potrebbe essere necessario solo qualche MB di RAM aggiuntiva per evitare lo scambio su HDD) migliorando l'efficienza dello spazio di un segmento di RAM in un certa misura.


1
+1 per menzionare ZSWAP. È comunemente usato in alcune piattaforme mobili, oltre ad essere utilizzato in OS X 10.9 (anche se oltre allo scambio).
James_pic,

Si noti che "il disco RAM compresso come unità di scambio" presenta ancora il problema che non fa nulla per tutti i "file di paging" diversi dal file di pagina effettivo.
Jamie Hanrahan,

5

Se non si dispone di un file di paging, in caso di BSOD (crash) Windows non sarà in grado di scrivere il file di dump di crash. Ciò significa che non sarai in grado di analizzare il problema utilizzando gli strumenti appropriati.

Avere il file di paging nella RAM è quasi inutile, poiché potrebbe andare perso in crash.

Per ulteriori informazioni, consultare l'articolo Microsoft Informazioni sui file di dump di arresto anomalo .


4

Per Windows, dalla bocca dei cavalli:

Alcuni ritengono che non avere un file di paging produca prestazioni migliori, ma in generale, avere un file di paging significa che Windows può scrivere pagine nell'elenco modificato (che rappresentano pagine a cui non si accede attivamente ma che non sono state salvate su disco) sul file di paging, rendendo tale memoria disponibile per scopi più utili (processi o cache dei file). Quindi, sebbene possano esserci alcuni carichi di lavoro che funzionano meglio senza alcun file di paging, in generale avere uno significherà più memoria utilizzabile * disponibile per il sistema (non importa che Windows non sia in grado di scrivere dump di crash del kernel senza un file di paging di dimensioni abbastanza grande da tenerli).

https://blogs.technet.microsoft.com/markrussinovich/2008/11/17/pushing-the-limits-of-windows-virtual-memory/

  • memoria utilizzabile - anche se questo consiglia di avere memoria virtuale, suggerisce anche che è necessario disporre di grandi quantità di RAM per essere sicuri di beneficiare della mancanza di file di paging / memoria virtuale. Ho un SSD da 4 GB di RAM da 128 GB senza file di paging, ma lo uso per la navigazione in rete e la digitazione di documenti di parole.

2
Dalle mie lezioni personali apprese e da qualcosa che predico a tutti i nuovi dipendenti: ci sono solo 2 regole. # 1: non fidarti mai di Microsoft. # 2 .. non hai ascoltato la regola 1, quindi non esiste la regola 2.
Nick,

3

Non disabilitare il file di scambio Non è solo per quando la memoria si esaurisce. Non c'è alcun guadagno diretto in termini di prestazioni quando lo si spegne , Windows legge da esso solo quando è necessario, lo scrive sempre e quindi è pronto ogni volta che è necessario.

Puoi ridurlo a circa 2/3 della dimensione della memoria se hai più di circa 4 GB, perché memorizza l'immagine di memoria compressa. Puoi metterlo sul tuo disco rigido più lento a cui non accede un altro accesso al disco pesante se non hai spazio su un SSD. Ma è utile averne uno da qualche parte.

Vedi questa risposta per maggiori informazioni sul perché. https://superuser.com/a/286476/4236


3

In teoria, inserire il file di paging nella RAM non dovrebbe avere alcun senso, perché stai semplicemente esaurendo ciò che presumibilmente guadagni e Windows si basa sul presupposto che il file di paging non verrà utilizzato per tali scopi.

In pratica, tuttavia, il design e la filosofia imperfetti possono farcela anche nel kernel di Windows e la gestione della memoria di Microsoft non è necessariamente perfetta. Molti hanno scoperto che l' inserimento del file di paging in un Ramdisk comporta effettivamente un aumento delle prestazioni , purché si disponga di una discreta quantità di memoria.

Ho compilato un post che mostra una raccolta di tali utenti dal thread di un singolo forum che ha scoperto che nonostante disponga di enormi quantità di RAM libera, il file di paging viene ancora utilizzato:

http://www.overclock.net/t/1193401/why-it-is-bad-to-store-the-page-file-on-a-ram-disk/290#post_23508589


Grazie per aver compilato questo elenco. Dovrebbe aiutare a presentare alcune prove che la teoria e la pratica differiscono in questa materia. Virtual memory − A paging file is an area on the hard disk that Windows uses as if it were RAM.Sì, come se: p
user1306322

questa conclusione è errata. il fatto che il sistema operativo scriva cose nel file di paging anche se apparentemente ha "enormi quantità di RAM libera" non dimostra nulla di "design e filosofia imperfetti". Significa che non hai abbastanza informazioni per valutare correttamente le decisioni del sistema operativo. Tanto per cominciare, considera il caso in cui ci sono molte pagine modificate. Vengono scritti nel file di paging e spostati nell'elenco di standby - ora fanno parte di "disponibili". Lo capisci? La RAM è disponibile PERCHÉ il suo contenuto è stato scritto nel file di paging!
Jamie Hanrahan,

@JamieHanrahan: Questo non spiega perché le persone abbiano ancora problemi nonostante utilizzino raramente più di una frazione della RAM. I commenti in quel thread includono: "Non ne ho mai usato più della metà", "L'utilizzo del file di paging è di circa 2,7 GB, mentre l'utilizzo della RAM è di 3,23 GB su 16 GB.", "Ho avuto un notevole aumento delle prestazioni utilizzando Illustrator quando Ho creato e spostato il mio file di paging su RAMDisk ".
Dan W,

La maggior parte di questi commenti sono dovuti a informazioni scarse. È improbabile che i problemi di prestazioni vengano risolti mantenendo cose nella RAM a cui non si accede spesso. Il file di paging non è l'unico file coinvolto nel paging; ce ne sono centinaia, quindi è improbabile che fare qualcosa che influisca solo sul file di paging (e allontana GB di RAM dal resto del sistema, aumentando così la velocità di pagefault) avrà un effetto "drammatico". Tali rapporti non sono generalmente sostenuti quando vengono eseguiti test adeguatamente controllati. È possibile trovare aneddoti per supportare qualsiasi credenza; Li trovo poco convincenti.
Jamie Hanrahan,

In particolare, l'affermazione "viene utilizzato il file di paging" richiede una prova. Il solo fatto di avere GB di roba nel file di paging non dimostra che il file di paging viene utilizzato in un modo che lo mette in un percorso critico delle prestazioni. Per valutare questo, isolare il file di paging su una partizione da solo - o almeno, uno che non è attivamente in uso per nient'altro - e quindi è possibile utilizzare PerfMon su quel "disco logico" per monitorare le sue velocità di I / O. Se il file di paging non viene letto spesso, non importa quanto gli è stato scritto!
Jamie Hanrahan,

2

La conversione di un sistema operativo progettato appositamente per non utilizzare lo scambio è molto più difficile di quanto sembri.

I Mac moderni hanno una partizione di ripristino - parte dell'unità principale con un sistema operativo ridotto che può riparare o ripristinare il sistema principale. Nei giorni in cui il programma di installazione del DVD eseguiva un processo personalizzato, il sistema ora crea un RAMdisk per la partizione di swap poiché non è possibile garantire che un programma di installazione disponga di spazio su disco funzionante. Il sistema operativo include i framework necessari per eseguire il software di manutenzione incluso, identico alle utility disponibili dopo l'installazione. Molto meno lavoro per tutti.

Limitare il sistema a un'applicazione alla volta significa che il ramdisk-swap non viene praticamente mai utilizzato, ma il sistema operativo si aspetta che sia lì.


2

Se hai abbastanza memoria, la risposta sarebbe sì, puoi disattivare lo scambio. Swap è stato creato per superare i limiti della RAM e per renderne l'uso più efficiente.

La domanda ora è: quanta RAM è sufficiente RAM? Non esiste una risposta universale per questo e per natura i sistemi sono affamati di memoria. Pertanto, a meno che non si stia eseguendo un ambiente molto specifico e controllato, non disattivare lo scambio.

Qualsiasi altro tipo di acrobazia, come lo scambio di RAM, creerà semplicemente un ulteriore livello di complessità e spenderà memoria che altrimenti potrebbe essere utilizzata direttamente.


2

Il mio sistema ha 24 GB di RAM, per questo motivo, ho disabilitato il file di paging per evitare l'usura sul mio SSD senza problemi. Di recente ho creato un disco RAM, utilizzando 4 GB di memoria per archiviare i file della cache di Google Chrome, solo per vedere se aumenterebbe le prestazioni dei giochi Flash Player online e la navigazione in generale. Ho visto un marcato aumento delle prestazioni da questo esperimento. Dato che avevo più spazio disponibile sul mio disco RAM, ho abilitato il mio file di paging e impostato sia la dimensione minima, sia quella massima su 1 GB, e l'ho spostato sul disco RAM. Sebbene, non posso dire che ci sia stato un aumento delle prestazioni, il mio sistema sembra funzionare in modo più stabile.


Sarebbe molto meglio semplicemente mettendo un file di paging sul tuo SSD. Windows non lo utilizzerà se non è necessario. Inserire un file di paging su un disco RAM è ridicolo. Sì, gli errori di pagina in quel "file" verranno risolti più velocemente che se fossero su un disco reale, ma assegnando la RAM al RAMdisk in primo luogo, si sta aumentando il numero di errori di pagina. È come prendere in prestito denaro da te stesso, caricarti gli interessi e buttare via gli "interessi". Non è nemmeno sbagliato.
Jamie Hanrahan,

1

Spostare il file di paging nella RAM è una nozione ridicola Basta spegnerlo e con più RAM. :)

No matter how much RAM you have, you want the system to be able to use it efficiently. Having no paging file at all forces the operating system to use RAM inefficiently for two reasons. First, it can't make pages discardable, even if they haven't been either accessed or modified in a very long time, which forces the disk cache to be smaller. Second, it has to reserve physical RAM to back allocations that are very unlikely to ever require it (for example, a private, modifiable file mapping), leading to a case where you can have plenty of free physical RAM and yet allocations are refused to avoid overcommitting.

Consider, for example, if a program makes a writable, private memory mapping of a 4GB file. The OS has to reserve 4GB of RAM for this mapping, because the program could conceivably modify every byte and there's no place but RAM to store it. So immediately, 4GB of RAM is basically wasted (it can be used to cache clean disk pages, but that's about it).

La gestione della memoria è gestita dalla CPU e il fatto che il file di paging sia acceso o spento non fa differenza di come vengono trattate le pagine. È trasparente per Windows.

La priorità della pagina non cambia, le pagine verranno eliminate allo stesso modo. I file di paging vengono utilizzati dalla CPU come memoria secondaria, non dal sistema operativo. Non è altro che cache di livello due quando si esaurisce il livello uno (RAM).

Un esempio rapido e molto sporco: la mia macchina ha 16 GB di RAM e nessun file di paging. 5 minuti fa con 13 GB in standby e solo 2 GB gratuiti, ho caricato Fallout 4. Le pagine a bassa priorità sono state scartate quando Fallout è stato caricato.

A proposito, il Technet Blog del 2008 sulla spinta dei limiti di memoria di Windows è molto fuorviante - direi fino all'inganno. https://i.stack.imgur.com/wXkmi.png Sono anche dubbioso se anche Mark lo abbia scritto, ma spero di no, poiché cambierebbe la mia prospettiva su di lui .....

In seguito ci sono buchi spalancati nell'articolo di cui sono stupefatto che nessuno ha preso in considerazione considerando la frequenza con cui quel blog è stato segnalato

  • Il file di paging e la sua posizione sono gestiti da Windows, il trapping dell'accesso alla memoria alle posizioni che sono state paginate su disco verrebbero catturati dalla CPU, ma consegnati al sistema operativo per recuperare la pagina dal disco e caricarla.

Comunque qui c'è una descrizione non così vaga:

Windows non può raggiungere indirizzi più alti rispetto alla CPU - non è possibile.

Indipendentemente dalle capacità del sistema operativo, è ancora limitato dall'hardware su cui è in esecuzione ... perché il sistema operativo è in realtà la CPU stessa (registri interni).

OK, quindi il file di paging è un'area sull'HDD che la CPU utilizza per lo spazio di indirizzi fisico esteso quando non è in grado di utilizzare più RAM fisicamente o architettonicamente.

Nell'architettura segmentata x86 a 32 bit, ad esempio, ci sono due segmenti da 2 GB di RAM.

Uno è assegnato al kernel. Gli altri 2 GB sono per la modalità utente. Questa è tutta la RAM che la CPU può utilizzare con 32 pin DRAM, ma un processo a 32 bit ha 4 GB disponibili, quindi cosa fare. Fortunatamente la CPU può utilizzare l'archiviazione secondaria AKA sul disco rigido per archiviare 2 GB di pagine in più. Perché ha registri interni
Le posizioni fisiche in cui le pagine virtuali a cui fa riferimento il processo non devono essere archiviate nella RAM. Ma sono stati memorizzati da qualche parte dalla CPU.

La CPU non può dare tutta la RAM da 4 GB all'app, ma può fornirle 4GB di indirizzo utilizzando l'HDD come cache secondaria (che è tutto l'HDD realmente)

Le pagine vengono spostate dentro e fuori dalla RAM attraverso il suo meccanismo di paging interno, ma questo non è lo stesso di un file di paging. Il paging si verifica sempre ....

La linea di fondo non è poi così complicata. Negli ultimi 15 anni a molti utenti finali è stata data l'impressione che un file di paging sia parte integrante del sistema operativo, non lo è. Non è mai stato. Questo malinteso è in parte alimentato da società come Intel e Microsoft.

La RAM è un dispositivo di archiviazione veloce, il disco rigido è un dispositivo di archiviazione più lento, quindi essenzialmente la RAM è cache di livello 1, il disco rigido è di livello 2 (ignorando la cache della CPU per questa analogia). Entrambi sono accessibili dalla CPU.

Se non è disponibile RAM sufficiente per la CPU per memorizzare le pagine necessarie, è possibile utilizzare l'HDD come overflow. Se c'è molta RAM, il PF è ridondante.

Fino al Core 2, i processori Intel avevano un bus DRAM a 32 pin e 32 registri che indicavano che la CPU aveva accesso a 4 GB di RAM e 4 GB di spazio su disco rigido (file di paging). Questa è una limitazione hardware dell'architettura, non una limitazione di Windows.

Il totale disponibile per i processi era di 3,5 GB, poiché una tabella di pagine occupa 512 MB. Ecco perché 3,5 GB vengono visualizzati in Windows con CPU Intel (fino al Core 2). Aggiungi una GPU e anche meno è disponibile.

Xeon potrebbe accedere a un totale di 32 GB di RAM, 64 GB di spazio fisico con HDD incluso (di nuovo file di paging). ( Questo ^ riguarda PAE, -così verranno aggiunti collegamenti ).

inserisci qui la descrizione dell'immagine http://www.windowsdevcenter.com/pub/a/windows/2004/04/27/pagefile.html

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine

Terza fonte di screenshot: Interfaccia binaria dell'applicazione System V AMD64 Architecture Processor Supplement Draft Version 0.99.7

Intendo continuare a migliorare questa risposta e aggiungere materiale sorgente e informazioni pertinenti. Vorrei raggiungere un equilibrio tra informazioni insufficienti e troppe informazioni tecniche. I suggerimenti sono benvenuti. Per favore, non sottovalutare solo perché potrebbe non essere scritto così bene.


I commenti non sono per una discussione estesa; questa conversazione è stata spostata in chat .
David Post
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.