Linux (ydin)
Moniajo ja rinnakkaisuus

Linux-ydin tukee ulkoista moniajoa (irrottava/keskeyttävä moniajo, pre-emptible), sekä ytimen sisäinen moniajo on mukana 2.6-sarjassa, jota on myöhemmin laajennettu nk. vapaaehtoiseen moniajoon. Käyttäjäavaruuden ohjelmat ovat aina keskeytettävissä ja ytimen sisäiseen moniajoon on eri menetelmiä. Kun ydin on käännetty sisäiseen moniajoon suoritus voidaan keskeyttää lähes missä vain tilanteessa. Ytimen sisäinen moniajo voidaan jättää käännösaikana pois eri tarkoituksia varten. Vuoronnus käyttää vuoronnusalueita (scheduling domains) ja useampia suoritusjonoja prosesseille, jotka odottavat ajovuoroaan.
Ydin tukee useita menetelmiä ja algoritmeja tehtävien ajoituksen hallintaan. Ytimen versiossa 2.6.23 lisätty CFS korvasi O(1) ja RSDL-vuorontajat. Ytimeen on kehitetty tuki ladattaville skedulereille eri käyttötarpeita varten. EEVDF-vuorontaja on kehitetty vaihtoehdoksi CFS-vuorontajalle. EEVDF parantaa latenssiherkkien ohjelmien suoritusta ja poistaa heuristiikkaa, joka aiheuttaa CFS-vuorontajassa vaikeuksia. EEVDF käsittelee prioriteetin kuten CFS, mutta laskee myös aikarajan (engl. deadline), jolloin prosessin on saatava suoritusaikaa.
Ydintä voidaan suorittaa moniajossa yhdellä suorittimella sekä rinnakkain moniprosessoinnilla. Ydin tukee ulkoisien NPTL-säikeiden lisäksi ytimen sisäisiä säikeitä.
Ytimen sisäinen moniajo tunnistaa mm. spinlock-lukituksen käytön ytimen sisäisessä moniajossa. Ydin käyttää runsaasti suoritinkohtaisia per-CPU tietorakenteita, jotka parantavat muun muassa välimuistin käytön tehokkuutta, mutta joiden käytössä sisäinen moniajo voidaan kytkeä hetkellisesti pois käytöstä.
Sisäistä moniajoa voi konfiguroida eri käyttötarkoituksiin soveltuvaksi.
Reaaliaikakäyttöön tarkoitettu Real-Time Linux lisää omia vaihtoehtoja ytimen sisäiseen moniajoon. Reaaliaikakäyttöön on suunnattu SCHED_DEADLINE-vuoronnus vaihtoehtona aiemmille SCHED_FIFO- ja SCHED_RR-käytännöille.
Ytimen NO_HZ -optio vähentää ajoituksen vaatimia herätteitä tehostaen virrankäyttöä ja suorituskykyä tietyissä tilanteissa.
Vuoronnukseen on kehitetty virrankäytön (energiatarpeen) ja lämpörajoitusten käsittely. Vuoronnus käsittelee myös ytimien maksimikapasiteetin niiden suorituskyvyn mukaan epäsymmetrisessä moniprosessoinnissa kuten ARM big.LITTLE -järjestelmissä.
Vuoronnus käsittelee saman ytimen säikeiden (SMT) lisäksi saman suorittimen ytimiä siten, että suorittimella ajettavat tehtävät voidaan ryhmitellä sen mukaan, voivatko ne jakaa saman suoritinytimen (core scheduling). Ratkaisulla vain keskenään luotetut säikeet voivat jakaa saman suoritinytimen resursseja, kun yhteen ryhmään kuuluvat eivät luota toiseen ryhmään. Käyttötapauksena ovat pilvipalvelut, joissa samalla tietokoneella voi olla samanaikaisesti monen eri asiakkaan tehtäviä, joiden välillä on oltava suojaus haavoittuvuuksien varalta, mutta asiakkaan omien tehtävien välillä suojaus voi olla pienempi ja tehtäviä voidaan ajaa rinnakkain samalla ytimellä.
Keskeytyskäsittelyn vuoksi ytimessä on keinoja siirtää suoritusta. Keskeytyksen sattuessa tietokoneen suoritin pysäyttää tekemänsä asian, jolloin kutsutaan ytimessä olevaa keskeytyskäsittelyä. Ytimen keskeytyskäsittelystä on palattava nopeasti, jonka vuoksi suoritus siirretään. Laitteistokeskeytyksien sijaan on käytössä työjonoja, perinteisen Unixin kaltaisia ohjelmistokeskeytyksiä ("alempi puolisko") sekä taskletit, joista halutaan eroon.
Vuoronnus tukee NUMA-muistiarkkitehtuuria, jossa tietokoneen muistiväylän viive ja kaista riippuvat siitä, miten kaukana suoritin tai väylä on muistisolusta. Ydin pyrkii sijoittamaan suoritettavan tehtävän suorittimelle, joka on lähinnä suoritettavan tehtävän tarvitsemaa muistialuetta.