0

で動作するように与えられましたstruct task_struct。プロセスの古さを判断する最良の方法は何ですか?

task_struct、次の最年少の兄弟と最年長の子への特定のポインタを保持するために使用されます。これは、一部のカーネル バージョンでは利用できなくなったようです。

私は特に Android の金魚カーネルを使用しています。構造を使用してプロセスを反復処理する方法を学ぼうとしていますがlist_head、各子プロセスまたは兄弟プロセスの年齢を判断する方法がわかりません。

では、どのメンバーまたはどの使用法がtask_structこれを行うでしょうか?

4

2 に答える 2

4

task_struct で real_start_time または start_time を使用できると思います。プロセス作成時に更新される

    struct timespec start_time;             /* monotonic time */
    struct timespec real_start_time;        /* boot based time */

注:これはバニラカーネルであり、Androidカーネルについてはわかりません

于 2014-04-20T15:35:44.750 に答える
2

物事をシンプルに保ち、関心のある各プロセスの /proc/PID/ の ctime を調べてみてはどうでしょうか。クロックの調整によって ctime が奇妙に見える可能性があることに注意してください。このようなイベントによって経過時間が負の値になった場合でも、適切なプログラムが失敗することはありません。

于 2014-04-20T10:30:45.600 に答える