I ikke-forebyggende planlegging, når en prosess starter sin kjøring, kan den ikke bli forhåndsaktivert av en annen prosess før den fullfører kjøringen eller frivillig frigjør CPU-en.
Slik fungerer ikke-forebyggende algoritmer:
1. Prosessvalg:
- Planleggeren velger neste prosess som skal utføres basert på planleggingspolicyer som First-Come First-Served (FCFS), Shortest Job First (SJF), eller en hvilken som helst annen planleggingsalgoritme.
2. Ikke-avbruddsfri utførelse:
- Når en prosess først begynner å kjøre, kan den ikke avbrytes av en annen prosess. Dette betyr at den valgte prosessen vil fortsette å kjøre til den fullfører sin utførelse eller frivillig gir opp CPUen (f.eks. ved å utføre en I/O-operasjon).
3. Ingen forkjøpsrett:
- Mens den nåværende prosessen kjører, kan ingen annen prosess ta CPU-en fra den. Dette sikrer at prosessene fullføres uten å bli avbrutt av prosesser med høyere prioritet.
4. Fullføring:
- Prosessen fortsetter å utføre instruksjonene til den er ferdig med utførelsen eller når en tilstand der den er blokkert (venter på I/O eller en ressurs). Når prosessen er fullført, er CPU tilgjengelig for å planlegge neste prosess.
Ikke-forebyggende planleggingsalgoritmer er enklere å implementere enn forebyggende, siden det ikke er behov for hyppig kontekstbytte. Imidlertid kan de føre til lavere systemeffektivitet og suboptimal ytelse, ettersom prosesser med høyere prioritet kan måtte vente på at prosesser med lavere prioritet fullføres.
Eksempler på ikke-forebyggende planleggingsalgoritmer inkluderer:
- Første til mølla (FCFS): Prosesser utføres i den rekkefølgen de kommer, uten å ta hensyn til deres prioritet eller ressursbehov.
- Shortest Job First (SJF) uten forkjøpsrett: Denne algoritmen velger prosessen med den korteste estimerte utførelsestiden for utførelse neste. Imidlertid, når prosessen starter utførelse, kan den ikke bli foreskrevet av en annen prosess, selv om sistnevnte kommer senere med en kortere estimert utførelsestid.