Gemeinsamer Speicher (SHM) [E-46] / Klausur Juli 2001-3e

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Gemeinsamer Speicher (SHM) [E-46] / Klausur Juli 2001-3e
Hallo,

auf den Folien [E-46] steht:

Jetzt 3 mal die im Prinzip gleiche Frage:

  • jedes Segment hat seien eigene SKT, und man hat ein gemeinsames Segment bei SHM ⇒ d.h. wir müssten doch die gleiche SKT haben

  • oder kann es sein, dass jeder Prozess grundsätzlich nicht auf gemeinsame SKTs zugreifen kann (–> „gleiche Einträge in verschiedenen SKTs“)?

  • oder ind „gemeinsame Segmente“ und „gemeinsame Seiten“ alternative Wege, SHM zu implementieren?

Und jetzt zur Klausur Juli 2001 - Aufgabe 3e)

[quote]e) Was passiert bei der Bereitstellung des gemeinsamen Speichers für beide Prozesse
in einer seitenadressierten Speicherarchitektur im Betriebssystem? In welchen
Datenstrukturen müssen welche Einträge vorgenommen werden, um den gemeinsamen
Speicher zu etablieren? Skizzieren Sie außerdem die Zusammenhänge zwischen
den logischen Adressräumen der beiden Prozesse und dem physikalischen
Adressraum.[/quote]

Hier ist nicht shmget/shmat, etc. gefragt - sondern die betriebsysteminternen „Dinge“?


Ich würde schreiben:

bei Shared Memory hat jeder Prozess seine eigene SKT, die aber Einträge haben, die auf die gleich physikalische Adresse zeigen.

Und das mit den logischen / physikalischen Adressräumen:

Evtl das Bild mit den “Einblendungen”?
Indem man den physikalischen speicher sieht, der in den logischen Adressraum von P1 und P2 eingeblendet wird.


Deine erste Frage würde ich bejahen. Gleiche Einträge in versch. Segmenttabellen bedeutet ja: Einträge zeigen jeweils auf die gleiche SKT.

Bei der zweiten Frage würde ich somit ‘nein’ antworten. Man sieht ja auch bei der Nutzung gemeinsamer Seitenbereiche, dass Prozesse sehr wohl GEMEINSAM eine SKT nutzen können.

Ich denke dass die drei Punkte GEODERT zu verstehen sind: Prozesse können entweder gemeinsame Segmente oder gemeinsame Seiten oder gemeinsame Seitenbereiche haben. Somit stimme ich Dir bei Deiner driten Frage zu.


Sind damit nicht vielleicht eher mehrstufige SKTs gemeint?


Wie könnte man die 3a und b beantworten?
Der Juk hat irgendwas von bounded buffers gesagt!?
Und nützt man dann dafür zählende Semaphoren (Frage b).
Aber bei der detaillierten Beschreibung haperts noch!?? :cry: