I ikke-forebyggende planlægning, når først en proces starter sin eksekvering, kan den ikke foregribes af en anden proces, før den fuldfører sin eksekvering eller frivilligt frigiver CPU'en.
Sådan fungerer ikke-forebyggende algoritmer:
1. Procesvalg:
- Planlæggeren vælger den næste proces, der skal udføres baseret på planlægningspolitikker som First-Come First-Served (FCFS), Shortest Job First (SJF) eller enhver anden planlægningsalgoritme.
2. Ikke-afbrydelig udførelse:
- Når først en proces begynder at udføre, kan den ikke afbrydes af en anden proces. Dette betyder, at den valgte proces vil fortsætte med at udføre, indtil den fuldfører sin udførelse eller frivilligt opgiver CPU'en (f.eks. ved at udføre en I/O-operation).
3. Ingen fortegnelse:
- Mens den aktuelle proces udføres, kan ingen anden proces tage CPU'en fra den. Dette sikrer, at processer gennemføres uden at blive afbrudt af højere prioriterede processer.
4. Fuldførelse:
- Processen fortsætter med at udføre sine instruktioner, indtil den afslutter sin eksekvering eller når en tilstand, hvor den er blokeret (venter på I/O eller en ressource). Når processen er fuldført, er CPU'en tilgængelig til at planlægge den næste proces.
Ikke-forebyggende planlægningsalgoritmer er enklere at implementere end forebyggende, da der ikke er behov for hyppig kontekstskift. De kan dog føre til lavere systemeffektivitet og suboptimal ydeevne, da processer med højere prioritet kan blive nødt til at vente på, at processer med lavere prioritet fuldfører deres udførelse.
Eksempler på ikke-forebyggende planlægningsalgoritmer omfatter:
- Først til mølle (FCFS): Processer udføres i den rækkefølge, de ankommer, uden at tage hensyn til deres prioritet eller ressourcebehov.
- Shortest Job First (SJF) uden fortrinsret: Denne algoritme vælger processen med den korteste estimerede eksekveringstid til udførelse næste gang. Når først processen først er begyndt at udføre, kan den ikke foregribes af en anden proces, selvom sidstnævnte ankommer senere med en kortere estimeret eksekveringstid.