Frage

Ich lese Betriebssysteme Konzept, und ich bin im 8. Kapitel! Ich konnte jedoch eine Klarstellung verwenden, oder die Gewissheit, dass mein Verständnis korrekt ist.

Logische Adressen: Logische Adressen werden von der CPU erzeugt wird, nach dem Buch. Was genau bedeutet das? (In einer Ausführungs generierte Adresse System ..) Ich gehe davon aus, wenn der Code für ein Programm kompiliert wird, hat das Programm nicht Ahnung, wo der Code in dem Speicher geladen werden. Alle der Compiler tut, ist eine allgemeine Skizze des Programms Layout einrichten und wie das Bild sollte angelegt werden, aber nicht zugewiesen werden keine realen Adressen zu. Wenn das Programm ausgeführt wird, die CPU nimmt dieses Layout Bild, dass der Compiler gemacht und austeilt einige Adressen (logische Einsen) zu den aus dem Code erzeugen diejenigen.

physikalische Adressen: Die physikalischen Adressen werden nicht erzeugt, bis die CPU eine Reihe von logischen Adressen erzeugt (bestehend aus einer Basisadresse und ein Offset). Die logischen Adressen gehen durch die MMU oder ein anderes Gerät und irgendwo entlang der Strecke werden die logischen Adressen in physikalische RAM-Adressen abgebildet.

Was ist dann der eigentliche Unterschied? Ich kann einen Vorteil sehen. logische Adressen gibt mehr Freiheit für die Anwendungen. Wenn die physikalischen Adressen hart codiert wurden, dann würde das Programm Erfolg stark von der physischen Computer Maschine abhängen, erhältlich RAM-Adressen usw.

nicht die Verwendung von logischen Adressen umgewandelt physikalische Adresse zwei Schritte verhängen anstelle ein 00.59 und damit mehr über den Kopf?

Wo dann tun befinden sich die logischen Adressen nach Generation? Sie können auf der CPU in einem Register vorhanden ist, während die CPU einen Prozess bedient, aber vor und nach, wohin gehen sie? Ich verstehe diese Implementierung abhängt. Ich nehme an, sie kann in einigen speziellen Registerraum gespeichert werden oder auf der CPU wie ein TLB, korrekte Puffer? Wenn nicht, dann kann die Tabelle in dem aktuellen RAM vorhanden selbst, und die CPU hält nur einen Zeiger / Adresse an die Basisadresse der im RAM-Speicher, richtig?

Es scheint, die Adressen im RAM hält, ist kontraproduktiv zu dem Zweck der logischen Speicheradressen. Ich kann nur annehmen, dass mein Verständnis ist falsch.

War es hilfreich?

Lösung

Diese Antwort ist nicht erschöpfend, aber es kann es genug erklären, um die Dinge klicken zu machen.

In virtuellen Speichersystemen gibt es eine Trennung zwischen logischen und physikalischen Adressen.

Eine Anwendung kann einen virtuellen Adressraum von (sagen wir mal) 4G gegeben werden. Dies ist sein nutzbarer Speicher und es ist kostenlos, es zu benutzen, wie es für richtig hält. Es ist ein schönen zusammenhängenden Speicherblock (aus der Sicht der Anwendung).

Es ist jedoch nicht die nur Anwendung ausgeführt wird, und das Betriebssystem hat zwischen ihnen allen zu vermitteln. Darunter so schön zusammenhängendes Modell, gibt es eine Menge von Mapping geht zu konvertieren logisch zu physikalischen Adressen.

Mit dieser Zuordnung, das Betriebssystem und Hardware (ich nenne nur diese die unteren Schichten von hier an in) ist frei, um die Anwendungsseiten setzen überall es (entweder im physischen Speicher oder in dem Sekundärspeicher ausgelagert) will.

Wenn die Anwendung versucht, zuzugreifen Speicher an logischen Adresse 50, die unteren Ebenen, die in eine physikalische Adresse übersetzen Übersetzungstabellen verwenden. Und, wenn es versucht, den Zugriff auf logische Speicher, die auf die Festplatte ausgelagert worden ist, ein Seitenfehler ausgelöst wird und die unteren Ebenen können die relevanten Daten in den Speicher zurück bringen, um jeden Preis physischen Adresse es will.

