2012-01-27 11 views
0

プロセスIDを指定すると、そのプロセスが現在ポーリング状態でブロックされているかどうかをどのように判断できますか?すなわち、それは負のタイムアウトでpoll()を呼び出し、入力が準備完了になるのを待っている。ポーリング状態のプロセスですか?

+1

"ポーリング状態"とはどういう意味ですか?ポーリングは通常、ブロックを伴わない。 – Mat

+0

@Matが質問を編集しました。(うまくいけば) – gcbenison

答えて

1

UNIX系システムでは、コマンドラインユーティリティ 'ps'がこの情報を提供します。 OSによってはpsの種類が多いので、manページを読んでください。 STATは、処理状態である

ps -eo pid,user,cpu,state,comm 

    PID USER  CPU STAT COMM 
    1 root  0 Ss /sbin/launchd 
    15 root  0 Ss /usr/libexec/kextd 
90710 root  0 R+ ps 
83804 joe  0 Ss /bin/bash 
89631 joe  0 S+ ssh 

:BSDライクなシステム(MAC)で

。 Sは割り込み可能なスリープを意味します。 s(小文字)はセッションリーダーを意味します。 '+'はフォアグラウンドプロセスグループにあることを意味します。 Rは実行中または実行可能(実行キュー上)を意味します。可能な状態はもっと多くあります。

+0

Linuxでは、ps -o状態が状態情報を与えるようです。ありがとうございました – gcbenison

+0

申し訳ありませんが、Linuxのタグが問題になっていないか、Linuxの例を示しています。 – joe

関連する問題