タイムスタンプを表示して、1秒に一度、CPUごとのコンテキスト・スイッチの回数とすべてのCPUの合計回数をCPU番号または"total"
とともに表示するcswpercpu.d
という実行可能なDプログラムを作成してください。
BEGIN
プローブを使用して、Timestamp
、CPU
およびNcsw
というラベルの列が表示されるヘッダーを出力します。sched:::on-cpu
プローブを使用してコンテキスト・スイッチの終了を検出し、プローブが実行されたコンテキストのCPU番号をlltostr()
を使用して文字列に変換し、count()
を使用して集積変数@n
を増分します(キー値にCPU番号の文字列が設定されたとき、およびキー値に"total"
が設定されたとき)。sched:::on-cpu
プローブの詳細は、「Oracle® Linux: DTraceガイド」の「schedプロバイダ」を参照してください。profile:::tick-1sec
プローブを使用し、printf()
を使用してデータおよび時間を出力し、printa()
を使用してキー(CPU番号文字列または"total"
)および集積値を出力します。 日付と時間は、%Y
変換形式を使用して出力できるwalltimestamp
変数の値として利用できます。clear()
を使用して、集積変数@n
をリセットします。
(予想完了時間: 40分)