| Spis treści - algorytmy | Poprzedni | Następny | | Wybór procesu o najwyższym priorytecie dynamicznym |
Realizowany jest w funkcji schedule():
int idx; struct list_head queue; struct task_t next; struct prio_array_t *array; idx = sched_find_first_bit(array->bitmap); /* Najwyższy priorytet który mają aktywne procesy */ queue = array->queue + idx; /* Lista procesów o najwyższym procesie */ next = list_entry(queue->next, task_t, run_list); /* Proces do wykonania - pierwszy proces z listy */
Funkcja sched_find_first_bit jest różnie zaimplementowana w zależności od architektury.
Mapa bitowa procesów o danym priorytecie
Zaimplementowana na liczbach całkowitych typu unsigned long.
Tablica list procesów