Informazioni sulla memoria virtuale con un programma assegnato. Attualmente questo è quello che ho:
La memoria principale ha 60 byte e la memoria virtuale altri 60 byte. La dimensione di un frame / pagina è 10 byte. Quindi ci sono 6 frame per main e 6 per memoria virtuale.
Ho un processo che usa 40 byte, quindi ha bisogno di 4 pagine. In base alle specifiche di assegnazione, quando carico un processo le sue quattro pagine devono essere allocate casualmente, quindi supponiamo che questo sia come appare ora:
Sono riuscito a fare la maggior parte delle cose, ad esempio il cercapersone, il ripristino di una pagina con LFU e LRU, il caricamento di più processi, ecc. Ma c'è un particolare punto che mi confonde:
Given an offset for your process, you must return the physical address. You must verify that the offset is within the size of your process.
Per quanto mi riguarda, puoi calcolare un indirizzo fisico se ti viene dato un offset E un numero di pagina. Ma mi viene dato solo un numero di offset.
La mia ipotesi è che puoi ottenere il numero di pagina usando lo stesso numero di offset. Ad esempio, se l'offset è 36, il numero di pagina sarà 3 (poiché ogni pagina è grande 10 byte) con un offset di 6 byte. Quindi l'indirizzo fisico sarebbe 56? Ma poi ho una domanda più grande:
Cosa succede se mi viene dato il numero 25? Sarebbe la pagina 2 con offset 5. Ma tale pagina è nella memoria virtuale. Devo prima spostare questa pagina nella memoria principale?