What are the different types of process schedulers?

Hvad er en Langtidsplanlægger i et Operativsystem?

01/07/2012

Rating: 4.65 (2623 votes)

Har du nogensinde tænkt på, hvordan din computer kan håndtere så mange opgaver på én gang? Fra at afspille musik og lade dig surfe på internettet til at køre komplekse programmer i baggrunden. Hemmeligheden ligger i en kernekomponent i ethvert moderne operativsystem: procesplanlæggeren. Man kan tænke på operativsystemet som computerens hjerne, og planlæggeren er den del af hjernen, der beslutter, hvilke opgaver der skal have opmærksomhed, og hvornår. I denne artikel vil vi dykke ned i en specifik, men afgørende type planlægger: langtidsplanlæggeren, også kendt som jobplanlæggeren.

What is CPU scheduling & synchronization?
CPU scheduling : scheduling criteria, preemptive & non-preemptive scheduling, scheduling algorithms (FCFS, SJF, RR, priority), algorithm evaluation, multi-processor scheduling. Process Synchronization : background, critical section problem, critical region, synchronization hardware, classical problems of synchronization, semaphores.
Indholdsfortegnelse

Hvad er Procesplanlægning?

Før vi kan forstå langtidsplanlæggeren, må vi først forstå, hvad procesplanlægning er. Procesplanlægning er en fundamental opgave for et operativsystem, hvor det administrerer og fordeler processer (kørende programmer) til CPU'en (Central Processing Unit). Formålet er at holde CPU'en så travl som muligt og samtidig sikre, at alle processer bliver eksekveret på en retfærdig og effektiv måde. Uden effektiv planlægning ville din computer føles langsom, og programmer ville måske aldrig blive færdige. Systemet bruger forskellige køer til at organisere processer baseret på deres status.

De Vigtigste Planlægningskøer

