logo

Multithreading-modeller i operativsystem

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

Multithreading modell:

Multithreading lar applikasjonen dele opp oppgaven sin i individuelle tråder. I flertråder kan den samme prosessen eller oppgaven gjøres etter antall tråder, eller vi kan si at det er mer enn én tråd for å utføre oppgaven i multitråd. Med bruk av multithreading kan multitasking oppnås.

polymorfisme
Multithreading-modeller i operativsystem

Den største ulempen med enkelttrådingssystemer er at bare én oppgave kan utføres om gangen, så for å overvinne ulempen med denne enkeltgjengingen, er det flertråding som gjør at flere oppgaver kan utføres.

For eksempel:

Multithreading-modeller i operativsystem

I eksemplet ovenfor får klient1, klient2 og klient3 tilgang til webserveren uten å måtte vente. I multithreading kan flere oppgaver kjøres samtidig.

I et operativsystem er tråder delt inn i tråden på brukernivå og tråden på kjernenivå. Tråder på brukernivå håndterte uavhengig form over kjernen og administrerte derved uten noen kjernestøtte. På den motsatte siden administrerer operativsystemet trådene på kjernenivå direkte. Likevel må det være en form for relasjon mellom tråder på brukernivå og kjernenivå.

Det finnes tre etablerte multithreading-modeller som klassifiserer disse forholdene:

  • Mange til én flertrådsmodell
  • En til en multithreading-modell
  • Mange til mange multithreading-modeller

Mange til én flertrådsmodell:

Mange til én-modellen kartlegger mange tråder på brukernivå til én kjernetråd. Denne typen relasjoner forenkler et effektivt kontekstbyttemiljø, enkelt implementert selv på den enkle kjernen uten trådstøtte.

git legg til alle

Ulempen med denne modellen er at siden det bare er én trådplan på kjernenivå til enhver tid, kan ikke denne modellen dra nytte av maskinvareakselerasjonen som tilbys av flertrådede prosesser eller multiprosessorsystemer. I dette gjøres all trådbehandling i brukerområdet. Hvis blokkering kommer, blokkerer denne modellen hele systemet.

Multithreading-modeller i operativsystem

I figuren ovenfor knytter mange til én-modellen alle tråder på brukernivå til tråder på enkelt kjernenivå.

uordensgjennomgang av binært tre

En til en multithreading-modell

En-til-en-modellen tilordner en enkelt tråd på brukernivå til en enkelt tråd på kjernenivå. Denne typen forhold letter kjøringen av flere tråder parallelt. Imidlertid kommer denne fordelen med sin ulempe. Genereringen av hver ny brukertråd må inkludere å lage en korresponderende kjernetråd som forårsaker en overhead, som kan hindre ytelsen til den overordnede prosessen. Windows-serien og Linux-operativsystemer prøver å takle dette problemet ved å begrense veksten av trådantallet.

Multithreading-modeller i operativsystem

I figuren ovenfor knytter en modell den ene tråden på brukernivå til en enkelt tråd på kjernenivå.

Mange til mange modell multithreading modell

I denne typen modeller er det flere tråder på brukernivå og flere tråder på kjernenivå. Antall kjernetråder som opprettes, avhenger av en bestemt applikasjon. Utvikleren kan opprette like mange tråder på begge nivåer, men er kanskje ikke den samme. Mange til mange-modellen er et kompromiss mellom de to andre modellene. I denne modellen, hvis en tråd foretar et blokkerende systemkall, kan kjernen planlegge en annen tråd for kjøring. Dessuten, med introduksjonen av flere tråder, er kompleksiteten ikke til stede som i de tidligere modellene. Selv om denne modellen tillater opprettelse av flere kjernetråder, kan ikke ekte samtidighet oppnås med denne modellen. Dette er fordi kjernen kan planlegge kun én prosess om gangen.

Multithreading-modeller i operativsystem

Mange til mange versjoner av multithreading-modellen knytter flere tråder på brukernivå til samme eller mye mindre variasjon av tråder på kjernenivå i figuren ovenfor.