In den schlechten alten Tagen, als physikalische Adressen alle waren Sie hatten, hatte Code versetzbar (oder Fest bis auf Last) sein, da es überall laden kann. Mit dem virtuellen Speichern, der Code (und Daten) auf dem logischen Speicherstelle 50 in einem Dutzend verschiedene Prozesse zur gleichen Zeit sein können -. Es ist tatsächlich physische -Adresse wird jedoch unterschiedlich sein

Es kann sogar so geteilt werden, dass man physische Kopie im Adressraum vieler Prozesse auf einmal existiert. Dies ist der Kern des gemeinsamen Code (also wir Speicher nicht mehr körperliche verwenden, als wir brauchen) und gemeinsam genutzten Speicher leicht Inter-Prozess-Kommunikation zu ermöglichen).

Es ist, natürlich, weniger effizient als eine reine Umgebung physikalisch-Adresse, aber die CPU-Hersteller versuchen, es so unglaublich effizient wie möglich zu machen, da sie stark genutzt wird. Die Vorteile far überwiegen die Nachteile.

Andere Tipps

logische Adresse Adresse relativ zum Programm. Es erzählt, wie viel Speicher ein bestimmter Prozess dauern wird, nicht sagen, was die genaue Lage des Prozesses und diese genauen Standort werden wir mithilfe von etwas Mapping erzeugt und als physikalische Adresse bekannt.

Logische Adresse: - Logische Adresse von der CPU erzeugt. wenn wir das Problem auf den Computer gibt dann das Problem mit dem Prozessor durch logische Adresse unserer Computer übergeben, die wir diese Adresse nicht die logische Adresse genannt zu sehen sind.

Physikalische Adresse: - wenn unser Prozessor Prozess erstellen und unser Problem löst dann speichern wir Daten in sekundären Speichern durch Adresse genannt physikalische Adresse

  1. Eine Adresse, die durch die CPU erzeugt wird allgemein als eine logische Adresse bezeichnet. Die Menge aller logischen Adressen durch ein Programm erzeugt wird, als logischer Adreßraum bekannt. Wohingegen, eine Adresse von der Speicher gesehen fonds- das heißt, der eine in den Speicher laden-Adressenregister des Gedächtnis- wird üblicherweise als physikalische Adresse. Die Menge aller physikalischen Adressen mit den logischen Adressen entsprechen, wird als die physikalische Adreßraum bekannt.
  2. Die Compile-Zeit und die Ladezeit adressBindeVerfahren erzeugen identische logische und physikalische Adressen. Doch in der Ausführungszeit Adresse bindende Regelung, die logischen und physischen Adressräume unterscheiden.
  3. Das Anwenderprogramm sieht nie die physikalischen Adressen. Das Programm erzeugt einen Zeiger auf eine logische Adresse, sagen wir 346, speichert sie im Speicher, manipulieren, vergleicht sie mit anderen logischen Adressen- alle als die Zahl 346. Erst wenn eine logische Adresse als Speicheradresse verwendet wird, wird es in Bezug auf die Basis / Verschiebungsregister verlegt. Das Speicher-Mapping-Hardwaregerät genannt speicher- Verwaltungseinheit (MMU) wandelt die logischen Adressen in physikalische Adressen.
  4. Logische Adressen liegen im Bereich von 0 bis max. Anwenderprogramm, die logische Adresse erzeugt denkt, dass der Prozess in Orten 0 bis max läuft. Logische Adressen müssen in physikalische Adressen abgebildet werden, bevor sie verwendet werden. Physikalische Adressen reichen von (R + 0) bis (R + max) für eine Basis / Relocation Registerwert R.
  5. Beispiel: image description treten Sie hier Mapping von logischen Adressen auf physische Speicherverwaltungseinheit unter Verwendung von (MMU) und Relocation / Basisregister Der Wert in Relocation / Basisregister wird durch einen Benutzerprozeß zu jeder logischen Adresse erzeugt hinzugefügt, zu der Zeit, es zu dem Speicher gesendet wird, entsprechende physikalische Adresse zu erzeugen. In der obigen Abbildung, base / Relocation Wert 14000, dann ein Versuch der Benutzer die Position für den Zugriff auf 346 bis 14346. abgebildet

Logical Vs Physical Address space

Adresse durch die CPU erzeugt wird allgemein als logische Adresse referiert, während die Adresse, die von der Speichereinheit zu sehen ist, dass man in das Speicheradressenregister des Speichers geladen ist, wird allgemein als die physikalische Adresse.Verfahren Kompilierzeit und Last referiert Zeit-Adressbindung erzeugt die gleiche logische und physische addresses.However, die Adresse Ausführungszeit Bindungsschema führt in unterschiedlichen logischen und physikalischen Adressen.

