Vorbereitung Klausur < Algor.+Datenstr. < Theoretische Inform. < Hochschule < Informatik < Vorhilfe
|
Status: |
(Frage) überfällig | Datum: | 16:23 Mo 29.05.2006 | Autor: | Herby |
Hallo Leute,
zur Vorbereitung auf meine Informatikklausur habe ich eine vorangegangene Klausur mal bearbeitet, bin mir aber bei den meisten Sachen mehr als unsicher. Ich bitte daher um Stellungnahmen, Anmerkungen, Verbesserungen usw..
Es brauchen auch nicht gleich alle Fragen (Antworten) auf einmal beantwortet werden, es reicht ja wenn ihr nur zu der ein oder anderen Aufgabe eure Meinung (Verbesserung) abgebt.
Das habe ich bisher aus meinem Skript herausgelesen:
Was bedeutet Nebenläufige Ausführung von Programmen?
- Zwei gleichzeitige Prozess werden unabhängig voneinander abgearbeitet. Nebenläufigkeit ist allgemeiner als Parallelität. In der Praxis sind aber auch nebenläufige Prozesse immer von einander abhängig, da auf gemeinsame Ressourcen zugegriffen wird (Prozessor, Speicher, Ausgabegerät)
Was ist geschäftiges Warten (busy waiting)? Geben Sie ein Beispiel an.
- Ein Thread, der mit dem Programmablauf nicht fortfährt, jedoch die Ausführungszeit der CPU behält, wartet geschäftig.
- while(true) if(this.isReady()) break;
Was ist ein kritischer Abschnitt?
- Ein Programmabschnitt, der zwar von mehreren Prozessen genutzt werden kann, jedoch nur nacheinander.
- ein Wechsel (Thread oder Programm) sollte während der Benutzung des kritischen Abschnitt vermieden werden
Was ist eine Semaphore?
- Eine Datenstruktur, die nur eine zuvor bestimmte Anzahl Threads in einem Programmabschnitt zulässt. Wird die Anzahl überschritten, muss der nächste Thread vor dem Abschnitt warten, bis ein anderer diesen verlässt.
- Ein Semaphor ist eine ganzzahlige nichtnegative globale Variable, zur Steuerung einer Warteschlange
Wie realisiert man mit Semaphoren kritische Abschnitte?
- Indem man die Semaphoren mit dem Wert 1 initialisiert.
Semaphore semaphore = new Semaphore(1)
semaphore.down();
// kritischer Abschnitt
semaphore.up
Welches typische Problem nebenläufiger Systeme kann leicht entstehen, wenn man kritische Abschnitte schachtelt?
z.B.: [mm] synchronized(o1)\{ .... synchronized(o2)\{.....\}.....\}
[/mm]
- Deadlocks jedoch weiß ich noch nicht warum!
erst einmal bis hier......
Liebe Grüße
Herby
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 17:20 Do 01.06.2006 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|