Forum: PC-Programmierung Verständnisfrage: Zusammenhang zwischen MMU, Seitentabelle, Dateisystem, FAT


von Tim (Gast)


Lesenswert?

Hi,

bin zur Zeit am Grundlangen wiederholen und verstehe was nicht – ewig 
gegoogelt aber irgendwie geht’s nicht weiter ;)

1)
Mir ist klar, wie die Übersetzung mit der MMU geht, also die Abbildung 
von logischen Adressen auf physikalische, mit dem Offset des 
Prozesskontextes und der SEITENTABELLE.

Unklar  - woher kommt die eigentlich, wer legt die an?

2)
Mir ist auch klar, wie die Idee von z.B. FAT ist, das letztlich eine 
verkettete Liste darstellt und somit die Blöcke gefunden werden werden 
können.


Frage:


Wie kommen beide Konzepte nun zusammen ? Ist die FAT gleichzeitig DIE 
Seitentabelle bei 1) ?


Wäre klassen, wenn jemand was weiß ;))

Gruß

Tim

von Sebastian H. (sebihepp)


Lesenswert?

1. Die Seitentabelle wird normalerweise vom Betriebssystem angelegt.

2. Die FAT hat mit der MMU nichts zu tun.

Viele Grüße
Sebihepp

von Tim (Gast)


Lesenswert?

Hi,

also:

FAT auschließlich für Dateiblöcke finden.


Seitentabelle ausschließlich für Prozessblöcke finden.

Korrekt ?


Heißt das dann auch:


Dateiblöcke werden ohne Hilfe der MMU gesucht / gefunden ?


Gruß

Tim

von Reinhard Kern (Gast)


Lesenswert?

Tim schrieb:
> Dateiblöcke werden ohne Hilfe der MMU gesucht / gefunden ?

Hallo Tim,

Das Dateisystem auf Floppy, Harddisk usw. hat mit dem Speicheraufbau 
absolut nichts zu tun. Schon deshalb, weil es ja zwischen beliebigen 
Rechnern austauschbar sein muss.

Gruss Reinhard

von (prx) A. K. (prx)


Lesenswert?

Merkhilfe: Eine MMU mit Pagetables gibt es auf PCs erst seit dem 386. 
Das FAT Filesystem schon rund ein Jahrzehnt länger, seit dem 8088.

von Tim (Gast)


Lesenswert?

Hi,

also dann konkret:



Prozess lädt eine Datei dazu -> sagen wir ein 5MB 1D-Array drin --> wo 
liegt die dann während der Ausführung?

-> Im RAM und wird in der Seitentabelle mit eingetragen, damit kann der 
Prozess diese über logische Adressen ansprechen. Nach dem Motto fstream 
bekommt dann einen Adressraum.... 0x000322-0x234234


richtig ?


D.h.  nur das BS weiß unter welcher physischen Adresse auf der 
Festplatte die Daten liegen ( ggf. ja deutlich mehr ) - es kommt also 
genau wie beim Swapping ein Page-Fehler und dann lädt das BS nach...hier 
eben nicht vom Swapping Bereich, sondern aus dem "echten 
Dateinenbereich"  -  das Dateisystem weiß - konkret FAT  - wo die Datei 
liegt


Stimmt das ( grob ) ?

Gruß

Tim

von (prx) A. K. (prx)


Lesenswert?

Tim schrieb:

> -> Im RAM und wird in der Seitentabelle mit eingetragen, damit kann der
> Prozess diese über logische Adressen ansprechen. Nach dem Motto fstream
> bekommt dann einen Adressraum.... 0x000322-0x234234

Moderne Betriebssystemen können Files im Speicher abbilden, so dass aus 
einem Pagefault ein I/O-Zugriff wird. Wohlgemerkt: sie können, nicht 
müssen.

Es kann auch einfach so sein, dass die Anwendung mit read() dem 
Betriebssystem mitteilt, einen bestimmten Bereich des Files (d.h. der 
Platte) an eine bestimmte Stelle des RAMs zu laden. Das hat dann 
überhaupt nichts mit Paging zu tun. Und ist die klassische Variante. Aus 
Sicht der Anwendung ist diese Variante die weitaus bedeutenste. Auch 
wenn das Betriebssystem dann u.U. aus diversen Gründen beides verknüpft, 
ohne dass die Anwendung das merkt.

von Tim (Gast)


Lesenswert?

Hey vielen Dank  - ihr habt mir sehr geholfen !

Gruß

Tim

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.