O(n) schemaläggare

O(n) schemaläggare [1]  är schemaläggaren som används i Linux-kärnan från version 2.4 till 2.6. Sedan version 2.6.0 har den ersatts av O(1) scheduler och sedan 2.6.23 av CFS.

Algoritm

Denna schemaläggare delar in tiden i "epoker". Inom samma epok utfördes processerna under den tid som tilldelats dem. Om någon process körde mindre än den tilldelade tiden, så lades hälften av den tilldelade tiden till den tid som kommer att tilldelas processen i nästa "epok". Schemaläggaren överväger alla processer som är tillgängliga för lansering och hittar den process för vilken värdet av godhetsfunktionen skulle vara störst.

Fördelar

Denna schemaläggare presterade bättre än sin mer primitiva föregångare, som baserades på en cyklisk kö.

Nackdelar

Med en ökning av antalet processer börjar schemaläggarens arbete att kräva en betydande mängd processortid. Valet av nästa uppgift är förknippat med passagen av hela listan över processer redo för exekvering, vilket innebär att det tar O (n) tid, där n är antalet processer redo för exekvering. Det var inte heller lämpligt för realtidssystem och kunde inte skalas till det senaste[ när? ] flerkärniga processorer.

Anteckningar

  1. En kort historik över Linux-schemaläggare på ibm.com