Time slicing

(eller: tidsdeling).

Metode til afvikling af opgaver på edb-systemer med styresystemer, der benytter multitasking.

Regneenheden i en computer kan kun udføre arbejde for ét program, ét task eller én proces ad gangen; derfor tildeles hver proces en tidsperiode (time slice), hvor dens instruktioner udføres. En time slice er normalt 10-200 millisekunder. Når tidsperioden udløber, afbryder styresystemet den igangværende proces og fortsætter med den næste proces i rækken. Denne proces udfører nu arbejde i den tildelte tidsperiode, der kan være forskellig i længde fra den foregående. På denne måde fortsætter styresystemet med at tildele regnekapacitet til alle aktive processer, og derved opnås den bedste udnyttelse af maskinellet.

[[Image:timsl-1.gif|Eksempel på time slicing, der f.eks. kunne fungeresammen med non-preemptive scheduling. Hver proces får tildelt en lille del af computerens regnekraft, og den aktive proces har CPU'en i hele tidsperioden. Ved periodens udløb overgives CPU'en til næste proces i rækken]] [[Image:timsl-2.gif|Time slicing ved preemptive scheduling. Ved afbrydelsevideregives CPU'en selv om den tildelte time slice ikke er helt brugt op; proces A får resten af sin slice på et senere tidspunkt. Udløb af den tildelte periode og skift til næste aktive proces kan her ske f.eks. ved afbrydelse fra en timer-kreds]] De fleste styresystemer anvender velgennemtænkte algoritmer til bestemmelse af den tidsperiode, de forskellige processer skal tildeles. I algoritmen indgår specielt den prioritet, som processen har i styresystemet.

Se også corutine, non-preemptive scheduling og preemptive scheduling.

Forfattere: 
Carsten Hougaard
Casper Thomsen