私は、HW割り当ての一部としてLinux 2.4.18の新しいスケジューリングメカニズムを実装しようとしています。 私は次の問題があります: 新しいメカニズムでは、アクティブなキューが空でないときにエポックを変更する必要があります。アクティブなキューからすべてのプロセスを期限切れにしてから期限切れのアクティブです。 アクティブなキュー内のすべてのプロセスを期限切れに転送するには、どうすればよいですか?Linuxでのプロセススケジューリングのメカニズム
私は値1を持つすべての140ビットマップを調べ、それぞれのユーザーのfor_each_taskを削除し、アクティブから削除して有効期限切れに挿入しました。
しかし、(システムコールを使用して)新しいメカニズムに変更する何らかの理由で、システムが自動的にリセットされます。
私は、システムがスケジュール機能中に非常に多くのプロセスを通過するのは難しいかもしれないと考えましたか?
アイデア?
これは、私は私はあなたが仮想マシンでこれを行う提案、およびシリアルオーバーgdbでのリモートデバッグうスケジュール機能で
for(int i=0;i<140;i++)
{
if(this_rq()->active->bitmap[i])
{
list_t* iterator;
list_t* queue=this_rq()->active->queue;
list_for_each(iterator, queue + i)
{
task_t* p = list_entry(iterator,task_t,run_list);
dequeue_task(p,this_rq()->active);
enqueue_task(p,this_rq()->expired);
}
}
}
おかげ