Я пытаюсь реализовать новый механизм планирования для Linux 2.4.18 как часть назначения HW. У меня есть следующая проблема: В новом механизме мне нужно изменить эпоху, когда активная очередь не пуста, для этого мне нужно передать весь процесс из активной очереди на истекший период, а затем переключиться между истекшим и активный. Как я могу пройти весь процесс в активной очереди, чтобы перенести их на истекший период?Механизм планирования процесса в Linux
Я пробовал просматривать все 140 растровых изображений, которые имеют значение 1, и в каждом из них я пользователь for_each_task и удален из активного и вставлен в истекший.
Но по какой-то причине, когда я перехожу к новому механизму (используя системный вызов), система сбрасывает себя.
Мое мнение, что, может быть, слишком сложно для системы пережить так много процессов во время функции расписания?
Любые идеи?
Это код, который я написал в функции графика
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);
}
}
}
Благодаря