| Spis treści - algorytmy | Poprzedni | Następny | Linux - nowy algorytm szeregowania, nowa epoka

Nowa epoka

Rozpoczęcie nowej epoki polega na przełączeniu wskaźników active i expired. Wykonuje to poniższy fragment kodu z funkcji schedule():

struct prio_array array = rq->active;
if (!array->nr_active) {      /* czy nie ma już procesów które chcą się wykonać i mają jeszcze czas */              
 rq->active = rq->expired;   
 rq->expired = array;                
 rq->expired_timestamp = 0;   
}

Kwanty jakie otrzymają procesy w nowej epoce przeliczane są wcześniej. Każdy proces zanim trafi do listy expired ma obliczony czas jaki dostanie w następnej epoce. Nowy kwant obliczany jest w momencie w którym kończy się stary w funkcji scheduler_tick(). Funkcja ta jest wywoływana przez przerwanie zegarowe.