[SISTEMI OPERATIVI]traduzione da ind. fisici a ind. logici
Sapendo che il so implementa la memoria virtuale paginata con pagine da 2Kb, si trasformi gli indirizzi fisici in una sequenza di numeri di indirizzi di pagine logiche... come posso fare^
Sappiamo che passo la cpu genera un int fittizio che viene sommato con il registro rilocatore presente nell MMU il quale genere un indirizzio fisico vero e prorpio.. ma come faccio il viceversa?
Avevo pensato di fare il passaggio inverso cioè tolgo da ogni ind. fisico un valore ma che valore ho nel registro rilocatoree? (2048 ?) grazie.
Sappiamo che passo la cpu genera un int fittizio che viene sommato con il registro rilocatore presente nell MMU il quale genere un indirizzio fisico vero e prorpio.. ma come faccio il viceversa?
Avevo pensato di fare il passaggio inverso cioè tolgo da ogni ind. fisico un valore ma che valore ho nel registro rilocatoree? (2048 ?) grazie.
Risposte
Altra ipotesi, visto che parliamo di paginazione, l mmu non è utilizzato ( se non sbaglio non c'entra niente con la paginazione), ma bensi devo scomporre l'ind logico in , sapendo che ogni pagine è 1024 byte, allora avrò 512byte per la pagina e 512 byte per l'offset... sono sulla buona strada?
Ciao,
secondo me hai un attimo di cofusione.
La MMU è sempre usata per gestire gli indirizzi (virtuali), si chiama apposta Memory Management Unit.
Se hai l'indirizzo fisico, non hai motivo di traformarlo in uno logico.
Comprendo il tuo dubbio, ma la MMU crea indirizzi virtuali, e con adeguati trasformazioni hardware si ricava l'indirizzo fisico.
Ma un sistema operativo utilizza solo indirizzi virtuali (paginati in questo caso).
Se hai domande chiedi pure.
PS: quando studiai queste cose avevo dubbi pure io, ti consiglio questo post e le dispense sotto, se ti sono utili:
https://www.matematicamente.it/forum/ind ... 57955.html
http://calcolatori.iet.unipi.it/contrib ... latori.pdf
http://calcolatori.iet.unipi.it/contrib/domande.pdf
secondo me hai un attimo di cofusione.
La MMU è sempre usata per gestire gli indirizzi (virtuali), si chiama apposta Memory Management Unit.

Se hai l'indirizzo fisico, non hai motivo di traformarlo in uno logico.
Comprendo il tuo dubbio, ma la MMU crea indirizzi virtuali, e con adeguati trasformazioni hardware si ricava l'indirizzo fisico.
Ma un sistema operativo utilizza solo indirizzi virtuali (paginati in questo caso).
Se hai domande chiedi pure.

PS: quando studiai queste cose avevo dubbi pure io, ti consiglio questo post e le dispense sotto, se ti sono utili:
https://www.matematicamente.it/forum/ind ... 57955.html
http://calcolatori.iet.unipi.it/contrib ... latori.pdf
http://calcolatori.iet.unipi.it/contrib/domande.pdf
Si in effeitt faccio un po' di confusione. A quanto ho inteso io, lo spazio degli ind. fisici e logici non sempre è lo stesso, anzi raramente. Per un discorso di rapidità la cpu genera e lavora su indirizzi logici, fittizi, opportunamente creati (mmu o pagniazione e relative tabelle) e successivamente trasformati in ind. fisico che rappresenta il frame a cui ci riferimo nella ram. Il mio post è per svolgere un esercizio, quindi mi serve solamente a livello accademico, ma nonostante i concetti espressi sopra non capisco comuque come collegare le due cose ... ! grazie
"discorso di rapidità"
si dai, più o meno, anche per questioni di limiti di memoria, ma penso che tu lo sappia
il resto è correto quello che dici.
Questo è solo un discorso che per me non ha molto senso, ma se è per un esercizio allora proviamo.
Pensa se hai un indirizzo fisico, ed essendo che è un indice di una tabella ed un offset, domandati: esiste una tabella di indirizzi fisici con corrispondenza di indirizzi virtuali?
Per fare il contrario, devi avere l'indirizzo di questa tabella, che salvi da qualche parta.
si dai, più o meno, anche per questioni di limiti di memoria, ma penso che tu lo sappia

il resto è correto quello che dici.
Questo è solo un discorso che per me non ha molto senso, ma se è per un esercizio allora proviamo.
Pensa se hai un indirizzo fisico, ed essendo che è un indice di una tabella ed un offset, domandati: esiste una tabella di indirizzi fisici con corrispondenza di indirizzi virtuali?
Per fare il contrario, devi avere l'indirizzo di questa tabella, che salvi da qualche parta.
non ho indirizzi nel testo, il testo è come si vede nel primo post...

Rileggendo a mente "fresca", ho capito il senso dell'esercizio. Avendo degli esami ieri ho capito male, chiedo scusa.
Quello che devi fare è, avendo la memoria fisica cioè un elenco di celle di memoria con indirizzi:
0000000000
0000000001
....
0000010000
crei gli indirizzi virtuali da pagine di 2048 byte. Semplicemente fai a mano un'implementazione di una memoria.
Qua devi decidere che tipo di implementazione usare, falla semplice ed usa una sola tabella delle pagine. Ed usi tipi indirizzi di 16 bit come vuoi.
Devi decidere la suddivisione dell'indirizzo, sapendo che un indirizzo virtuale viene duddiviso in indirizzo di pagine (a bit) e indirizzo di riga (b bit). Perciò avrai la suddivisione di $2^a$ pagine ciascuna di ampiezza di $2^b$ byte. Per fare ancora più facile, decidi che la memoria fisica ha una corrispondenza 1:1 con le pagine di meoria virtuale, perciò saranno di ampiezza di $2^b$ byte.
Adesso non ricordo come suddividere $a$ e $b$ sull'indirizzo virtuale (appena posso mi recupero il libro di SO2). Una volta fatto puoi dedurra i valori di bit dell'indirizzo virtuale.
Spero che sia un po' più chiaro cosa tu debba fare
PS: da dove viene questo esercizio per curiosità?
Quello che devi fare è, avendo la memoria fisica cioè un elenco di celle di memoria con indirizzi:
0000000000
0000000001
....
0000010000
crei gli indirizzi virtuali da pagine di 2048 byte. Semplicemente fai a mano un'implementazione di una memoria.
Qua devi decidere che tipo di implementazione usare, falla semplice ed usa una sola tabella delle pagine. Ed usi tipi indirizzi di 16 bit come vuoi.
Devi decidere la suddivisione dell'indirizzo, sapendo che un indirizzo virtuale viene duddiviso in indirizzo di pagine (a bit) e indirizzo di riga (b bit). Perciò avrai la suddivisione di $2^a$ pagine ciascuna di ampiezza di $2^b$ byte. Per fare ancora più facile, decidi che la memoria fisica ha una corrispondenza 1:1 con le pagine di meoria virtuale, perciò saranno di ampiezza di $2^b$ byte.
Adesso non ricordo come suddividere $a$ e $b$ sull'indirizzo virtuale (appena posso mi recupero il libro di SO2). Una volta fatto puoi dedurra i valori di bit dell'indirizzo virtuale.
Spero che sia un po' più chiaro cosa tu debba fare

PS: da dove viene questo esercizio per curiosità?
Ora mi torna
Ero arrivato anche io a codesta conclusione, avevo fatto pagine da 2048. ( vedi 0000-2048 . 2049-4096. etc etc) tante quante sono le pagine logiche fornite... solo che non ho la minima idea di come assegnare i byte... una cosa del genere :http://www.dacrema.com/Informatica/paginazione_MP.htm.
Ho l'esame di Sitemi operativi e sono dispense ed esercizi dei vari prof !

Ho l'esame di Sitemi operativi e sono dispense ed esercizi dei vari prof !
Se segui le figure di quel sito riesci ben a scrivere gli indirizzi.
Quello che ti chiede l'esercizio è scolo scrive un indirizzo paginato, mica una struttura di memoria
Se hai il libro di Silberchatz, ricordo che c'era una figura sulla paginazione ad una sola tabella, dove si utilizzavano decimali per spiegare la paginazione. Da li ricavi tutto il necessario, non è complicato, è più lunga la spiegazione
Quello che ti chiede l'esercizio è scolo scrive un indirizzo paginato, mica una struttura di memoria

Se hai il libro di Silberchatz, ricordo che c'era una figura sulla paginazione ad una sola tabella, dove si utilizzavano decimali per spiegare la paginazione. Da li ricavi tutto il necessario, non è complicato, è più lunga la spiegazione

Il famoso testo di Silberschatz - Galvin - Gagne, per quanto riguarda la preparazione universitaria, può essere considerato la bibbia sull'argomento (ed ha altrettante edizioni e varianti della bibbia stessa
). Ti consiglio di cercarne una copia, almeno in prestito.

Lo uso già, ma ahime scarseggia su esercizi svolti

@starsuper:
Settima edizione, capitolo 8.4 (Paginazione)
8.4.1 Metodo di base
Paginazione base, con una sola tabella,
Figura 8.7-9 e il testo
Quello che dicono le figure, e fai un ragionamento inverso, ti danno la soluzione dell'esercizio.
Se hai ancora problemi posta pure qua
Settima edizione, capitolo 8.4 (Paginazione)
8.4.1 Metodo di base
Paginazione base, con una sola tabella,
Figura 8.7-9 e il testo
Quello che dicono le figure, e fai un ragionamento inverso, ti danno la soluzione dell'esercizio.
Se hai ancora problemi posta pure qua
