www.mikrocontroller.net

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


Autor: Tim (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sebastian Hepp (sebihepp)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
1. Die Seitentabelle wird normalerweise vom Betriebssystem angelegt.

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

Viele Grüße
Sebihepp

Autor: Tim (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Reinhard Kern (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Tim (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Tim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey vielen Dank  - ihr habt mir sehr geholfen !

Gruß

Tim

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.