For at styre de mange processer effektivt, bruger operativsystemet et system af køer. Forestil dig det som forskellige venteværelser på et hospital:

  • Jobkø (Job Queue): Dette er det store, generelle venteværelse, hvor alle nye processer ankommer, når de startes. Her venter de på at blive vurderet og potentielt lukket ind i systemets hovedhukommelse.
  • Klar-kø (Ready Queue): Dette er venteværelset lige uden for lægens kontor (CPU'en). Processer i denne kø er klar til at blive eksekveret og venter kun på, at CPU'en bliver ledig. De er allerede indlæst i hukommelsen.
  • Enhedskø (Device Queue): Hvis en proces har brug for at vente på en handling fra en enhed, f.eks. at læse fra en harddisk eller modtage data fra netværket, placeres den i en enhedskø. Det svarer til at blive sendt til et andet rum for at vente på resultater fra en blodprøve, før man kan fortsætte behandlingen.

De Tre Typer af Planlæggere

Operativsystemer anvender typisk tre forskellige niveauer af planlæggere til at styre processernes livscyklus. Hver har sin egen rolle og hastighed.

1. Langtidsplanlæggeren (Job Scheduler)

Dette er artiklens hovedfokus. Langtidsplanlæggeren er den 'dørmand', der beslutter, hvilke processer fra jobkøen der skal indlæses i hovedhukommelsen (RAM) og dermed flyttes til klar-køen. Den har et langsigtet perspektiv og træffer sine beslutninger relativt sjældent – måske kun hvert par sekunder eller minutter.

Hovedformålet med langtidsplanlæggeren er at kontrollere graden af multiprogrammering – altså antallet af processer, der er i hukommelsen på samme tid. En af dens vigtigste opgaver er at skabe en god blanding af processer. Den forsøger at balancere mellem:

  • CPU-bundne processer: Programmer, der udfører mange beregninger og bruger meget CPU-tid (f.eks. videoredigering eller videnskabelige simuleringer).
  • I/O-bundne processer: Programmer, der bruger meget tid på at vente på input/output-operationer, såsom at læse filer eller vente på brugerinput (f.eks. en teksteditor).

Ved at vælge en god blanding sikrer langtidsplanlæggeren, at der altid er en proces klar til at bruge CPU'en, selvom andre processer venter på I/O. Dette maksimerer systemets samlede effektivitet. I mange moderne systemer, især tidssdelingssystemer som Windows eller macOS, er rollen for langtidsplanlæggeren minimal eller fraværende, da nye processer ofte indlæses direkte i hukommelsen.

What is a long term process scheduler?

2. Korttidsplanlæggeren (CPU Scheduler)

Korttidsplanlæggeren, ofte kaldet CPU-planlæggeren, er den hurtigste af de tre. Dens opgave er at vælge den næste proces fra klar-køen, der skal tildeles CPU'en. Denne beslutning tages mange gange i sekundet. Hver gang en proces afsluttes, skifter til ventetilstand eller afbrydes, træder korttidsplanlæggeren i aktion. Dens mål er at optimere systemets ydeevne på kort sigt, f.eks. ved at minimere ventetid og maksimere CPU-udnyttelse. Den bruger forskellige algoritmer som FCFS (First-Come, First-Served), SJF (Shortest Job First) eller Round Robin til at træffe sine valg.

3. Mellemtidsplanlæggeren (Medium-Term Scheduler)

Mellemtidsplanlæggeren fungerer som et bindeled mellem de to andre. Dens primære funktion er at håndtere 'swapping' – processen med midlertidigt at fjerne en proces fra hovedhukommelsen og gemme den på sekundær lagerplads (som en harddisk) for at frigøre hukommelse. Dette kan være nødvendigt, hvis hukommelsen er overbelastet, eller for at forbedre blandingen af processer. Processen, der er 'swappet ud', kan senere genindlæses i hukommelsen for at fortsætte sin eksekvering. Mellemtidsplanlæggeren hjælper med at reducere graden af multiprogrammering midlertidigt og er især vigtig i systemer, hvor hukommelse er en knap ressource.

Sammenligning af Planlæggere

For at give et klart overblik er her en tabel, der sammenligner de tre typer planlæggere:

EgenskabLangtidsplanlæggerKorttidsplanlæggerMellemtidsplanlægger
Andet NavnJob SchedulerCPU SchedulerSwapping Scheduler
HastighedLangsom (kører sjældent)Meget hurtig (kører konstant)Moderat
Primær FunktionKontrollerer graden af multiprogrammeringVælger næste proces til CPU'enHåndterer swapping af processer
ArbejdsområdeFlytter processer fra disk til hukommelseFlytter processer fra hukommelse til CPUFlytter processer mellem hukommelse og disk

Hvad er et Kontekstskift?

Når korttidsplanlæggeren beslutter at skifte fra en kørende proces til en anden, skal systemet udføre et kontekstskift. Dette er en mekanisme, hvor CPU'ens nuværende tilstand (alle data i dens registre, programtæller osv.) gemmes i processens kontrolblok (PCB). Derefter indlæses den nye process' gemte tilstand fra dens PCB. Dette gør det muligt for processen at genoptage sin eksekvering præcis, hvor den slap. Kontekstskift er essentielt for multitasking, men det er også en ren overhead-omkostning, da der ikke udføres noget produktivt arbejde under selve skiftet. Derfor er det vigtigt, at skiftene sker så hurtigt som muligt.

Ofte Stillede Spørgsmål (FAQ)

Hvad er det primære mål for en langtidsplanlægger?

Det primære mål er at styre antallet af processer i hukommelsen (graden af multiprogrammering) og at sikre en god balance mellem CPU-intensive og I/O-intensive processer for at opnå maksimal systemeffektivitet.

What is a long term process scheduler?
Long term is also known as a job scheduler, whereas the short term is also known as CPU scheduler, and the medium-term is also called swapping scheduler. This tutorial cover process scheduling in OS definitions, Queues, State process model, Types of process schedulers, Differences, Context switch, and more.

Hvorfor er korttidsplanlæggeren så meget hurtigere end langtidsplanlæggeren?

Korttidsplanlæggeren skal træffe beslutninger mange gange i sekundet for at holde CPU'en beskæftiget. Langtidsplanlæggeren træffer kun beslutninger, når en ny proces skal indlæses, hvilket sker meget sjældnere. En langsom korttidsplanlægger ville skabe en enorm flaskehals i systemet.

Har alle operativsystemer en langtidsplanlægger?

Nej, ikke alle. I mange moderne tidssdelingssystemer som Windows, macOS og Linux er langtidsplanlæggerens rolle minimeret eller fraværende. Her bliver nye processer typisk oprettet og indlæst direkte i klar-køen, hvilket overlader næsten al kontrol til korttids- og mellemtidsplanlæggerne.

Konklusion

Selvom den ofte arbejder i det skjulte, spiller langtidsplanlæggeren en fundamental rolle i at skabe grundlaget for et stabilt og effektivt computersystem. Ved at agere som en intelligent portvagt, der omhyggeligt udvælger, hvilke processer der får adgang til systemets ressourcer, sikrer den, at computeren kan jonglere sine mange opgaver uden at blive overbelastet. Sammen med korttids- og mellemtidsplanlæggerne udgør den et komplekst, men elegant hierarki, der er kernen i moderne multitasking og gør vores digitale liv muligt.

Hvis du vil læse andre artikler, der ligner Hvad er en Langtidsplanlægger i et Operativsystem?, kan du besøge kategorien Teknologi.

Go up