O(n) ajastin

O(n) ajastin [1]  on ajastin, jota käytetään Linux-ytimessä versioista 2.4 - 2.6. Versiosta 2.6.0 lähtien se on korvattu O(1) -skedoijalla ja versiosta 2.6.23 lähtien CFS.

Algoritmi

Tämä ajastin jakaa ajan "aikakausiin". Saman aikakauden sisällä prosesseja suoritettiin niille varatun ajan. Jos jokin prosessi oli käynnissä vähemmän kuin varattu aika, puolet varatusta ajasta lisättiin siihen aikaan, joka varataan prosessille seuraavassa "epookissa". Ajastin ottaa huomioon kaikki käynnistettävät prosessit ja löytää prosessin, jossa hyvyysfunktion arvo olisi suurin.

Edut

Tämä ajastin toimi paremmin kuin primitiivisempi edeltäjänsä, joka perustui sykliseen jonoon.

Haitat

Prosessien määrän kasvaessa ajoittajan työ alkaa vaatia huomattavan määrän prosessoriaikaa. Seuraavan tehtävän valinta liittyy suoritettavaksi valmiiden prosessien koko listan läpikulkuun, mikä tarkoittaa, että siihen kuluu O (n) aikaa, missä n on suoritettavaksi valmiiden prosessien lukumäärä. Se ei myöskään sovellu reaaliaikaisiin järjestelmiin, eikä sitä voitu skaalata uusimpaan[ milloin? ] moniydinprosessorit.

Muistiinpanot

  1. Lyhyt historia Linux-aikatauluista osoitteessa ibm.com