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.
Anstehende Prüfung
Servus…
lernt zufällig sonst noch irgendwer jetzt dann Middleware und/oder Betriebssysteme, oder bin ich der einzige?
Hätte da ein paar BS-Unklarheiten zu beseitig, nachdem meine Vorlesung schon fast 2 Jahre zurückliegt…
CU LC!
Jo, mach auch MW + BS… wobei ich bei MW echt net so den Plan hab, worauf’s da ankommt…
Haha… BS bist du also top fit, ja? g
Wo lernst du? In der Bib?
CU LC!
bs existiert momentan für mich noch nicht
Namnd…
hier ein paar Fragen in der Hoffnung auf Klärung
Kann mir einer nochmal genau den Unterschied von Ein-/MehrPROGRAMMbetrieb und Ein-/MehrPROZESSbetrieb darlegen? Hauptsächlich geht es mir um den “Erscheinungsformen”-Fragebogen Fragen 9 und 10. Generell gilt ja eigentlich die Info, dass ein Prozess ein Programm in Ausführung ist. Soll dann der Mehrprogrammbetrieb lediglich bedueten, dass mein Rechner dazu fähig ist ggf. auch mal Word statt Excel zu starten (also mal bewusst ganz naiv formuliert)?
Prozessorstatus (user-mode vs. sys-mode und ggf. vs. interrupt-mode) … ist das zwingend ein Flag in jedem Prozessor? Oder kann sich das auch ganz einfach dadurch bestimmen, wessen Code gerade ausgeführt wird?
Eine Exception kann ein Trap sein oder ein Interrupt… richtig?
Intraprozess Synchronisation <=> unilateral
Interprozess Synchronisation <=> multilateral
… richtig?
Was bitte ist der Unterschied zwischen Bedingungs-Synchronisation und logischer Synchronisation? (Unilateral)
Interruptbehandlung darf angeblich niemals blockierend sein… ein paar Seiten später heisst es, dass cli/sti zwar eine schlechte aber durchaus mögliche Interruptbehandlungsmethode sei. Ausserdem sei sie blockierend!?? Blockierend für den als nächstes Unterbrechenden Interrupt, oder wie ist das formell in Einklang zu bringen?
Was genau stellt diese Unterbrechungsebene dar? Wie oft ein Interrupt rekursiv wieder unterbrochen wurde? Also einmal unterbrochen U-Ebene=1, dann noch ein Int → U-Ebene=2?
Was genau (und verständlich ) ist der unterschied zwischen lokalen und globalen Kontexvariablen? (resume()-Funktion Kapitel “Koroutinen”)
Mutex zur deadlock-prevention: für P()-Operationen ist das klar, aber müssen die V()-Operation tatsächlich auch geschützt werden?
Wie genau ist das mit dem implizit und explizit blockieren? Was solln die Begriffe!?
So, dass wars erstmal… werd mich mal an Middleware machen…
CU LC!
Dann will ich mal ein paar Fragen versuchen, zu beantworten… wir immer ohne Gewähr
Der „Prozessorstatus“ umfasst afaik den Zustand sämtlicher Register, der Ausführungsmodus (sys/user oder auch mehrere Modi, wie z.B. beim Pentium) ist ein Teil davon, und wird auch in einem entsprechenden Register zu finden sein… wie soll die CPU sonst entscheiden, was erlaubt ist, und was nicht
Das hab ich auch nicht so ganz verstanden… Auf den Folien wird bei Unterbrechungen unterschieden zw. Interrupt und Trap, aber ob mit Exceptions tatsächlich nur Unterbrechungen gemeint sind, weiß ich nicht.
Mit „blockierend“ sind da glaub’ ich zwei verschiedene Dinge gemeint.
cli/sti wird im „normalen“ Code ausgeführt, hier ist mit „blockierend“ die Verzögerung der Interruptbehandlung gemeint.
Der Code für die Interruptbehandlung selbst (zumindest der höchsten Ebene), darf nicht blockierend sein (darf sich nicht selbst aufhängen), sonst hängt das ganze System, weil andere Interrupts ja nicht durchkommen.
Damit sind wohl die unterschiedlichen Prioritätsebenen gemeint. Ein Interrupt höherer Priorität darf die Interruptbehandlung eines niedrigprioreren unterbrechen. „Rekursive“ Unterbrechungen sind ja zu vermeiden… kommen dadurch zustande, dass die aktuelle Interruptebene verlassen wird (d.h. Interrupts dieser Ebene wieder zugelassen werden) ohne dass vorher das Interruptsignal geACKt und zurückgesetzt wurde (bei level-triggered Interrupts) oder die Interruptursache beseitigt wurde. Dann wird die Behandlungsroutine unterbrochen, bevor sie zurückkehren kann. Das sieht dann nach Rekursion aus, weil die Behandlungsroutine immer, bevor sie zurückkehren kann, von sich selbst unterbrochen wird… so lange , bis der Stack überläuft und Terror macht
Lokale Kontextvariablen eines Prozesses liegen auf dessen Stack, globale Kontextvariablen liegen in einer globalen Datenstruktur (der darunterliegenden Ebene, die das Coroutinengewurschtel angestoßen hat)
Also du meinst den Fall, dass man mehrere Betriebsmittel belegen will, und das ganze mittels Mutex atomarisiert (atomisiert? ) ?
Seh ich grade auch nicht, wieso man die V()-Operationen auch noch in nen Mutex einpacken müsste
So, hoffe damit sind alle Klarheiten vollends beseitigt
Danke…
na mal schaun, was es mir (->MORGEN! :#: ) bringt…
CU LC!
Ach du sch… so früh schon 8-( Na dann mal viel Erfolg
Kannst ja dann Bericht erstatten, vor allem MW wär interessant… gibt glaub ein oder zwei OOVS-Protokolle, aber vllt läuft das ja bei MW etwas anders (obwohl’s ja der Nachfolger is)