Sitzung: Jeden Freitag in der Vorlesungszeit ab 16 Uhr c. t. im MAR 0.005. In der vorlesungsfreien Zeit unregelmäßig (Jemensch da?). Macht mit!

Informatik 4 (StuPO90)/Stichpunkte zur Klausur SoSe 2006: Unterschied zwischen den Versionen

(Aufgabe 2: Assembler)
(Teile der Klausur eingearbeitet, Link auf pdf mit meiner Vorbereitung eingefügt - formatierung ist noch mist!)
Zeile 2: Zeile 2:
 
Diese Seite sammelt die Information vom "Pre-Release" der aktuellen [[Informatik 4|Info4]]-Klausur.
 
Diese Seite sammelt die Information vom "Pre-Release" der aktuellen [[Informatik 4|Info4]]-Klausur.
 
* Die Aufgaben sind vermutlich nicht ganz die gleichen, die in der Klausur vorkommen. Aber hoffentlich ähnlich. Insgesamt sind 50 Punkte zu erreichen.  
 
* Die Aufgaben sind vermutlich nicht ganz die gleichen, die in der Klausur vorkommen. Aber hoffentlich ähnlich. Insgesamt sind 50 Punkte zu erreichen.  
 +
* Es gibt einen privaten ([http://www.freitagsrunde.org/~florian/wiki/info4.pdf|Zusammenschrieb]) mit vielem von dem, was ich vor der Klausur wichtig fand...
  
 
== Aufgabe 1: Allgemeine Fragen ==
 
== Aufgabe 1: Allgemeine Fragen ==
 
''5 Punkte.''
 
''5 Punkte.''
# Unterschied zwischen 2 gegebenen Assemblerbefehlen erklären
+
# erklären Sie den Unterschied zwischen den Assemblerbefehlen ADD und ADDA
# Welche Methoden der Javaklasse ... werden für die Realisierung des Methodenfernaufrufs benötigt.
+
# Welche Methoden der Javaklasse rmi.Naming werden für die Realisierung eines Methodenfernaufrufs:
# Bestimmtes Verhalten bei Monitoren
+
## auf Client- und
# Verbindungsanfrage eines Clients an einem Server ausprogrammieren in Java
+
## Serverseite benötigt.
# Spezielles Verhalten zu Semaphoren
+
 
 +
# Warum ist ein blokierendes signal() bei Monitoren evtl. unerwünscht?
 +
# auf info4.klausur.tu-berlin.de wird ein Programm gestartet, das auf Port XY einen Socket öffnet (Quellcodeauszug war gegeben)
 +
##schreiben Sie den Code der notwendig ist, um bei einem Client eine Verbindung mit diesem Server zu öffnen (ohne Exceptionhandling)
 +
# Spezielles Verhalten zu Semaphoren  
 +
##-> weiss ich nicht mehr
  
 
== Aufgabe 2: Assembler ==
 
== Aufgabe 2: Assembler ==
 
''8 Punkte.''
 
''8 Punkte.''
# Textaufgabe, Algorithmus realisieren
+
# Textaufgabe, Algorithmus realisieren:
# Kellerspeicher aufzeichnen
+
## Eine Zahl wird gegeben, 
 +
## falls Zahl gerade null liefern,
 +
## sonst alle ungeraden Zahlen bis zu dieser Zahl aufsummieren und diese zurückgeben
 +
# Kellerspeicher aufzeichnen:
 +
## nach Sichern der Register und
 +
## SP einzeichnen
  
 
== Aufgabe 3: Semaphore ==
 
== Aufgabe 3: Semaphore ==
 
''11 Punkte.''<br />
 
''11 Punkte.''<br />
 
# 2 Prozesse, die sich nach vorgegebenen Regeln verhalten programmieren
 
# 2 Prozesse, die sich nach vorgegebenen Regeln verhalten programmieren
 +
## Getränkeautomat, der nie leer wird
 +
## Käufer, immer nur einer am Automat
 
# ein weiterer Prozess kommt hinzu - ausprogrammieren
 
# ein weiterer Prozess kommt hinzu - ausprogrammieren
 +
## Getränkelieferant der wartet bis Automat leer und ihn dann füllt
 +
## Der Automat hat nur noch 50 Flaschen, dann isser leer und muss wiederbefüllt werden
 +
## Automat ist inital leer
  
 
== Aufgabe 4: Monitore ==
 
== Aufgabe 4: Monitore ==
 
''12 Punkte.''<br />
 
''12 Punkte.''<br />
Gegeben ist die Beschreibung eines Synchronisierungsproblems.
+
# Gegeben ist die Beschreibung eines Synchronisierungsproblems.
3 Threads schreiben, in Java ausprogrammieren
+
# 3 Threads schreiben, in Java ausprogrammieren
 +
## Tankstelle mit Autos und Servicetechniker
 +
## Es gibt 2 oder mehr Servicetechniker, immer nur einer an der Zapfsäule
 +
## beliebig viele Autos die Tanken wollen, aber nur wenn die Zapfsäule nicht gerade gewartet wird
  
 
== Aufgabe 5: Nachrichtenaustausch ==
 
== Aufgabe 5: Nachrichtenaustausch ==
 
''10 Punkte.''<br />
 
''10 Punkte.''<br />
Sockets benutzen, Java programmieren, Nachrichtenaustausch
+
# Sockets benutzen, Java programmieren, Nachrichtenaustausch
 +
## Eine Threadklasse ausprogrammieren, von der dann mehrere parallel laufen
 +
## Diese verbinden parallel zu einem server und laden Teile einer Datei herunter (diese Methode ist als 'gegeben' vorausgesetzt)
 +
## Wir sollen nun dafür sorgen, dass nie mehr als 'maxConnections' Clienten gleichzeitig
 +
etwas runterladen, auch wenn man das eigentlich serverseitig machen sollte.....
 +
## Dabei muss die Countervariable über die Objektgrenzen der Threads geschützt werden, so dass immer nur einer sie modifizieren kann
 +
 
  
 
== Aufgabe 6: Speicherverwaltung ==
 
== Aufgabe 6: Speicherverwaltung ==
Zeile 35: Zeile 60:
 
# Konkrete Speicherverwaltung
 
# Konkrete Speicherverwaltung
 
# Anfragen in der Speicherverwaltung behandeln
 
# Anfragen in der Speicherverwaltung behandeln
 +
 +
## Least Frequently Used sollte simuliert werden
 +
 +
## worst und best fit kamen dran als Handsimulation,
 +
## beide mit identischen Anfragen, eine konnte die Anfrage nicht bedienen

Version vom 25. Juli 2006, 13:08 Uhr

Allgemeines

Diese Seite sammelt die Information vom "Pre-Release" der aktuellen Info4-Klausur.

  • Die Aufgaben sind vermutlich nicht ganz die gleichen, die in der Klausur vorkommen. Aber hoffentlich ähnlich. Insgesamt sind 50 Punkte zu erreichen.
  • Es gibt einen privaten ([1]) mit vielem von dem, was ich vor der Klausur wichtig fand...

Aufgabe 1: Allgemeine Fragen

5 Punkte.

  1. erklären Sie den Unterschied zwischen den Assemblerbefehlen ADD und ADDA
  2. Welche Methoden der Javaklasse rmi.Naming werden für die Realisierung eines Methodenfernaufrufs:
    1. auf Client- und
    2. Serverseite benötigt.
  1. Warum ist ein blokierendes signal() bei Monitoren evtl. unerwünscht?
  2. auf info4.klausur.tu-berlin.de wird ein Programm gestartet, das auf Port XY einen Socket öffnet (Quellcodeauszug war gegeben)
    1. schreiben Sie den Code der notwendig ist, um bei einem Client eine Verbindung mit diesem Server zu öffnen (ohne Exceptionhandling)
  3. Spezielles Verhalten zu Semaphoren
    1. -> weiss ich nicht mehr

Aufgabe 2: Assembler

8 Punkte.

  1. Textaufgabe, Algorithmus realisieren:
    1. Eine Zahl wird gegeben,
    2. falls Zahl gerade null liefern,
    3. sonst alle ungeraden Zahlen bis zu dieser Zahl aufsummieren und diese zurückgeben
  2. Kellerspeicher aufzeichnen:
    1. nach Sichern der Register und
    2. SP einzeichnen

Aufgabe 3: Semaphore

11 Punkte.

  1. 2 Prozesse, die sich nach vorgegebenen Regeln verhalten programmieren
    1. Getränkeautomat, der nie leer wird
    2. Käufer, immer nur einer am Automat
  2. ein weiterer Prozess kommt hinzu - ausprogrammieren
    1. Getränkelieferant der wartet bis Automat leer und ihn dann füllt
    2. Der Automat hat nur noch 50 Flaschen, dann isser leer und muss wiederbefüllt werden
    3. Automat ist inital leer

Aufgabe 4: Monitore

12 Punkte.

  1. Gegeben ist die Beschreibung eines Synchronisierungsproblems.
  2. 3 Threads schreiben, in Java ausprogrammieren
    1. Tankstelle mit Autos und Servicetechniker
    2. Es gibt 2 oder mehr Servicetechniker, immer nur einer an der Zapfsäule
    3. beliebig viele Autos die Tanken wollen, aber nur wenn die Zapfsäule nicht gerade gewartet wird

Aufgabe 5: Nachrichtenaustausch

10 Punkte.

  1. Sockets benutzen, Java programmieren, Nachrichtenaustausch
    1. Eine Threadklasse ausprogrammieren, von der dann mehrere parallel laufen
    2. Diese verbinden parallel zu einem server und laden Teile einer Datei herunter (diese Methode ist als 'gegeben' vorausgesetzt)
    3. Wir sollen nun dafür sorgen, dass nie mehr als 'maxConnections' Clienten gleichzeitig

etwas runterladen, auch wenn man das eigentlich serverseitig machen sollte.....

    1. Dabei muss die Countervariable über die Objektgrenzen der Threads geschützt werden, so dass immer nur einer sie modifizieren kann


Aufgabe 6: Speicherverwaltung

4 Punkte.

  1. Strategien bei seitenverwalteten Systemen
  2. Konkrete Speicherverwaltung
  3. Anfragen in der Speicherverwaltung behandeln
    1. Least Frequently Used sollte simuliert werden
    1. worst und best fit kamen dran als Handsimulation,
    2. beide mit identischen Anfragen, eine konnte die Anfrage nicht bedienen