私はオペレーティングシステムに関するプロジェクトを進めており、オペレーティングシステムのプロセススケジューリングデータが必要です。データには、各プロセスのCPUタイムスライスとメモリー要件とともに、短期スケジューラーと長期スケジューラーのすべてのプロセスのリストを含める必要があります。また、他のプロセスがいつ、どのプロセスによって先取りされたかについてのデータも必要です。 Linuxでこれらすべてのデータを収集する方法はありますか?どうすればいいですか?
Linuxソースコードには構造体がありますtask_struct
。include/linux/sched.h
構造体内の各オブジェクトの状態を取得する方法はありますか?
ベストアンサー1
詳細なスケジュール情報が必要な場合は、次のいずれかのツールを使用できます。
- パフォーマンス
- システムクリック
- dtrace(Linuxポートの状態がどうかわかりません)
- システムマイニング
これらのすべては、カーネルフックを利用して、コンテキスト切り替え、割り込み、I / O、システムコールなどのイベントを公開できます。