このページを編集する際は、編集に関する方針に従ってください。

概要

  • kernel/sched.cにて定義
  • どれくらい待たされたか計算する。プロセスが自発的に、もしくは不本意に実行を取りやめる時に呼ばれる

引数

  • t--待ったタスク

実装

/*

* Called when a task finally hits the cpu.  We can now calculate how
* long it was waiting to run.  We also note when it began so that we
* can keep stats on how long its timeslice is.
*/

static inline void sched_info_arrive(task_t *t) {

	unsigned long now = jiffies, diff = 0;
	struct runqueue *rq = task_rq(t);
  • タスクtがマッピングされている、CPUのランキューを返す
	if (t->sched_info.last_queued)
		diff = now - t->sched_info.last_queued;
  • タスクtがすでに実行されたことがある場合、最後に実行されてから経過した時間をdiffに格納する
	sched_info_dequeued(t);
	t->sched_info.run_delay += diff;
  • tのランキューで待ちに費やした時間(run_delay)にdiffを加算する
	t->sched_info.last_arrival = now;
  • tのCPUを最後に利用した時間(last_arrival)にnowを設定する
	t->sched_info.pcnt++;
  • tのCPU上で走行したタイムスライス値(pcnt)をインクリメントする
	if (!rq)
		return;
  • ランキューがNULLのは終了
	rq->rq_sched_info.run_delay += diff;
  • ランキューで待ちに費やした時間(run_delay)にdiffを加算する
	rq->rq_sched_info.pcnt++;
  • CPU上で走行したタイムスライス値(pcnt)をインクリメントする

}

呼出元


履歴

  • 作者:ひら
  • 日付:2005/3/7
  • 対象:2.6.10
    更新日更新者更新内容

コメント

  • > プロセスが自発的に、もしくは不本意に実行を取りやめる時に呼ばれる -- 2017-12-27 (水) 11:36:16
  • この関数に、この説明って不適切な気がしますが… -- 2017-12-27 (水) 11:36:45


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-12-27 (水) 11:36:45 (174d)