logo

Flertrådsmodeller i operativsystem

I den här artikeln kommer vi att förstå multithreading-modellen i operativsystemet.

Flertrådsmodell:

Multithreading gör att applikationen kan dela upp sin uppgift i enskilda trådar. I multitrådar kan samma process eller uppgift göras av antalet trådar, eller så kan vi säga att det finns mer än en tråd för att utföra uppgiften i multitrådning. Med användning av multithreading kan multitasking uppnås.

längd på sträng java
Flertrådsmodeller i operativsystem

Den största nackdelen med enkelgängningssystem är att endast en uppgift kan utföras åt gången, så för att övervinna nackdelen med denna enkelgängning finns det flertrådning som gör att flera uppgifter kan utföras.

Till exempel:

Flertrådsmodeller i operativsystem

I exemplet ovan har klient1, klient2 och klient3 åtkomst till webbservern utan att behöva vänta. I multithreading kan flera uppgifter köras samtidigt.

I ett operativsystem är trådar uppdelade i tråden på användarnivå och tråden på kärnnivå. Trådar på användarnivå hanterade oberoende form ovanför kärnan och hanterades därigenom utan stöd för kärnan. Å andra sidan hanterar operativsystemet trådarna på kärnnivå direkt. Ändå måste det finnas en form av relation mellan trådar på användarnivå och kärnnivå.

Det finns tre etablerade flertrådsmodeller som klassificerar dessa samband är:

  • Många till en flertrådsmodell
  • En till en flertrådig modell
  • Många till många flertrådiga modeller

Många till en flertrådsmodell:

Många till en-modellen mappar många trådar på användarnivåer till en kärntråd. Denna typ av relation underlättar en effektiv kontextbytemiljö, lätt implementerad även på den enkla kärnan utan trådstöd.

förbeställ korsning av ett träd

Nackdelen med denna modell är att eftersom det bara finns ett trådschema på kärnnivå vid varje given tidpunkt, kan denna modell inte dra fördel av hårdvaruaccelerationen som erbjuds av flertrådade processer eller multiprocessorsystem. I detta görs all trådhantering i användarutrymmet. Om blockering kommer, blockerar denna modell hela systemet.

Flertrådsmodeller i operativsystem

I figuren ovan associerar många till en-modellen alla trådar på användarnivå till trådar på enstaka kärnnivå.

tuppel java

En till en flertrådig modell

En-till-en-modellen mappar en tråd på användarnivå till en tråd på kärnnivå. Denna typ av relation underlättar körningen av flera trådar parallellt. Denna fördel kommer dock med sin nackdel. Genereringen av varje ny användartråd måste innefatta att skapa en motsvarande kärntråd som orsakar en overhead, vilket kan hindra prestandan för den överordnade processen. Windows-serien och Linux-operativsystem försöker lösa detta problem genom att begränsa tillväxten av trådantalet.

Flertrådsmodeller i operativsystem

I figuren ovan associerar en modell den ena tråden på användarnivå till en tråd på kärnnivå.

Många till många modell flertrådsmodell

I denna typ av modell finns det flera trådar på användarnivå och flera trådar på kärnnivå. Antalet kärntrådar som skapas beror på en viss applikation. Utvecklaren kan skapa lika många trådar på båda nivåerna men kanske inte är densamma. Många till många-modellen är en kompromiss mellan de två andra modellerna. I den här modellen, om någon tråd gör ett blockerande systemanrop, kan kärnan schemalägga en annan tråd för exekvering. Dessutom, med introduktionen av flera trådar, är komplexiteten inte närvarande som i de tidigare modellerna. Även om denna modell tillåter skapandet av flera kärntrådar, kan sann samtidighet inte uppnås med denna modell. Detta beror på att kärnan bara kan schemalägga en process åt gången.

Flertrådsmodeller i operativsystem

Många till många versioner av multithreading-modellen associerar flera trådar på användarnivå till samma eller mycket mindre variation av trådar på kärnnivå i figuren ovan.