Scheduling

Et eksempel på en threadpool (grønne bokse) med en kø (FIFO) af ventende tasks (blå) og en kø af afsluttede tasks (gul).
En meget forenklet struktur af Linuxkernen, som inkluderer proces-scheduler, I/O-scheduler og datapakke-scheduler.

Inden for databehandling er scheduling (dansk term: resurseplanlægning) handlingen at tildele resurser til at udføre tasks.[1] Resurserne kan være processorer, netværkslinks eller udvidelseskort. Tasks kan være tråde, processer eller datastrømme.

Schedulering-aktiviteten udføres af en proces kaldet en scheduler. Schedulers er ofte designet til at holde alle computerresurser beskæftiget (som i belastningsbalancering), tillade flere brugere at dele systemresurser effektivt eller for at opnå en målrettet servicekvalitet.[1]

Schedulering er grundlæggende for selve beregningen og en iboende del af udførelsesmodellen for et computersystem; konceptet med scheduling gør det muligt at have computermultitasking med en enkelt central processing unit (CPU).

Styresystemers schedulers

StyresystemPreemptionScheduler algoritme
Amiga OSJaPrioriteret round-robin scheduling
FreeBSDJaMultilevel feedback queue
InfernoUkendtUkendt
Linuxkerne før 2.6.0JaMultilevel feedback queue
Linuxkerne 2.6.0–2.6.23JaO(1)-scheduler
Linuxkerne efter 2.6.23 og før 6.6JaCompletely Fair Scheduler
Linuxkerne 6.6 og senereJaEarliest eligible virtual deadline first scheduling (EEVDF)
Klassisk Mac OS før-9IngenCooperative scheduler
Mac OS 9NogenPreemptive scheduler for MP tasks - og cooperative for processer og tråde
macOS (incl. Mac OS X)JaMultilevel feedback queue
MinixJaSimple multi-priority round robin[2]
Minix3JaMultilevel queueing[3]
MulticsJaGreenberger-Corbató exponential scheduler, MTB-193 Priority Scheduler[4]
NetBSDJaMultilevel feedback queue
Plan 9UkendtUkendt
RedoxJaround-robin scheduling[5]
SolarisJaMultilevel feedback queue
Windows 3.1xIngenCooperative scheduler
Windows 95, 98, MehalvdelenPreemptive scheduler for 32-bit processer - og cooperative for 16-bit processer
Windows NT (inklusiv 2000, XP, Vista, 7 og Server)JaMultilevel feedback queue

Referencer

  1. ^ a b people.cs.rutgers.edu: Process Scheduling, backup
  2. ^ wiki.minix3.org: Userspace scheduling, backup Citat: "...Scheduling in Minix is simple multi-priority round robin..."
  3. ^ minixnitc.github.io: Process Scheduling, backup Citat: "...Minix3 uses multilevel queuing system for scheduling..."
  4. ^ multicians.org: The Multics Scheduler, backup Citat: "... The initial proposal for this set of changes was in MTB-193 Priority Scheduler (1975-05-19)..."
  5. ^ doc.redox-os.org: Scheduling on Redox, backup Citat: "...The Redox kernel uses a scheduling algorithm called Round Robin..."
Spire
Denne it-artikel er en spire som bør udbygges. Du er velkommen til at hjælpe Wikipedia ved at udvide den.

Medier brugt på denne side

Simplified Structure of the Linux Kernel.svg
Forfatter/Opretter: ScotXW, Licens: CC BY-SA 4.0
Simplified illustration of the structure of the Linux kernel; based on page 851 in Modern Operating Systems (ISBN 013359162X) by Andrew Stuart Tanenbaum. The Linux kernel Virtual File System (VFS) is documented under Documentation/filesystems/vfs.rst in its source code.
Thread pool.svg
(c) I, Cburnett, CC BY-SA 3.0
A simple thread pool. The task queue has many waiting tasks (blue circles). When a thread opens up in the queue (green box with dotted circle) a task comes off the queue and the open thread executes it (red circles in green boxes). The completed task then "leaves" the thread pool and joins the completed tasks list (yellow circles).
Gnome-fs-client.svg
Forfatter/Opretter: David Vignoni, Licens: LGPL
From the Amaranth icon theme