| |
|
|
| Windows bietet qui Possibilité, mehre Prozesse (alors Programme) gleichzeitig courir trop laisser - doch fonctionne là wirklich irgendetwas "gleichzeitig" ab? non. Alleine qui Tatsache, qui es dans qui règle seulement une Prozessor gibt zeigt, qui cela wohl pas qui le cas ist. cela Betriebsystem doit alors irgendwie festlegen, quand welches Programme combien Rechenzeit vom Prozessor contient.
Wird un Programme gestartet, wird ihm une sogenannte "Basispriorität" avec sur den Weg gegeben, qui festlegt à quel Stelle cela Programme dans qui "Warteschlange sur Prozessorzeit" eingefügt wird. un Bestandteil cette "Basispriorität" ist qui Priorität des Prozesses. là un Prozess mais aussi plusieurs Threads - alors indépendant ablaufende Programmteile - avons peux, peux aussi chaque Fil une zusätzliche différent Priorität zugewiesen volonté.
Beides, Priorität des Prozesses et Priorität eines Threads peux vom Programmierer festgelegt volonté, dans qui règle avons cet Prioritäten mais Standardwerte. seulement qui am Anfang cette angesprochenen "Warteschlange" steht, erhält wirklich im Augenblick Prozessorzeit zugewiesen. Dabei fonctionne im Hintergrund un Zeitinterwall ab. Am Ende des Zeitinterwalls wird qui actuellement laufende Fil vom Anfang qui "Warteliste" à qui dernier Stelle qui wartenden Threads avec qui gleichen Priorität déménagé.
là pour cette Methode Threads avec einer niedrigen Basispriorität gar pas fonctionnement volonté würden, gibt es là près de qui Basispriorität encore qui "Dynamische Priorität". So augmenté sich zum Beispiel je länger un Prozess wartet cet "Dynamische Priorität", si bien que aussi Threads avec niedriger Basispriorität irgendwann einmal am Anfang qui "Warteschlange" stehen. cet "Dynamische Priorität" erhoht sich également, si un la fenêtre eines Prozesses den Concentrer bekommt - et cela pour alle Threads des Prozesses. Ist un fil ensuite seulement einmal am Anfang qui "Warteschlange" angelang, verringert sich pour chaque le bout des Zeitinterwalls qui Dynamische Priorität, jusqu'à wieder qui anfängliche Basispriorität erreicht ist. cela Privileg SeIncreaseBasePriority schränkt qui API SetPriorityClass un. SetPriorityClass ist dabei pas sur qui Aktivierung des Privilegs angewiesen, mais aktiviert cet selbst - es doit alors seulement vorhanden son. Absent cela angesprochene Privileg, peux qui REALTIME_PRIORITY_CLASS ($100) pas vergeben volonté. Wird versucht cet Priorität trop vergeben, wird qui Priorität sur den ensuite höchsten Wert ($80) HIGH_PRIORITY_CLASS gesetzt. une Rückmeldung sur peut-être. pas vorhandene Rechte erfolgt pas.
qui API SetThreadPriority wird pas par cela Privileg eingeschränkt, quoique cet API également zum mettons qui Basispriorität beiträgt!
|
|
|
| |
|
|