Konvertieren logische (virtuelle) Adresse physische Adresse
Habe ich Folgendes Seite Tabelle von process1
:
Unter der Annahme, dass das paging-system arbeitet mit 16bit
- Adressen und die Größe der Seite ist 4k
Und ich wollen zum konvertieren der logischen Adresse 16000
an eine physikalische Adresse .
Ich bin ein bisschen neu in diesem Thema, so gehen Sie einfach auf mich :
Teilweise Lösung : Die Adresse 16000
passt Zellzahl 3
in der page-Tabelle , so dass ich denke
das muss ich mit der Arbeit, die Zelle und die darauf gespeicherten frame - 2
.
Wie finde ich das offset und die physikalische Adresse jetzt ?
Dank
Du musst angemeldet sein, um einen Kommentar abzugeben.
In Ihrem Fall Prozess 1 kann derzeit Zugriff auf bis zu 4 * 4k-bytes an virtuellem Speicher.
Im Allgemeinen kann ein Prozess Zugriff auf bis zu 4 GB virtuellen Speicher(je nach Umsetzung).
Jetzt die Tabelle, die Sie gegeben haben Karten für virtuellen Speicher, um die tatsächliche physische Adresse(im RAM).Mit jedem Eintrag der page table mapping 4k Speicher aus virtuellen und physischen Raum.
So ist die physikalische Adresse, wo die Adresse 16000 entspricht der 3. Eintrag auf der Seite Tabelle, die zugeordnet ist, um die physikalische Adresse ab
8192(3*4096) till 12288 (8192+4096)
.Bei einem offset von 3172 bytes in der virtuellen Seite 2 ich.e bei einem offset von 3172 in der physikalischen Seite 3 ( unter der Adresse 8192), finden Sie die entsprechenden Daten Adresse 16000.
Alle diese Zuordnungen erfolgen durch die MMU(memory management unit) für jede Adresse auf einen Prozess zuzugreifen, macht.
Guter link, um zu verstehen, dieses Konzept ist hier.
Prost 🙂