Quanta memoria dovrebbe utilizzare Windows 6.2 e quanto dovrebbe essere disponibile per le applicazioni utente?


-4

Con il file di paging disabilitato e 4 GB di memoria allocati, Windows 6.2 (8 e Server 2012 con esperienza desktop) si avvia usando poco meno di 1 GB. Man mano che le applicazioni vengono caricate, l'utilizzo della memoria raggiunge i 3 GB, a quel punto Windows inizia a lottare; l'utilizzo di ulteriore memoria provoca il glitch e la scomparsa di elementi di Windows sullo schermo. Tra 3 GB e 3,5 GB di utilizzo, explorer.exe si arresta in modo anomalo oppure Windows lancia l'utente nella schermata di accesso o il rendering del desktop si arresta in modo anomalo (ma la barra degli accessi sul lato destro funziona ancora ... evidentemente, le priorità di MS sono non in ordine).

  1. Perché l'utente non è in grado di utilizzare tutti i 3 GB di memoria rimanente per le applicazioni senza crash di Windows?

  2. Non ci sono nuove utili funzionalità in Windows 6.2 rispetto a 6.1 che ci si aspetterebbe di richiedere memoria aggiuntiva all'avvio, quindi perché l'utilizzo della memoria inattiva è passato da 0,5 GB a 1 GB? Anche l'installazione di Windows 6.2 in HV richiede 1024 MB di memoria di avvio minima, rispetto a 512 MB per 6.1.


6 e 6.2? Quali versioni dovrebbero essere?
Journeyman Geek

@vandidant - Perché non usi semplicemente i loro nomi?
Ramhound,

Risposte:


2

Perché l'utente non è in grado di utilizzare tutti i 3 GB di memoria rimanente per le applicazioni senza crash di Windows?

Senza un file di paging, Windows deve riservare memoria sufficiente per supportare ogni singola allocazione che sia mai stata effettuata. Quindi, anche se c'è molta memoria libera, l'uso di quella memoria può essere limitato. Questo è il motivo per cui hai bisogno di un file di paging.

Questa domanda è sostanzialmente la stessa di "perché non posso scrivere un assegno anche se ci sono molti soldi nel mio account". È perché devi tenere abbastanza soldi nel tuo account per coprire tutti gli assegni che hai mai scritto che sono ancora là fuori, anche se alcuni di loro sono molto, molto improbabili che vengano mai incassati.

I moderni sistemi operativi non possono fare un uso efficiente della memoria senza backup store. Nel caso di Windows, questo è il file di paging.

Non ci sono nuove utili funzionalità in Windows 6.2 rispetto a 6.1 che ci si aspetterebbe di richiedere memoria aggiuntiva all'avvio, quindi perché l'utilizzo della memoria inattiva è passato da 0,5 GB a 1 GB? Anche l'installazione di Windows 6.2 in HV richiede 1024 MB di memoria di avvio minima, rispetto a 512 MB per 6.1.

Non richiede quella memoria. Lo usa solo perché non è possibile risparmiare memoria per dopo. Non c'è assolutamente alcun svantaggio nell'uso della memoria che hai, quindi i sistemi operativi moderni (incluso Windows) non fanno nessuno sforzo per liberare RAM quando non sono sotto pressione della memoria.

Ad esempio, supponiamo che un programma venga eseguito e quindi termina. Non è necessario mantenere quel programma nella RAM, ma se si dispone della RAM, perché no? Ridurrà l'I / O del disco nel caso in cui il programma venga eseguito nuovamente. E puoi sempre passare la RAM a un altro scopo in seguito se hai bisogno della RAM per qualcos'altro. Quale possibile vantaggio ottieni liberando la RAM adesso, quando hai comunque molta memoria libera?


Per il tuo primo punto: è proprio come quando scrivi un assegno. Anche se è molto improbabile che l'assegno venga incassato, devi presumere che lo farà. Senza alcun file di pagina da coprire, deve limitare fortemente ciò per cui utilizza la RAM. Per il tuo secondo punto: se Windows sta esaurendo la memoria disponibile, non dovrebbe assolutamente liberare la memoria, dovrebbe usarla per tutto ciò che sta causando l'esaurimento della memoria disponibile. Cioè, trasferisce direttamente la RAM da un uso all'altro senza sprecare sforzi per renderlo libero solo per riutilizzarlo.
David Schwartz,

L'utilizzo scende a 1 GB perché a volte non hai altra scelta che liberare memoria. Questa è la tua opzione peggiore, perché devi solo preoccuparti di riutilizzarla. Ma se hai pagine anonime sporche e un programma termina, non puoi fare altro che liberare memoria.
David Schwartz,

1
Si consideri un programma che la memoria mappa un file da 1 GB e crea un mapping privato e scrivibile. Il sistema operativo deve riservare 1 GB di memoria di backup nel caso in cui il programma modifichi ogni singolo byte di tale memoria. Senza alcun file di paging, l'unico posto in cui è possibile archiviare i dati è nella RAM. Quindi, anche se la mappatura non ha ancora utilizzato RAM, 1 GB di RAM è ora fortemente limitato e non può contenere altro che pagine pulite e supportate. (Con un file di paging, potrebbe solo riservare 1 GB di file di paging e continuare a utilizzare la RAM per qualsiasi scopo.)
David Schwartz

Sì. Le due principali eccezioni sarebbero se sai che hai molta più RAM di quella che ti servirà mai o se hai un controllo molto preciso su quale software eseguirai (come i sistemi integrati). La cosa sorprendente è che il file di paging ha enormi effetti sul comportamento e sulle prestazioni del sistema anche se non viene utilizzato. La sua semplice esistenza rimuove quelle restrizioni su come usare la RAM.
David Schwartz,

@vandidant Non è del tutto corretto. Quello che succede è che alcuni tipi di mapping di memoria fanno sì che la RAM diventi limitata e non riesca a conservare i dati modificati. Il sistema operativo gestisce questa restrizione rifiutando di consentire allocazioni di memoria virtuale che potrebbero richiedere il backup dell'archivio che non può essere sicuro di avere (e spuntando quei fastidiosi messaggi "memoria insufficiente"). Questo sovraccarico si applica ai sistemi embedded e ai sistemi embedded che non hanno file di paging o sono progettati con RAM in eccesso o hanno tutti i loro software attentamente progettati per ridurre al minimo la domanda di memoria di backup.
David Schwartz,
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.