logo

Multithreading-modeller i operativsystemet

I denne artikel vil vi forstå multithreading-modellen i operativsystemet.

Multithreading model:

Multithreading giver applikationen mulighed for at opdele sin opgave i individuelle tråde. I multi-threads kan den samme proces eller opgave udføres af antallet af tråde, eller vi kan sige, at der er mere end én tråd til at udføre opgaven i multithreading. Med brug af multithreading kan multitasking opnås.

latex bord
Multithreading-modeller i operativsystemet

Den største ulempe ved enkelttrådningssystemer er, at der kun kan udføres én opgave ad gangen, så for at overvinde ulempen ved denne enkelttrådning er der multitrådning, der gør det muligt at udføre flere opgaver.

For eksempel:

Multithreading-modeller i operativsystemet

I ovenstående eksempel får klient1, klient2 og klient3 adgang til webserveren uden at vente. I multithreading kan flere opgaver køre på samme tid.

I et operativsystem er tråde opdelt i tråden på brugerniveau og tråden på kerneniveau. Tråde på brugerniveau håndterede uafhængig form over kernen og derved administreret uden nogen kerneunderstøttelse. På den modsatte side styrer operativsystemet direkte trådene på kerneniveau. Ikke desto mindre skal der være en form for relation mellem bruger-niveau og kerne-niveau tråde.

Der findes tre etablerede multithreading-modeller, der klassificerer disse relationer:

  • Mange til én multithreading-model
  • En til en multithreading model
  • Mange til Mange multithreading-modeller

Mange til én multithreading-model:

Mange til én-modellen kortlægger mange brugerniveautråde til én kernetråd. Denne type relation letter et effektivt kontekstskiftende miljø, let implementeret selv på den simple kerne uden trådunderstøttelse.

git tilføje alle

Ulempen ved denne model er, at da der kun er én trådplan på kerneniveau på et givet tidspunkt, kan denne model ikke drage fordel af den hardwareacceleration, der tilbydes af flertrådede processer eller multiprocessorsystemer. I denne foregår al trådhåndtering i brugerrummet. Hvis der kommer blokering, blokerer denne model hele systemet.

Multithreading-modeller i operativsystemet

I ovenstående figur knytter mange til én-modellen alle tråde på brugerniveau til tråde på enkelt kerneniveau.

json i json eksempel

En til en multithreading model

En-til-en-modellen kortlægger en enkelt tråd på brugerniveau til en enkelt tråd på kerneniveau. Denne type forhold letter kørsel af flere tråde parallelt. Denne fordel kommer dog med sin ulempe. Genereringen af ​​hver ny brugertråd skal omfatte oprettelse af en tilsvarende kernetråd, der forårsager en overhead, som kan hindre udførelsen af ​​den overordnede proces. Windows-serien og Linux-operativsystemer forsøger at tackle dette problem ved at begrænse væksten i trådantallet.

Multithreading-modeller i operativsystemet

I ovenstående figur knytter en model den ene tråd på brugerniveau til en enkelt tråd på kerneniveau.

Mange til Mange Model multithreading model

I denne type model er der flere tråde på brugerniveau og flere tråde på kerneniveau. Antallet af oprettede kernetråde afhænger af en bestemt applikation. Udvikleren kan oprette lige så mange tråde på begge niveauer, men er muligvis ikke den samme. Mange til mange-modellen er et kompromis mellem de to andre modeller. I denne model, hvis en tråd foretager et blokerende systemkald, kan kernen planlægge en anden tråd til eksekvering. Også med introduktionen af ​​flere tråde er kompleksiteten ikke til stede som i de tidligere modeller. Selvom denne model tillader oprettelsen af ​​flere kernetråde, kan ægte samtidighed ikke opnås med denne model. Dette skyldes, at kernen kun kan planlægge én proces ad gangen.

Multithreading-modeller i operativsystemet

Mange til mange versioner af multithreading-modellen knytter flere tråde på brugerniveau til den samme eller meget mindre række af tråde på kerneniveau i ovenstående figur.