# Frage aus einer mündl. Prüfung - wer kennt die Antwort?



## ven000m (7. Sep 2007)

Hallo,

hier die Frage aus der mündl. Prüfung *Verteilte Systeme* bei uns:

Wie hoch ist die *mittlere Wartezeit *_eines _von_ 20 _Clients für eine Std. Verschlüsselungsoperationen auf einer gewöhnlichen (1 Core) CPU, wenn eine vollständige Berechnung eines Clients 1 Std. dauert, wenn dieser 100% Zugriff auf die CPU hätte? (= Jetzt sich aber den Zugriff mit 19 anderen Clients teilen muss)

Hinweis: Die Clients docken quasi unmittelbar nacheinander an diesen multiplexenden Server an.


*Meine Vermutung:*
20 Clients (= 20 berechnende Threads) schaffen genausoviel wie 1 Thread. Es ist somit egal, ob diese parallel oder seriell an der Reihe kommen, es herrscht ohne hin keine wirkliche Parallelität -> weil die CPU sich nur einem Prozess unterwerfen kann. 

*Antwort:*
Da jeder Client immer wieder einen kurzen Time Slot bekommt und immer nur ein bißchen rechnen kann, verzögert sich die Bearbeitung einer vollständigen Berechnung auf die Länge aller Berechnungen d.h. es dauert 20 Std. und ein paar Sek, bis der erste fertig wird.

Was ist davon zu halten, wie ist eure Lösung?

--------------------
Vielen Dank


----------



## Guest (7. Sep 2007)

ven000m hat gesagt.:
			
		

> Was ist davon zu halten, wie ist eure Lösung?


Ist etwas galaktisch ausgedrückt, aber im Prinzip OK. Deine Antwort halte ich für falsch. Bei mehreren 
Threads wird die CPU-Zeit unter den Threads aufgeteilt, so dass jeder für eine bestimmte Zeit zum Zuge 
kommt. Und das sehr oft innerhalb der 20 Stunden.
Es geht bei den 20 Threads etwas Zeit für die Threadverwaltung veloren und diese wäre bei 20 Stunden
Verarbeitungsdauer ganz sicher länger als die paar Sekunden.


----------



## ven000m (7. Sep 2007)

Naja soweit weg war ich gar nicht, ich habe in diesen Time Slots schon gedacht, es aber nur nicht geschrieben.

Also dauert es für 20 Clients >20 + x Std. ?


----------



## SlaterB (7. Sep 2007)

>  ich habe in diesen Time Slots schon gedacht, es aber nur nicht geschrieben. 

 doch, hast du:

> Antwort: 
> Da jeder Client immer wieder einen kurzen Time Slot bekommt [..]


----------



## Guest (7. Sep 2007)

ven000m hat gesagt.:
			
		

> Also dauert es für 20 Clients >20 + x Std. ?


Eher + xx Minuten, aber es hängt auch sehr davon ab, was der Algorithmus tut. Wenn es um die Verschlüsselung 
irgendwelcher Dateien geht, könnte die Gesamtdauer sogar kürzer als die 20 Stunden sein. Während ein Thread 
eine Datei liest (separater Controller; CPU wird weniger beansprucht), rechnet ein anderer munter vor sich hin. 

In einer Mündlichen Prüfung kann man gut erläutern, wie man seine Antwort gemeint hat. Schriftlich wäre es etwas
schwieriger, wenn man Missverständnisse vermeiden möchte. Einer der Gründe, warum ich mündliche Prüfungen
immer bevorzugt habe.  :wink:


----------



## ven000m (7. Sep 2007)

Hi,

achso.. ja dann lag ich doch gar nicht soweit weg. Also 20 + x Min. ist ja schonmal gar nicht so schlecht.

Die Gründe für mündl. Prüfungen sind auf der Hand.. man kann viel erzählen und genau das vermeiden, dass man sich falsch ausdrückt.

Hat das sonst jemand noch kontrolliert, ist das also richtig?

Gruß


----------



## tuxedo (7. Sep 2007)

Jepp, würde auch sagen: 20h plus/minus ein paar zerquetschte Stunden, Minuten oder sogar Sekunden, je nach Algo und Art der Implementierung.

Die im ersten Post genannte Antwort ist also als "korrekt" zu betiteln. So wirklich schwer war die Frage jetzt aber nicht, oder?

- Alex


----------