Die Menge aller logischen durch ein Programm erzeugten Adressen wird als logische Adressraum bekannt, während die Menge aller physikalischen Adressen auf diesen logischen Adressen entsprechen ist Physical Address Space.Now, die Laufzeit-Mapping von virtuellen Adresse in eine physikalische Adresse ist durch eine Hardwarevorrichtung als Memory Management Unit.Here im Fall der Abbildung das Basisregisters wird als Verlagerung Register Wert im Verschiebungsregister hinzugefügt wird durch einen Benutzerprozeß zu der Zeit wird es in dem Speicher erzeugt, um die Adresse bekannt gemacht bekannt geschickt .let ist diese Situation mit Hilfe von Beispiel verstehen: Wenn das Basisregister des Wert 1000 enthält, dann ein Versuch durch den Benutzer zu Adressstelle 0 dynamisch Standort 1000 verlegt wird, wird ein Zugriff auf Position 346 bis Position 1346 abgebildet.

Das Anwenderprogramm sieht nie den realen physischen Adressraum, es beschäftigt mich immer mit dem Logical addresses.As haben wir zwei verschiedene Arten von Adressen Logische Adresse im Bereich (0 bis max) und physikalische Adressen im Bereich (R bis R + max) wobei R der Wert der Verlagerung Register Benutzer erzeugt nur logische Adressen und denkt, dass der Prozess läuft in Position zu 0 bis max.As klar aus dem obigen Text ist, dass nur logische Adressen Anwenderprogramm liefert, diese logischen Adressen muß physikalische Adresse abgebildet werden, bevor sie verwendet werden.

Eine logische Adresse ist eine Referenz auf Speicherstelle unabhängig von der aktuellen Zuordnung von Daten in dem Speicher. Eine physikalische Adresse oder absolute Adresse ist eine tatsächliche Position im Hauptspeicher.

Es ist in Kapitel 7.2 von Stallings.

Um das Beste aus meinem Gedächtnis, eine physikalische Adresse ist eine explizite, in Stein gemeißelt Adresse im Speicher, während eine logische Adresse eines Basiszeigers besteht und Offset.

Der Grund dafür ist, wie Sie im Grunde festgelegt haben. Es ermöglicht nicht nur die Segmentierung von Programmen und Prozessen in Threads und Daten, sondern auch für die dynamische Belastung solcher Programme und die Zulage für mindestens pseudo-Parallelität, ohne tatsächliche Verschränkung von Anweisungen in Speichern benötigen zu.

fand ich einen Artikel über Logical vs Physical Address in Betriebssystem, das darüber klar erklärt.

Logische Adresse wird erzeugt durch die CPU, während ein Programm ausgeführt wird. Die logische Adresse ist die virtuelle Adresse, da sie nicht physisch deshalb existiert es wird auch als virtuelle Adresse bekannt. Diese Adresse wird als Referenz verwendet, um die physikalische Speicherstelle durch die CPU zuzugreifen. Der Begriff logische Adressraum wird für die Menge aller logischen Adressen von einem Programm Perspektive erzeugt verwendet. Die Hardware-Gerät Speicher-Management-Einheit aufgerufen wird, für die Zuordnung der logischen Adresse auf seine entsprechende physikalische Adresse verwendet wird.

Physical Address identifiziert einen physischen Standort der erforderlichen Daten in einem Speicher. Der Benutzer nie befasst sich direkt mit der physikalischen Adresse, sondern durch seine entsprechenden logischen Adresse zugreifen können. Das Anwenderprogramm erzeugt die logische Adresse und denkt, dass das Programm in dieser logischen Adresse läuft, aber das Programm muss physische Speicher für seine Ausführung daher die logische Adresse muss auf die physikalischen Adresse bu MMU abgebildet werden, bevor sie verwendet werden. Der Begriff Physical Address Space wird für alle physikalischen Adressen verwendet entsprechend den logischen Adressen in einem logischen Adressraum.

Quelle: www.geeksforgeeks.org

Eine logische Adresse ist die Adresse, an der ein Element (Speicherzelle, Speicherelement, Netzwerk-Host) aus der Sicht eines Anwendungsprogramms ausführen zu liegen scheint.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top