Also wenn ich hier mal eingreifen darf und vielleicht helfen meine Erkenntnisse ja weiter. Herr Tanenbaum hat uns allen ja mal ein paar grundlegende Dinge verklickert:
- Ein Prozess benötigt Betriebsmittel (CPU, Speicher, Dateien..) und ist selbst ein Betriebsmittel, das vom OS verwaltet wird. (Erzeugung, Terminierung, Scheduling..)
- Prozesse sind gegeneinander abgeschottet. Jeder Prozess besitzt seine eigenen Betriebsmittel wie etwa den Adressraum. Allein das OS sorgt für die Abschottung.
Weiterhin einige Prozesseigenschaften, wodurch also ein Prozess beschrieben wird:
- Inhalt seines Stacks
- Seine globalen Daten (data section)
- Seine allozierten Betriebsmittel (Dateien..)
Wie können jetzt Daten zwischen den offensichtlich gegeneinander abgeschotteten Prozessen ausgetauscht werden?
- Über gemeinsame Variablen (gemeinsame Speicherbereiche)
- Über Nachrichtenaustausch (Message passing)
Wenn ich also die Diskussion richtig mitverfolgt habe, haben beide Argumentationsseiten recht. Allein die Synchronisierung des Austauschs der Daten übernimmt der Scheduler.
Was jedoch offensichtlich nicht korrekt ist, ist die Tatsache, dass ein Prozess A in den Speicher von Prozess B schreiben darf. Selbst wenn das der Fall sein sollte, ist das sicherlich nicht beabsichtigt.
Was den PBS selbst angeht kann ich leider nichts sagen, da ich die Funktionsweise nicht kenne.
Danke für die Aufmerksamkeit.
PS: Die Listen erheben keinen Anspruch auf Vollständigkeit.