For å bytte mellom ulike tråder på kjernenivå som tilhører samme prosess, utfører Linux-kjernen en prosessbryter, også kjent som en kontekstsvitsj. Her er en generell oversikt over trinnene som er involvert:
1. Lagre den gjeldende trådens kontekst:
- Kjernen lagrer først konteksten til den aktuelle tråden. Dette inkluderer lagring av trådens registre, minnehåndteringsinformasjon og annen relevant tilstandsinformasjon.
2. Velg neste tråd:
- Basert på planleggingsalgoritmen velger kjernen neste tråd som skal kjøres. Denne beslutningen tar hensyn til faktorer som prosessprioritet og CPU-belastningsbalansering.
3. Last inn den nye trådens kontekst:
- Kjernen laster inn konteksten til den valgte tråden. Dette innebærer å gjenopprette de lagrede registre, minneadministrasjonsinformasjon og annen tilstandsinformasjon.
4. Oppdater maskinvarekonteksten:
- Kjernen oppdaterer maskinvarens kontekst for å matche konteksten til den nye tråden. Dette inkluderer å oppdatere programtelleren (PC) for å peke til starten av trådens kode og sikre at de riktige minnesegmentene lastes inn i CPUen.
5. Gjenoppta kjøringen:
- Kjernen gjenopptar kjøringen av den nye tråden, med start fra punktet der den tidligere ble satt på pause eller avbrutt.
Det er viktig å merke seg at prosessbrytere også kan oppstå når en tråd frivillig gir CPU-en til en annen tråd eller når et systemanrop eller en annen hendelse utløser en overgang på kjernenivå.
Kjernen opprettholder ulike datastrukturer, for eksempel prosesstabellen og planleggeren, for å effektivt administrere og planlegge tråder på kjernenivå og sikre at de kjører på en rettferdig og effektiv måte.