Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Betriebssysteme (https://www.delphipraxis.net/27-betriebssysteme/)
-   -   Der Unterschied zwischen den Prozessprioritätsstufen? (https://www.delphipraxis.net/68740-der-unterschied-zwischen-den-prozessprioritaetsstufen.html)

emteg 4. Mai 2006 14:37


Der Unterschied zwischen den Prozessprioritätsstufen?
 
Ich hab bei google irgendwie icht wirklich etwas dazu finden können, deshalb frag ich mal hier.

Im Windows Taskmanager kann man ja für jeden prozess die Priorität in 6 stufen einstellen, per default wird ein prozess als "normal" gestartet. Es ist natürlich klar, dass bei höherer stufe auch mehr rechenzeit für das Programm zur verfügung gestellt wird. Wieviel mehr aber ist das?

Soweit ich das verstehe beruhen Betriebssysteme ja darauf, dass sie den Programmen CPU-Zeit zur verfügung stellen und zwar so, dass scheinbar alles in echtzeit abläuft. Tatsächlich aber kriegt ein Programm immer nur ein kurzes Zeitfenster, in dem es die CPU belegt, wenn das vorbei ist, kommt das nächste programm dran. Mit höherer priorität wird doch wahrscheinlich dieses Zeitfenster vergrößert bzw. die aufrufhäufigkeit des programms erhöht, oder?
Und wie groß sind da die unterschiede, zwischen den verschiedenen schritten?

NicoDE 4. Mai 2006 14:46

Re: Der Unterschied zwischen den Prozessprioritätsstufen?
 
Zitat:

Zitat von emteg
Und wie groß sind da die unterschiede, zwischen den verschiedenen schritten?

Das ist abhängig von der jeweiligen Implementation. Da die Verwaltung transparent und ausschließlich Sache des Betriebssystems ist, speilen die genauen Werte keine Rolle (die handelsüblichen Windows-Versionen sind keine Echtzeitbetriebsysteme - es wird also keinem Process/Thread garantiert, wann und in welchen Intervallen der Code ausgeführt wird).

Luckie 4. Mai 2006 14:51

Re: Der Unterschied zwischen den Prozessprioritätsstufen?
 
Zitat:

Zitat von emteg
dass bei höherer stufe auch mehr rechenzeit für das Programm zur verfügung gestellt wird. Wieviel mehr aber ist das?

Das ist von Microsoft nicht genau dokumentiert, da das interne Scheduleing von Prozessen ständigen Änderungen unterworfen ist und sich schon bei ServicePacks ändern kann.
Aus meinem Threading Tutorial:
Zitat:

Microsoft behält es sich vor den Algorithmus zur Ermittlung der Prioritätsstufe
zu ändern. Es sollte also keine Anwendung entworfen werden, die eine Kenntnis darüber
erfordert. Eine Beschränkung auf die Prioritätsklasse und der relativen Thread-Priorität
sollte sicherstellen, dass die Anwendung auch unter zukünftigen Windows-Versionen lauffähig
ist.

Zitat:

Mit höherer priorität wird doch wahrscheinlich dieses Zeitfenster vergrößert bzw. die aufrufhäufigkeit des programms erhöht, oder?
Nicht ganz, das ganze ist etwas komplexer. Siehe dazu auch das Kapitel über Thread-Prioritäten in meinem Tutorial:
http://delphitutorials.michael-puff.de


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:03 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz