Quanti processi sono in memoria in un determinato momento [chiuso]


-1

Esiste un solo processo in memoria alla volta e gli switch di contesto spostano costantemente i processi tra DRAM e disco? Oppure più processi vengono conservati contemporaneamente in DRAM e gli switch di contesto cambiano semplicemente quale processo sta eseguendo la CPU?

come è diverso per la memoria virtuale?


Il modo in cui i processi vengono caricati in memoria non ha nulla a che fare con la pianificazione dei processi.
David Schwartz,

Questa domanda dipende dal sistema operativo, ciò che stai descrivendo fa parte di ciò che fa il sistema operativo. Direi che, data la memoria sufficiente e tutti i processi di os moderni rimarranno tutti in memoria fino alla loro conclusione
Doug Watkins,

Risposte:


1

La domanda non ha davvero alcun senso.

Le informazioni vengono caricate e conservate in memoria in base alla frequenza con cui vengono utilizzate e alle decisioni prese dal gestore della memoria virtuale. I processi sono programmati dallo scheduler. Uno non ha nulla a che fare con l'altro.

Non sono i processi che sono tenuti in memoria nei moderni sistemi operativi, sono le pagine. E se immagini, ad esempio, due processi che eseguono lo stesso eseguibile, molte pagine verranno condivise e caricate in memoria, se necessario, quando uno dei due processi accede ad essi.


Per "processo" intendo le pagine di memoria che compongono lo spazio degli indirizzi del processo. È possibile che più di uno di questi "spazi di indirizzamento dei processi" risieda contemporaneamente nella memoria fisica? o solo uno?
glen4096

Le pagine possono essere residenti da qualsiasi combinazione di processi. Le pagine possono anche essere residenti che non sono mappate da alcun processo. Uno sostanzialmente non ha nulla a che fare con l'altro. I processi utilizzano pagine che li costringono a diventare residenti in memoria. Rimangono residenti fino a quando il sistema operativo non desidera utilizzare quella pagina fisica per qualcos'altro o non è mai possibile accedervi.
David Schwartz,

0

Di tanto in tanto ci ho pensato da una prospettiva filosofica, cercando di applicarlo agli umani per pensare alla nostra esperienza di qualche processo. Ho usato i computer come analogo per noi; la coscienza è il prodotto del processo di informazione che viene dalla memoria.

Non è stato utile per me, ma penso che si applichi alla tua domanda perché, in un caso semplice, la risposta sarebbe sì.

Nel core della CPU, se il processo è l'esecuzione della procedura, sappiamo che il processore sta lavorando i dati dalla sua memoria del registro. Forse non è ancora abbastanza basso. Andando più in profondità, fino alla soglia di esecuzione in cui il processo porta al prodotto, lo vedremo terminare nell'unità logica aritmetica . L'ALU ha la funzione di eseguire un'operazione su due numeri . Quindi, ecco perché dico di sì, se la nostra visione è limitata qui, c'è solo un processo in memoria alla volta.

Così:

  • Registri = memoria di lavoro (il nostro buffer contiene le informazioni che sperimentiamo presto come adesso , pochi millisecondi dopo il fatto)
  • ALU = fine soglia del processo (ultima cosa che facciamo con quella memoria)
  • Prodotto / Output = coscienza (il risultato del processo)

Questa non è una risposta alla domanda, ma spero di farti pensare ai diversi livelli e tipi di memoria e ricordare che c'è una macchina fisica in fondo a tutto. La risposta presuppone che l'ALU finirà per completare il processo da due input e un solo output. Le CPU moderne sono probabilmente troppo complesse per me anche solo per dire quante ALU potenzialmente finali, in realtà sono alla fine dell'unità.


0

Porzioni di spazi di indirizzi di più processi possono sicuramente essere, e quasi sempre, nella memoria fisica allo stesso tempo. È molto raro che tutti i vas di un processo siano residenti. È quasi raro che nessuno di essi sia residente. (In effetti, su Windows, poiché ogni processo porta con sé una piccola quantità di informazioni non pagabili, è impossibile. Non so per altri sistemi operativi, ma mi aspetto che sia lo stesso.)

La memoria non è paginata e paginata a causa del comportamento di pianificazione — tranne che, ovviamente, un thread che non è in esecuzione non presenta errori di pagina; se tutti i thread in un processo non sono in esecuzione, non c'è motivo di sfogliare in nessuno dei suoi spazi di indirizzi virtuali.

Al contrario, in un processo a lungo inattivo potrebbe essere recuperata parte della sua memoria dal suo set di lavoro (e possibilmente, anche se non necessariamente, persa dalla RAM) dal sistema operativo se c'è una carenza di RAM e / o un alto tasso di errori di pagina.

Non hai specificato quale sistema operativo stavi chiedendo. Su Windows, Task Manager, scheda "Processi" (Windows Vista e 7) o "Dettagli" (Windows 8.x), "Memoria (set di lavoro privato) ti mostrerà quanta RAM è presente nel set di lavoro di ogni processo, per processo-private vas La colonna "Memoria (set di lavoro condiviso)" indica la quantità di RAM presente nei ws di ciascun processo che può anche trovarsi nel set di lavoro di altri processi.

Inoltre, di solito ci saranno alcune pagine associate a ciascuno dei numerosi processi negli elenchi di pagine modificate e in standby. L'elenco di standby fa parte di ciò che Windows indica come "Disponibile", l'elenco modificato non lo è. Questi non si trovano nei gruppi di lavoro di alcun processo, ma se le pagine virtuali corrispondenti sono guaste, possono essere "paginate" molto rapidamente, senza andare sul disco.

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.