Dienstag, 22. Mai 2012, 05:43

Du bist nicht angemeldet.



Teetrinker

ist fest eingezogen.

  • »Teetrinker« ist der Autor dieses Themas

Beiträge: 537

Ubuntu: ---

Kernel: 2.6.32-5-amd65 (Debian Wheezy)

Architektur: 64-bit

  • Private Nachricht senden

1

Dienstag, 14. August 2007, 00:27

Was genau ist ein schlafender Prozess?

Hallo,
was genau ist ein Prozess der in der Systemüberwachung mit dem Status "schläft" geführt wird? Ich höre gerade Musik mit Audacious, d.h. ja dass Audacious läuft. Trotzdem wird er in der Systemüberwachung als "schläft" geführt. Finde ich ein bisschen verwirrend.
Kann mir da mal jemand Nachhilfe geben?
Gruß,
Lars

------------------------------------------------
"Mit leerem Kopf nickt es sich leichter."
Zarko Petan

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Teetrinker« (14. August 2007, 18:37)


ezazazel

The Supporter

Beiträge: 719

Ubuntu: 11.10

Kernel: 3.0.0-14-generic

Architektur: 32-bit

  • Private Nachricht senden

2

Dienstag, 14. August 2007, 13:10

Das ist ein etwas komplexeres Thema. Ich versuche es ganz kurz zusammen zu fassen: Ein Prozess kann entweder aktiv (TASK_RUNNING) oder schlafend sein. Wobei er, wenn er schläft zwei Zustände haben kann: TASK_INTERRUPTIBLE und TASK_UNINTERRUPTIBLE. Beim ersten kann ein Signal den Prozess wieder aufwecken, beim zweiten nicht.

Um genau zu sein: Das sind die möglichen Zustände:

Zitat


(
#define TASK_RUNNING
#define TASK_INTERRUPTIBLE
#define TASK_UNINTERRUPTIBLE
#define TASK_ZOMBIE
#define TASK_STOPPED
#define TASK_EXCLUSIVE
)


Gesteuert wird das Ganze über den Scheduler, welcher jedem Prozess sogenannte Time_Slices, also Zeitschlitze in denen er seine Arbeit machen darf, zuweist.
Warum braucht man das? Multitasking! Prozesse werden einer Queue zugewiesen und dann abgearbeitet, wie und wann welcher Prozess arbeiten darf (also aufgeweckt wird) ist eine andere Sache. Ein schlafender Prozess ist also ein Prozess, der im Rahmen eines Multitaskingsystems zu einem bestimmten Zeitpunkt keine Prozessorzeit beanspruchen darf, um anderen parallel laufenden Programmen die Möglichkeit zu geben, auch zu agieren.

Warum wird dein Prozess also jetzt als schlafend angezeigt? Vermutlich aus einem einfachen Grund: auch das Anzeigeprogramm deines OS ist ein Prozess und üb erprüft daher in Intervallen den Zustand deiner Prozesse. Leicht möglich dass du ihn immer schlafend "erwischst". Dennoch wird der Prozess, so vermute ich, beanspruchte CPU Zeit anzeigen. Und damit ist der Prozess "enttarnt"

Hoffe das hat etwas geholfen. Ist wie gesagt keine leichte Materie.
Si non confectus, non reficiat (If it's not broken, don't fix it)
Shuttle XPC SD39P2; Intel Core2Duo 6420; Samsung T166 SATA II 3,5" 500GB; Gainward Bliss 8600GT PCX SilentFx, Cinergy T USB XS hybrid && MSI Wind Nettop && Toshiba Portege M700 && Acer Aspire One

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »ezazazel« (14. August 2007, 17:50)


Teetrinker

ist fest eingezogen.

  • »Teetrinker« ist der Autor dieses Themas

Beiträge: 537

Ubuntu: ---

Kernel: 2.6.32-5-amd65 (Debian Wheezy)

Architektur: 64-bit

  • Private Nachricht senden

3

Dienstag, 14. August 2007, 18:37

Alles klar, so etwas ähnliches hatte ich mir auch schon gedacht, danke!
Gruß,
Lars

------------------------------------------------
"Mit leerem Kopf nickt es sich leichter."
Zarko Petan