Verständnisfrage: Zusammenhang zwischen MMU, Seitentabelle, Dateisystem, FAT

Gast #1819500
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
Gast #1819524
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
Gast #1819763
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
Gast #1820052
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
#1820056
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren