logo

Multithreading i operativsystem

A tråd är en väg som följs under ett programs körning. Majoriteten av program som skrivs nu för tiden körs som en enda tråd. Låt oss säga att ett program till exempel inte kan läsa tangenttryckningar medan du gör ritningar. Dessa uppgifter kan inte utföras av programmet samtidigt. Detta problem kan lösas genom multitasking så att två eller flera uppgifter kan utföras samtidigt. Multitasking är av två typer: Processorbaserad och trådbaserad. Processorbaserad multitasking hanteras helt av operativsystemet, men multitasking genom multithreading kan kontrolleras av programmeraren till viss del. Konceptet av flertrådig behöver ordentlig förståelse för dessa två termer – en process och en tråd . En process är ett program som körs. En process kan vidare delas in i oberoende enheter som kallas trådar. En tråd är som en liten lätt process i en process. Eller så kan vi säga att en samling trådar är vad som kallas en process. Ansökningar – Gängning används flitigt inom nästan alla områden. Mest allmänt ses det över internet nuförtiden där vi använder transaktionsbearbetning av alla typer som laddningar, onlineöverföringar, banktjänster etc. Trådning är ett segment som delar upp koden i små delar som är mycket lätta och belastar processorn mindre. minne så att det lätt kan utarbetas och kan uppnå mål inom önskat område. Konceptet med gängning är designat på grund av problemet med snabba och regelbundna förändringar i teknik och mindre arbete inom olika områden på grund av mindre tillämpning. Sedan, som det sägs, är behovet att skapa skapande eller innovation, och genom att följa detta tillvägagångssätt utvecklar det mänskliga sinnet begreppet tråd för att förbättra programmeringsförmågan.

En tråds livscykel

Det finns olika stadier i en tråds livscykel. Följande är de stadier en tråd går igenom i hela sitt liv.

  • Ny: Livscykeln för en född tråd (ny tråd) börjar i detta tillstånd. Den förblir i detta tillstånd tills ett program startar.
  • Körbar : En tråd blir körbar efter att den har startat. Den anses utföra den uppgift som den har fått.
  • Väntar : Medan man väntar på att en annan tråd ska utföra en uppgift, går den aktuella tråden in i vänteläge och går sedan tillbaka igen efter att ha tagit emot en signal från den andra tråden.
  • Tidsinställd väntan: En körbar tråd går in i detta tillstånd för ett specifikt tidsintervall och går sedan tillbaka när tidsintervallet löper ut eller händelsen som tråden väntade på inträffar.
  • Avslutad (död) : En tråd går in i detta tillstånd efter att ha slutfört sin uppgift.

Typer av exekvering i OS

Det finns två typer av utförande:



  1. Samtidigt utförande: Detta inträffar när en processor lyckas byta resurser mellan trådar i en flertrådad process på en enda processor.
  2. Parallellt utförande: Detta inträffar när varje tråd i processen körs på en separat processor samtidigt och i samma flertrådade process

Nackdelar med Multithreading

Multithreading är komplext och många gånger svårt att hantera. Den har några nackdelar. Dessa är:

  • Om du inte använder låsmekanismerna på rätt sätt, medan du undersöker problem med dataåtkomst finns det en chans att problem uppstår som datainkonsekvens och dödläge.
  • Om många trådar försöker komma åt samma data finns det en chans att situationen med trådsvält kan uppstå. Resurskonflikter är ett annat problem som kan besvära användaren.
  • Visningsproblem kan uppstå om trådar saknar koordination vid visning av data.

Fördelar med multithreading:

  • Multithreading kan förbättra ett programs prestanda och effektivitet genom att använda de tillgängliga CPU-resurserna mer effektivt. Genom att köra flera trådar samtidigt kan det dra fördel av parallellitet och minska den totala exekveringstiden.
  • Multithreading kan förbättra lyhördheten i applikationer som involverar användarinteraktion. Genom att separera tidskrävande uppgifter från huvudtråden kan användargränssnittet förbli responsivt och inte frysa eller sluta svara.
  • Multithreading kan möjliggöra bättre resursutnyttjande. Till exempel, i en serverapplikation kan flera trådar hantera inkommande klientförfrågningar samtidigt, vilket gör att servern kan betjäna fler klienter samtidigt.
  • Multithreading kan underlätta bättre kodorganisation och modularitet genom att dela upp komplexa uppgifter i mindre, hanterbara exekveringsenheter. Varje tråd kan hantera en specifik del av uppgiften, vilket gör koden lättare att förstå och underhålla.