Windows Prozesse mit gleicher Priorität

#2413113
Lesenswert?

Hallo,

ich habe 3 Prozesse (EXE) mit gleicher Priorität unter WinXP dauernd 
laufen.
Die Prozesse können sich in ihrem zeitlichen Ablauf verschieben - d.h.
es kann vorkommen - dass alle 3 Prozesse "gleichzeitig" ablaufen.
U.a. erzeugt jeder der 3 Prozesse Dateien und Grafiken - was zu einer 
hohen Systemauslastung (100%) führt.
Ein Timelogging an verschiedenen Stellen der Programme hat mir gezeitgt 
- das die Prozesse teilweise freezen!

Nun meine Frage:
Können sich die Prozesse (wegen der gleichen Prio) gegenseitig 
blockieren - wenn z.B. alle 3 Prozesse gerade eine Datei (Größe 5MB) 
speichern ?

Gruss
Gast #2413121
Lesenswert?

max .. schrieb:
> Können sich die Prozesse (wegen der gleichen Prio) gegenseitig
> blockieren - wenn z.B. alle 3 Prozesse gerade eine Datei (Größe 5MB)
> speichern ?

ja.

Es ist ja nicht so das dein Programm 10% CPU braucht. Es ist das es eine 
Zeitlang 100% braucht und dann 0%. Wenn du nur eine CPU hast, dann kann 
in der 100% zeit auch nicht anderes laufen. Das ganze passiert zwar im 
Millisekunden bereich, aber du hast du ja nicht geschrieben ab wann es 
bei dir ein Freeze ist.
#2413291
Lesenswert?

also ich habe/hatte subjektiv auch immer das gefühl, dass, wenn eine 
applikation die Festplatte "überstrapaziert"
andere prozesse (die überhaupt nix mit Festplatte machen) auch sehr ins 
stocken kommen..

vorallem wenn, (wie in diesem fall) eine "große" datei (5MByte) 
geschrieben wird...

dank multicore und ssd ist das ja aber inzwischen "geschichte" ;-)
#2413332
Lesenswert?

Peter II schrieb:
> warum sollte die Festplatte auswirkungen auf Sleep(10) haben?
Weil der Zugriff auf die Festplatte eine höhere Priorität hat. Dieser 
erfolgt nicht mit der Priorität des Anwendungsprogrammes (User mode) 
sondern wird ans OS übergeben und erfolgt mit höherer Priorität(Kernel 
mode). Und dann müssen alle anderen warten.

mfg.
Gast #2413344
Lesenswert?

Thomas Eckmann schrieb:
>> warum sollte die Festplatte auswirkungen auf Sleep(10) haben?
> Weil der Zugriff auf die Festplatte eine höhere Priorität hat. Dieser
> erfolgt nicht mit der Priorität des Anwendungsprogrammes (User) sondern
> wird ans OS übergeben und erfolgt mit höherer Priorität(System). Und
> dann müssen alle anderen warten.

nein, der IO Request hat zwar eine höhere Prio aber er ist Asynchron, 
wenn er auf den Antwort warten wir der Prozess blockiert. Aber das hat 
keine Auswirkung auf anderen Anwendungen. Sonst würde ja nicht auf dem 
REchner mehr gehen wenn eine Anwenung eine große Datenmenge auf die 
Festplatte schreibt. (Das ganze gilt nur für den DMA-Modus, im PIO modus 
der Festplatte muss die CPU aktiv auf die Daten warten)
#2413446
Lesenswert?

Peter II schrieb:
> nein, der IO Request hat zwar eine höhere Prio aber er ist Asynchron,
> wenn er auf den Antwort warten wir der Prozess blockiert. Aber das hat
> keine Auswirkung auf anderen Anwendungen.
Asynchron bedeutet nicht, daß die CPU nichts damit zu tun. Wenn der 
Prozess
seinen Callback macht, ist die CPU mit dem beschäftigt. Sie dreht sich 
natürlich nicht auf der Stelle und wartet darauf, sondern gibt während 
dessen  die Resourcen frei.

Peter II schrieb:
> Sonst würde ja nicht auf dem
> REchner mehr gehen wenn eine Anwenung eine große Datenmenge auf die
> Festplatte schreibt.
Das Ganze verlangsamt sich ja auch. Nur ist zwischendurch meistens noch 
genug Zeit, daß man das als Benutzer nicht negativ bemerkt. Wenn aber 
mehrere Prozesse auf die gleiche Resource zugreifen, fällt das schon 
auf. Da nützt es auch nichts, wenn man 8 CPUs in seinem Rechner hat. 
Weil nämlich nur eine Festplatte da ist. Und auf die wird gewartet.


mfg.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren