Informatik 4 (StuPO90)/Gedächtnisprotokoll Klausur SoSe 2007: Unterschied zwischen den Versionen
(→Aufgabe 5: Betriebsmittelvergabe (5 Punkte)) |
(→Aufgabe 3: Semaphoren (10 Punkte)) |
||
(9 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
Zeile 13: | Zeile 13: | ||
** Grund: Nicht unterbrechbarer Zeitraum mötlichst klein, damit keine/wenige Interrupts verloren gehen. | ** Grund: Nicht unterbrechbarer Zeitraum mötlichst klein, damit keine/wenige Interrupts verloren gehen. | ||
− | |||
− | == Aufgabe 2: Assembler ( | + | == Aufgabe 2: Assembler (12 Punkte) == |
− | Programmieren sie in Assembler die Funktion _binom(int *a, int *b) | + | Programmieren sie in Assembler die Funktion _binom(int *a, int *b) (10 Punkte) |
*Berechne a²+2ab+b² (!) und speichere das ergebnis in *b und gib 0 bei geglückter Operation zurück. | *Berechne a²+2ab+b² (!) und speichere das ergebnis in *b und gib 0 bei geglückter Operation zurück. | ||
Zeile 23: | Zeile 22: | ||
**Falls das passiert gib ebenfalls -1 zurück.(Rückgaben erfolgen wie üblich im Register D0) | **Falls das passiert gib ebenfalls -1 zurück.(Rückgaben erfolgen wie üblich im Register D0) | ||
*Schreibe desweiteren eine Subroutine, die das Quadrat einer Zahl berechnet (geht in 2 Zeilen). | *Schreibe desweiteren eine Subroutine, die das Quadrat einer Zahl berechnet (geht in 2 Zeilen). | ||
− | + | ||
+ | Gib den Stack nach dem Aufruf der Subroutine und der Sicherung der Register an (2 Punkte) | ||
== Aufgabe 3: Semaphoren (10 Punkte) == | == Aufgabe 3: Semaphoren (10 Punkte) == | ||
Elefanten und Mäuse gehen auf ein Schiff. | Elefanten und Mäuse gehen auf ein Schiff. | ||
− | Dabei sollen immer möglichst doppelt so viele | + | Dabei sollen immer möglichst doppelt so viele Mäuse wie Elefanten auf dem Schiff sein. |
Nur eine Differenz von 1 ist erlaubt.. | Nur eine Differenz von 1 ist erlaubt.. | ||
− | |||
− | == Aufgabe 4: Monitore ( | + | sei n die Anzahl der Elefanten und m die Anzahl der Mäuse. |
+ | |||
+ | wenn n Elefanten auf dem Schiff sind, dann muss beachtet werden: | ||
+ | |||
+ | *wenn m > 2n ist, dann muss eine Maus an Bord kommen | ||
+ | *wenn m < 2n ist, dann muss ein Elefant an Bord kommen | ||
+ | *wenn m = 2n ist, dann muss man schauen: | ||
+ | *um das Gleichgewicht zu erhalten können an Bord kommen: | ||
+ | :Elefant, Maus, Maus oder Maus, Elefant, Maus, damit keine Verletzung der ersten 2 Punkte zustandekommt. | ||
+ | |||
+ | die Aufgabe hat echt reingehauen | ||
+ | |||
+ | == Aufgabe 4: Monitore (13 Punkte) == | ||
In einem Schwimmbad gibt es ein Schwimmbecken. | In einem Schwimmbad gibt es ein Schwimmbecken. | ||
Es gibt Turmspringer, Schwimmer und den Bademeister. | Es gibt Turmspringer, Schwimmer und den Bademeister. | ||
Zeile 60: | Zeile 71: | ||
− | + | ||
− | + | == Siehe auch == | |
+ | |||
+ | [[Informatik 3/Gedächtnisprotokoll Klausur SS07]] | ||
+ | |||
+ | [[Informatik B/Gedächtnisprotokoll mündliche Nachprüfung SS07]] |
Aktuelle Version vom 28. Februar 2008, 20:53 Uhr
Inhaltsverzeichnis
Aufgabe 1: Kurze Fragen (10 Punkte)
- Unterschiede und Vorteile von synchroner und asynchroner Nachrichtenübertragung?
- blockierend / nicht blockieren vs. Nachricht geht evtl. verloren
- Vorteile von leichtgewichtigen Prozessen
- schnellerer Prozesswechsel, da gemeinsamer Adressraum
- einfache Implementierung
- eigener Scheduler ?
- Erkläre die zwei Stufen von Interruptbehandlung. Grund der Zweistufigkeit?
- Stufe 1: nicht unterbrechbar, nur nötigste Behandlung (speichern).
- Stufe 2: abschließende Behandlung des interrupts...
- Grund: Nicht unterbrechbarer Zeitraum mötlichst klein, damit keine/wenige Interrupts verloren gehen.
Aufgabe 2: Assembler (12 Punkte)
Programmieren sie in Assembler die Funktion _binom(int *a, int *b) (10 Punkte)
- Berechne a²+2ab+b² (!) und speichere das ergebnis in *b und gib 0 bei geglückter Operation zurück.
- Falls a<0 oder a>32767 oder b>32767 oder b<-32768 gib sofort -1 zurück.
- Bei der addition der werte a², b² und 2ab kann es zum Überlauf kommen.
- Falls das passiert gib ebenfalls -1 zurück.(Rückgaben erfolgen wie üblich im Register D0)
- Schreibe desweiteren eine Subroutine, die das Quadrat einer Zahl berechnet (geht in 2 Zeilen).
Gib den Stack nach dem Aufruf der Subroutine und der Sicherung der Register an (2 Punkte)
Aufgabe 3: Semaphoren (10 Punkte)
Elefanten und Mäuse gehen auf ein Schiff. Dabei sollen immer möglichst doppelt so viele Mäuse wie Elefanten auf dem Schiff sein. Nur eine Differenz von 1 ist erlaubt..
sei n die Anzahl der Elefanten und m die Anzahl der Mäuse.
wenn n Elefanten auf dem Schiff sind, dann muss beachtet werden:
- wenn m > 2n ist, dann muss eine Maus an Bord kommen
- wenn m < 2n ist, dann muss ein Elefant an Bord kommen
- wenn m = 2n ist, dann muss man schauen:
- um das Gleichgewicht zu erhalten können an Bord kommen:
- Elefant, Maus, Maus oder Maus, Elefant, Maus, damit keine Verletzung der ersten 2 Punkte zustandekommt.
die Aufgabe hat echt reingehauen
Aufgabe 4: Monitore (13 Punkte)
In einem Schwimmbad gibt es ein Schwimmbecken. Es gibt Turmspringer, Schwimmer und den Bademeister. Synchronisiere mit den Folgenden Regeln über Monitore:
- Turmspringer und Schwimmer dürfen das Schwimmbecken nicht gleichzeitig benutzen.
- Wenn kein Bademeister anwesend ist, darf kein Schwimmer ins Becken.
- Turmspringer dürfen auch ins Becken springen, wenn Schwimmer warten, weil kein Bademeister da ist.
- Wenn ein Bademeister anwesend ist, haben die Schwimmer vor den Turmspringern Vorrang.
- Der Bademeister darf erst Feierabend machen (weggehen), wenn kein Schwimmer mehr im Becken ist
- Der Bademeister darf insbesondere auch dann gehen, wenn noch Schwimmer am Beckenrand warten (voraussgesetzt, es befindet sich kein Schwimmer im Becken).
- Es kann davon ausgegangen werden, dass es maximal einen Bademeister gibt.
Aufgabe 5: Betriebsmittelvergabe (5 Punkte)
Die Betriebsmittel werden in der Aufgabe nach preämptiver Planung nach Laufzeit vergeben, gegeben sind folgende Prozesse:
Geben Sie für die jewelige Zeit die Vergabereihenfolge für die Prozesse an:
----------------------------------- 1 2 3 4 5 6 7 8 9 10
Geben Sie zusätzlich die zeitlichen Verläufe der Inhalte der Warte-Queues an und berechnen Sie die mittlere Wartezeit.