Memoria virtuale-fisica
salve
non ho ben capito come si fa a porre porzioni di memoria fisica nella memoria virtuale, qualcuno ha le idee più chiare e mi può illuminare?
grazie
non ho ben capito come si fa a porre porzioni di memoria fisica nella memoria virtuale, qualcuno ha le idee più chiare e mi può illuminare?

grazie
Risposte
intendi "swappare" manualmente? Dipende dal linguaggio
no non intendo questo.
cerco di spiegarmi
studiando calcolatori sono giunto al meccanismo di paginazione, che si basa per la sua attuazione sulla MMU hardware e su una routine che chiamo pagefault che va a swappare appunto nel caso in memoria fisica non ci sia la pagina che mi interessa.
questa routine in quanot software però può emettere solo indirizzi virtuali, allora è necessario spostare parte della memoria fisica in memoria virtuale attraverso la creazione di una finestra fm...
ciò che segue non mi è chiaro ed è questo che vorrei sapere, mi sono spiegato meglio?
cerco di spiegarmi
studiando calcolatori sono giunto al meccanismo di paginazione, che si basa per la sua attuazione sulla MMU hardware e su una routine che chiamo pagefault che va a swappare appunto nel caso in memoria fisica non ci sia la pagina che mi interessa.
questa routine in quanot software però può emettere solo indirizzi virtuali, allora è necessario spostare parte della memoria fisica in memoria virtuale attraverso la creazione di una finestra fm...
ciò che segue non mi è chiaro ed è questo che vorrei sapere, mi sono spiegato meglio?
in particolare mi riferisco ai lucidi 7-8-9-10 pacchetto 8
che puoi scaricare qua
http://www.iet.unipi.it/g.frosini/lucidi270/
che puoi scaricare qua
http://www.iet.unipi.it/g.frosini/lucidi270/
Guarda i meccanismi principali li capirai seguendo il corso di Sistemi Operativi, dato che è proprio il sistema operativo che si occupa del tutto!
Non ho guardato i lucidi ma riassumendo un po la ciccia possiamo dire che un sistema che utilizza la memoria virtuale utilizza molto meno memoria principale che se dovesse usarla per tutto il processo! E questo avviene appunto caricando solo alcune pagine in memoria! Fin qui dovresti esserci! Quando vado a cercare una pagina in memoria cerco prima in una cache (TLB - translation lookaside buffer; in questo modo mi evito un doppio accesso alla memoria) e se ho una hit punto direttamente al frame, invece se ho una miss vado a cercare nella tabella delle pagine se il presence bit è a 1! Se il presence bit è a zero vuol dire che la pagina non è in memoria! Ho un page fault! Ci sono vari algoritmi per la scelta della vittima, cioè della pagina da swappare per far posto alla nuova(NRU, FIFO, ecc...)! Tu stai studiando calcolatori ora, quindi diciamo la parte del sistema operativo non ti interessa, adesso vai a botte di cache e registri... quando farai sistemi operativi ti sarà tutto più chiaro...
Non ho guardato i lucidi ma riassumendo un po la ciccia possiamo dire che un sistema che utilizza la memoria virtuale utilizza molto meno memoria principale che se dovesse usarla per tutto il processo! E questo avviene appunto caricando solo alcune pagine in memoria! Fin qui dovresti esserci! Quando vado a cercare una pagina in memoria cerco prima in una cache (TLB - translation lookaside buffer; in questo modo mi evito un doppio accesso alla memoria) e se ho una hit punto direttamente al frame, invece se ho una miss vado a cercare nella tabella delle pagine se il presence bit è a 1! Se il presence bit è a zero vuol dire che la pagina non è in memoria! Ho un page fault! Ci sono vari algoritmi per la scelta della vittima, cioè della pagina da swappare per far posto alla nuova(NRU, FIFO, ecc...)! Tu stai studiando calcolatori ora, quindi diciamo la parte del sistema operativo non ti interessa, adesso vai a botte di cache e registri... quando farai sistemi operativi ti sarà tutto più chiaro...