Multiple-Choice Aufgaben

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.

Multiple-Choice Aufgaben
Ich hab mal ein paar Lösungen vergangener Multiple-Choice Aufgaben zusammengestellt. Keine Garantie auf Richtigkeit. Falls ihr Fehler findet, bitte korrigieren, wäre echt kuhl. :smiley: V.a. die Klausur vom Juli 2012 ist wohl sehr fehlerhaft, bin mir da sehr unsicher bei manchen Aufgabenstellungen.

Hier der Dropbox-Link: https://dl.dropboxusercontent.com/u/92712289/SP%20MultipleChoice%20mit%20Ergebnissen.rar

:slight_smile:

(Notiz: Hab die PDFs mit Foxit Reader bearbeitet, es kann also jeder editieren. :slight_smile:

2 Likes

kurz zu dieser Frage:
Welche Aussage zum Thema Prozesse/Threads ist richtig?
❏Beim federgewichtigen Prozess bilden Adressraum und Prozess eine Einheit.
❏Leichtgewichtige Prozesse müssen vom Betriebssystem speziell unterstützt werden.
❏Eine gleichzeitige Ausführung mehrere schwergewichtiger Prozesse auf verschiedenen Prozessoren ist nicht möglich.
❏Die Einlastung eines federgewichtigen Prozesses ist eine privilegierte Operation und erfordert Unterstützung der Betriebssystem
Dort hast du das erste angekreuzt, aber wieso? Ich würde sagen es ist das zweite…

Und bei der Klausur 2010 Winter bei der Aufgabe 1.2 müstte da nicht auch noch
“Zur Umschaltung von Kernel-Threads ist kein Adressraumwechsel erforderlich” angekreuzt werden, weil das sind doch die Leichtgewichtigenprozesse und da brauch ich doch keinen Adressraumwechsel?

Und bei der Klausur Sommer 2012 bei der 1.2b) Muss hier nicht “Bei Adressraumschutz durch Abteilung werden die Betriebssystemdaten vor
Zugriffen aus dem Anwendungsprogramm geschützt” angekreuzt werden statt “Der Adressraumschutz durch Abteilung ermöglicht die Isolation mehrerer Prozesse
voneinander”


Federgewichtige Prozesse brauchen keinen Adressraumwechsel (user-level), weil Adressraum und Prozess eine Einheit bilden (steht wortwörtlich so in den Folien), kernel-threads (leichtgewichtige Prozesse) brauchen einen Adressraumwechsel. Ich hab auch zu jeder Frage (fast jeder) die Folienseite oben rechts immer in Blau hingeschrieben, im Format: (SP1/2) - Folie / Folienseite.

Bezüglich des Adressraumschutzes durch Abteilung bin ich mir auch nicht sicher, ich habe die Lösungen alle auch mit denen des Forums verglichen und dann korrigiert. Es wäre kuhl, wenn da jemand endlich mal was an Fehlern findet und posten kann, damit eventuelle Korrekturen in die Gänge kommen. :slight_smile:

Aufgrund von (SP1) - 071 / 29 denke ich allerdings, dass die Programme vom BS eher durch Adressraumschutz durch Eingrenzung bzw. Segmentierung geschützt werden.


Nein man brauch doch einen „Sprung ins BS“ aber keinen Adressraumwechsel… bei uns in der Vorlesung wurde das explizit so an der Tafel aufgeschrieben, das ist doch eigentlich auch logisch, weil die kernel-threads haben ja alle zusammen einen Adressraum…


[quote=???]Nein man brauch doch einen “Sprung ins BS” aber keinen Adressraumwechsel… bei uns in der Vorlesung wurde das explizit so an der Tafel aufgeschrieben, das ist doch eigentlich auch logisch, weil die kernel-threads haben ja alle zusammen einen Adressraum…
[/quote]
Es steht so wortwörtlich in den Folien, mehr als das, was dort steht, kann ich dir auch nicht sagen. ^-^ Wäre super, wenn jemand mit Ahnung (evtl. n Tutor) hier evtl. Aufklärung bieten könnte.

Meines Wissens nach benötigst du, wenn du ins BS springst, ja einen Kontextwechsel und da ein Kontextwechsel einen Adressraumwechsel impliziert (glaub ich zumindest), müsste es eigentlich so, wie ich es erklärt habe, stimmen.


