Erläuterung des Diagramms über Betriebssystem- und Benutzerprozesse

-1

Ich habe verschiedene Beziehungen untersucht, die zwischen einem Betriebssystem und einem Benutzerprozess bestehen können. Ich bin auf die Abbildung unten gestoßen. Es zeigt eine Architektur, in der die OS-Funktionen mit Benutzerprozessen ausgeführt werden.

1) Ich wollte den Teil des Diagramms mit der Bezeichnung OS-Funktion klarstellen. Ist dieser Teil für alle Benutzerprozesse identisch? Mit anderen Worten, ist dies gemeinsam genutzter Code, auf den jeder Prozess zugreift?

2) Ist der einzige Unterschied zwischen den Prozessschaltfunktionen (graue Basis im Diagramm) und den OS-Funktionen, die die OS-Funktionen als Benutzerprozesse ausführen, während die Prozessschaltfunktionen als OS-Prozesse arbeiten? Warum muss es so einen Unterschied geben?

Eine Architektur, die zur Ausführung des Betriebssystems verwendet werden kann

Begleittext zur Bereitstellung des Kontexts für das Diagramm:

"Eine Alternative, die bei Betriebssystemen auf kleineren Computern (PCs, Workstations) üblich ist, besteht darin, praktisch die gesamte Betriebssystemsoftware im Kontext eines Benutzerprozesses auszuführen. Die Ansicht ist, dass das Betriebssystem in erster Linie eine Sammlung von Routinen ist, zu deren Ausführung der Benutzer aufruft verschiedene Funktionen, die innerhalb der Umgebung des Benutzerprozesses ausgeführt werden .... Zu einem bestimmten Zeitpunkt verwaltet das Betriebssystem n Prozessabbilder ......... Wenn ein Interrupt-, Trap- oder Supervisor-Aufruf auftritt, ist der Prozessor Im Kernel-Modus wird die Steuerung an das Betriebssystem übergeben. Um die Steuerung von einem Benutzerprogramm an das Betriebssystem zu übergeben, wird der Moduskontext gespeichert und ein Moduswechsel zu einer Betriebssystemroutine durchgeführt. Die Ausführung wird jedoch innerhalb des aktuellen Benutzerprozesses fortgesetzt. Somit wird keine Prozessumschaltung durchgeführt, sondern nur eine Modusumschaltung innerhalb desselben Prozesses.

(S.136 Betriebssysteme von Stallings)

rrazd
quelle
1
Es gibt viele Betriebssystemarchitekturen. Wenn Sie uns nicht mitteilen, welche Sie Ihnen erklären möchten, werden Sie bestenfalls unvollständige Antworten erhalten . Die Antworten auf die obigen Fragen unterscheiden sich zum Beispiel erheblich zwischen Windows NT, OS / 2 und Linux, obwohl das Diagramm für alle geeignet sein könnte.
JdeBP
Anstatt zu erraten, was der Diagrammersteller vorhatte, sollten Sie - im Ernst - eine bessere Erklärung und ein besseres Diagramm finden, wie JdeBP vorschlug, das so allgemein ist, dass es keinen Einblick gibt. en.wikipedia.org/wiki/Process_management_%28computing%29
Linker3000
Das Diagramm soll allgemein gehalten sein. Es ist für kein Betriebssystem spezifisch. Es beschreibt ein allgemeines Betriebssystem. Es ist mehr über das Konzept im Gegensatz zu den Besonderheiten ...
rrazd
@JdeBP Ich habe einen Auszug aus dem beiliegenden Absatz zur Verfügung gestellt, der hoffentlich dazu
beiträgt
Sie haben den Namen des Buches angegeben. Ich habe das Buch, und wenn Sie es lesen, stellen Sie fest, dass Sie uns einen Teil eines Diagramms zeigen, Teil (b), nicht einmal das gesamte Diagramm. Stallings erklärt die verschiedenen Architekturen von Betriebssystemen in Bezug darauf, ob der Betriebssystemcode (c) in eigenen separaten Prozessen, (a) vollständig außerhalb des Prozesskonzepts oder (b) innerhalb des Anwendungsprozesskontexts ausgeführt wird; und als solches ist Ihre Frage hier bedeutungslos, da sie mehr Stallings zuschreibt, als xe an erster Stelle sagt.
JdeBP

Antworten:

1

Bei der Erläuterung des Benutzerprozesses und der Beziehung zwischen Betriebssystem und Kernel sind viele Perspektiven zu berücksichtigen. Es gibt das Speicherlayout und den Adressraum, die Datenübertragung, die Prozessor- und Ausführungsebenen / -privilegien sowie verschiedene Schemata für die Planung.

Ein Diagramm, das aus dem Zusammenhang gerissen wurde, lässt sich nur schwer genau erklären. Woher kommt dieses Diagramm? Was war der Begleittext für dieses Diagramm? Dies könnte sowohl etwas zur Code-Organisation als auch zur Prozessplanung bedeuten.

Nachtrag

Der angeführte Absatz hilft nur wenig. Es gibt wahrscheinlich mehr Text, der dieses Diagramm erklären soll. Der zitierte Absatz erläutert ein Schema , wenn „ein Prozess Schalter nicht ausgeführt“. Wo ist die Erklärung , wann und warum ein Prozess Schalter wird ausgeführt?

Das Betriebssystem verwaltet Statusinformationen zu jedem Prozess: den Wert der Register, den Stapel und den virtuellen Speicher. zusammen wird dies der Kontext des "Prozesses" genannt. Ebenso wichtig ist die Sicherheits- / Berechtigungsstufe des Prozessors, der "Modus".

Stallings erwähnt, dass das Betriebssystem entweder den "Prozess" oder den "Modus" des Prozessors umschalten kann. In dem von Ihnen zitierten Absatz werden diese Prozessorzustände als alternative Methode zur (effizienten) Behandlung von Systemaufrufen, Traps und Interrupts verwendet. Das heißt, das Betriebssystem könnte einfach einen "Modus" -Schalter (vom Benutzermodus in den Kernelmodus) innerhalb des aktuellen "Prozesses" ausführen, um einen Interrupt / Trap / Syscall zu bedienen. Jeder Prozess muss nun genügend Stapelspeicher zuweisen, um System-Interrupts / Traps sowie seine eigenen Anforderungen zu berücksichtigen. Dies sollte teilweise Ihre # 2 beantworten.

Bei Frage 1 gibt es (normalerweise) nur eine Kopie des Kernel-Codes im physischen Speicher. "Betriebssystemfunktionen" wären also gemeinsam genutzter Code. Natürlich muss sich der Prozess im Kernel-Modus befinden, um die Berechtigung zum Ausführen von Kernel-Code zu haben.

Sägespäne
quelle
cool, danke für den Nachtrag, ich brauchte nur eine Klarstellung, die Sie zur Verfügung gestellt haben.
4.