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
1. Die Seitentabelle wird normalerweise vom Betriebssystem angelegt. 2. Die FAT hat mit der MMU nichts zu tun. Viele Grüße Sebihepp
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
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
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.
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.