Es steht so wortwörtlich in den Folien, mehr als das, was dort steht, kann ich dir auch nicht sagen. ^-^ Wäre super, wenn jemand mit Ahnung (evtl. n Tutor) hier evtl. Aufklärung bieten könnte.

Meines Wissens nach benötigst du, wenn du ins BS springst, ja einen Kontextwechsel und da ein Kontextwechsel einen Adressraumwechsel impliziert (glaub ich zumindest), müsste es eigentlich so, wie ich es erklärt habe, stimmen.
[/quote]

ja wäre echt super, wenn das mal noch einer mit AHnung sagen könnte… weil irgendwie wurde es in der vorlesung an die tafel geschrieben weil es hieß, dass die folien da schon lang anders gehören eigentlich aber mm warten wir mal auf eine dritte meinung :smiley:


Aus logischer Sicht beinhaltet jeder Sprung vom Benutzerprozess ins Betriebssystem (und jeder Sprung zurück) einen Adressraumwechsel: Der Prozess sieht nur seinen eigenen Adressraum, während das Betriebssystem einen erweiterten Adressraum sieht, der zusätzlich noch den Kern-Speicher des Betriebssystems beinhaltet.


Also soweit ich es in den Folien gelesen habe steht bei den federgewichtigen Prozessen “Prozessinstanzen und Adressraum bilden eine Einheit”. In den Folien ist auch die Mehrzahl hervorgehoben und darauf kommt es glaube ich an. Ich würde bei der Frage “Welche Aussage zum Thema Prozesse/Threads ist richtig?” auch das zweite ankreuzen. Leichtgewichtige Prozesse müssen nun mal den Weg “durchs” OS nehmen, anders geht es nicht und bei den federgewichtigen haben alle Prozessinstanzen nur einen Adressraum, die erste Antwort wäre für schwergewichtige Prozesse wohl eher richtig. Das ist meine Meinung dazu.


Ah, stimmt, jetzt seh ich das auch. Danke für die Verbesserung und Erklärung. :smiley:


Bei der Klausur Februar 2012:
Aufgabe 1.1 i:
Welche der folgenden Aussagen zum Thema Threads ist richtig?
❏ Zur Umschaltung von User-Threads verschiedener Prozesse ist kein
Adressraumwechsel erforderlich.
❏ Kern-Threads teilen sich den kompletten Adressraum und verwenden daher den
selben Stack.
❏ Auf Multiprozessorsystemen kann die Umschaltung von Kern-Threads ohne
Mitwirken des Systemkerns erfolgen.
❏ Der Synchronisationsbedarf im Anwendungsprogramm kann von der Ablaufplanung der Kernfäden abhängen

Warum ist hier 1 angekreuzt und nicht vllt auch 2?
Klar, c ist Quatsch.
Und ich sehe auch, dass a richtig ist.
In den Folien steht ja, dass die Prozessinstanzen und deren Adressraeume insgesamt zusammen eine Einheit bilden.
Aber was ist bei der b?
Haben denn nicht Adressraeume einen Stapel/Stack? Und Kern-threads gibts ja nur einen maximal und damit verwendet dieser denselben (seinen eigenen) Stack.
Oder wird mit der 2 gemeint: Mehrere Kern-Threads teilen sich einen globalen Adressraum und haben daher einen einzigen globalen Stack? (das waere dann natuerlich falsch)

Und hier noch ein EDIT:
Bei der 1.2 wuerde ich die 6 dazunehmen…
❍ Bei Offline-Schedulingverfahren wird der vollständige Ablaufplan bereits vor
dem Start des Systems erstellt.


Nein. Kern-Threads gibt es natürlich mehr als nur einen. Wenn du 5x [m]pthread_create(3)[/m] aufrufst, dann hast du 5 Kern-Threads (unter GNU/Linux), in einem Adressraum.

Wie sollen mit nur einem Stack parallel Funktionsaufrufe in mehreren Threads funktionieren? Jede Funktion benutzt ja den Stack für Variablen und Parameter, die pro Thread unterschiedlich sein können. Jeder Thread hat seinen eigenen Stack.


August 2011: 1.2 b)
Welche der folgenden Aussagen zum Thema Speicherverwaltung sind
richtig?
[color=crimson]❍ Das Buddy-Verfahren verhindert externen Verschnitt.
❍ Das Buddy-Verfahren verhindert internen Verschnitt.[/color]
❍ Die Adressen zweier Buddies unterscheiden sich in genau einem Bit. (Foliensatz 122 / S.13)
❍ Die Verschmelzung benachbarter Löcher ist beim Buddy-Verfahren besonders einfach.
❍ Benachbarte Löcher gleicher Größe können beim Buddy-Verfahren in jedem Fall verschmolzen werden.
❍ Bei einer Speicheranforderung muss bei Worst-Fit u.U. die gesamte Freispeicherliste durchlaufen werden. (Foliensatz 122 / S.20)
❍ Der Verschmelzungsaufwand bei Best-Fit ist verglichen mit Worst-Fit erhöht.
❍ Ziel von First-Fit ist es, den Verwaltungsaufwand gering zu halten. (Foliensatz 122 / S.14)

Beim Buddy Verfahren entsteht sowohl interner als auch externer Verschnitt. Die restlichen Antworten von R3count aus dieser Klausur decken sich mit dem was wir in der Übung besprochen haben.


Bei der Klausur Juli 2012 wieso ist hier nicht “Ein Seitenfehler wird abhängig von der Ursache nach dem Fortsetzungs- oder dem Beendigungsmodell behandelt.” angekreuzt? Und beim Adressraumschutz durch Abbteilungen werden doch jetzt nur die Betriebsyystemdaten geschütz und damit kann ich doch nicht mehrere Prozesse voneinander isolieren ?!? also müsste doch auch 4. statt 3. angekreuzt werden… so versteh ich das in den SP1 Folien


Juli 2012:
1.1j)

sollte es nicht sein “Durch Virtualisierung ist ein Entzug von physikalischen Betriebsmitteln mög-
lich, obwohl dies auf der logischen Ebene unmöglich ist.”?

da im Skript Betriebsmittelverwaltung Seite 30 “Durch Virtualisierung […] in kritischen Momenten den Prozessen physikalische Betriebsmittel entziehen zu können” steht


Bei der Klausur vom Juli 2012 bin ich mir extrem unsicher was richtig und falsch ist. Deshalb kann es sein, dass viele Antworten falsch sind oder unvollständig. Das hab ich aber auch in meinem Eröffnungsbeitrag hingeschrieben.


Wird ein Seitenfehler nicht immer nach dem Wiederaufnahmemodell bearbeitet? (Bin mir nicht sicher)


@R3count:
Wenn ein Page Fault kommt und es keine Seite gibt, die einzulagern ist, wird nach dem Beendigungsmodell fortgefahren.
So meine Meinung.

Zur Klausur Juli 2012 Aufgabe 1.2 b)
sind 3, 5, 6 richtig.
2 ist falsch, da jede Page die gleiche Größe hat und es unnötig wäre sie zu speichern.
8 ist auch falsch, da das BS es auch umsetzen könnte; aber es ist durch die MMU viel schneller und das BS kann effizienter arbeiten.

Und müsste bei der Frage (hab die nur so ungefähr im Kopf): Wodurch kann Nebenläufigkeit entstehen
durch Compiler-Optimierung die richtige Antwort sein anstatt durch Threads in einem Monoprozessorsystem mit präempitven Scheduling?
Da bei präemptiven Scheduling die CPU entzogen werden kann und es somit nicht zur Nebenläufigkeit kommen kann.

Oder verstehe ich die Frage falsch und Nebenläufigkeit ist hier nicht das Problem bzw. es würde richtig lauten wenn statt Nebenläufigkeit Verklemmung stehen würde?!?


Juli 2000
1 d) da hast du als Verweis (SP1) 061 / 7 angegeben, da steht bei mir aber etwas zu Inode? 0o

April 2010
b) Was versteht man unter einem Translation Lookaside Buffer (TLB)?
ich denke es ist “Einen speziellen Cache der MMU, der Informationen aus den zuletzt genutzten
Seitendeskriptoren vorhält.”


Oh stimmt, daran hab ich garnich gedacht. Achja, und Compiler-Optimierung ist eben die falsche Antwort, dass hab ich auch extra nochmal nachgefragt. Warum weiß ich allerdings nicht mehr.

Wenn du aber einem Prozess die CPU entziehst, dann ist das doch praktisch ein Interrupt, d.h. nicht-deterministisch (es ist nicht zu jedem Zeitpunkt klar, wie fortgefahren wird), d.h. es kann zur Nebenläufigkeit kommen.