logo

Tråd i operativsystem

En tråd er en enkelt sekvensstrøm i en prosess. Tråder kalles også lette prosesser da de har noen av egenskapene til prosesser. Hver tråd tilhører nøyaktig én prosess. I et operativsystem som støtter multithreading, kan prosessen bestå av mange tråder. Men tråder kan bare være effektive hvis CPU-en er mer enn 1 ellers må to tråder kontekstbytte for den enkelt CPU.

Hva er tråd i operativsystemer?

I en prosess refererer en tråd til en enkelt sekvensiell aktivitet som utføres. disse aktivitetene er også kjent som tråd for utførelse eller trådkontroll. Nå kan enhver operativsystemprosess kjøre en tråd. vi kan si at en prosess kan ha flere tråder.



Hvorfor trenger vi tråd?

  • Tråder kjøres parallelt og forbedrer applikasjonsytelsen. Hver slik tråd har sin egen CPU-tilstand og stabel, men de deler adresserommet til prosessen og miljøet.
  • Tråder kan dele felles data slik at de ikke trenger å brukes kommunikasjon mellom prosesser . I likhet med prosessene har tråder også tilstander som klar, utfører, blokkert, etc.
  • Prioritet kan tildeles trådene akkurat som prosessen, og tråden med høyest prioritet planlegges først.
  • Hver tråd har sin egen Trådkontrollblokk (TCB) . I likhet med prosessen skjer en kontekstsvitsj for tråden, og registerinnholdet lagres i (TCB). Siden tråder deler samme adresserom og ressurser, kreves det også synkronisering for de ulike aktivitetene til tråden.

Komponenter av tråder

Dette er de grunnleggende komponentene i operativsystemet.

  • Stack Space
  • Registrer Set
  • Programteller

Typer tråder i operativsystemet

Tråder er av to typer. Disse er beskrevet nedenfor.

  • Tråd på brukernivå
  • Kjernenivåtråd

Tråder



javascript variabel global

Tråder

1. Tråder på brukernivå

Tråd på brukernivå er en type tråd som ikke opprettes ved hjelp av systemanrop. Kjernen har ikke noe arbeid i administrasjonen av tråder på brukernivå. Tråder på brukernivå kan enkelt implementeres av brukeren. I tilfelle når tråder på brukernivå er enhåndsprosesser, administrerer tråden på kjernenivå dem. La oss se på fordelene og ulempene med tråd på brukernivå.

Fordeler med tråder på brukernivå



lag et sh-skript kjørbart
  • Implementering av tråden på brukernivå er enklere enn tråden på kjernenivå.
  • Kontekstbryter Tiden er mindre i tråden på brukernivå.
  • Tråd på brukernivå er mer effektiv enn tråd på kjernenivå.
  • På grunn av tilstedeværelsen av bare programteller, registersett og stabelplass, har den en enkel representasjon.

Ulemper med tråder på brukernivå

  • Det er mangel på koordinering mellom tråd og kjerne.
  • I tilfelle sidefeil kan hele prosessen blokkeres.

2. Kjernenivåtråder

EN kjernenivåtråd er en type tråd som lett kan gjenkjenne operativsystemet. Kernel Level Threads har en egen trådtabell hvor den holder styr på systemet. Operativsystemkjernen hjelper til med å administrere tråder. Kjernetråder har på en eller annen måte lengre kontekstbyttetid. Kernel hjelper til med administrasjon av tråder.

Fordeler med tråder på kjernenivå

  • Den har oppdatert informasjon om alle tråder.
  • Applikasjoner som blokkerer frekvens skal håndteres av kjernenivåtrådene.
  • Når en prosess krever mer tid å behandle, gir kjernenivåtråd mer tid til den.

Ulemper med tråder på kjernenivå

  • Tråd på kjernenivå er tregere enn tråd på brukernivå.
  • Implementering av denne typen tråd er litt mer kompleks enn en tråd på brukernivå.

For mer, se Forskjellen mellom tråd på brukernivå og tråd på kjernenivå .

Forskjellen mellom prosess og tråd

Den primære forskjellen er at tråder innenfor samme prosess kjører i et delt minnerom, mens prosesser kjøres i separate minnerom. Tråder er ikke uavhengige av hverandre som prosesser er, og som et resultat deler tråder med andre tråder kodedelen, datadelen og OS-ressurser (som åpne filer og signaler). Men, som en prosess, har en tråd sin egen programteller (PC) , registersett og stabelplass.

For mer, se Forskjellen mellom prosess og tråd .

java hashsett

Hva er multi-threading?

En tråd er også kjent som en lett prosess. Tanken er å oppnå parallellitet ved å dele en prosess i flere tråder. For eksempel i en nettleser , kan flere faner være forskjellige tråder. MS Word bruker flere tråder: én tråd for å formatere teksten, en annen tråd for å behandle inndata osv. Flere fordeler med multithreading er diskutert nedenfor.

Multithreading er en teknikk som brukes i operativsystemer for å forbedre ytelsen og responsen til datasystemer. Multithreading lar flere tråder (dvs. lette prosesser) dele de samme ressursene til en enkelt prosess, for eksempel CPU, hukommelse , og I/O-enheter .

Enkeltrådede vs flertrådede prosesser

Enkeltrådede vs flertrådede prosesser

Fordeler med tråd i operativsystem

  • Respons : Hvis prosessen er delt inn i flere tråder, hvis en tråd fullfører utførelsen, kan utgangen umiddelbart returneres.
  • Raskere kontekstbytte : Kontekstbyttetiden mellom tråder er lavere sammenlignet med prosesskontekstsvitsjen. Bytting av prosesskontekst krever mer overhead fra CPU.
  • Effektiv utnyttelse av multiprosessorsystem : Hvis vi har flere tråder i en enkelt prosess, kan vi planlegge flere tråder på flere prosessorer. Dette vil gjøre prosessutførelsen raskere.
  • Ressursdeling : Ressurser som kode, data og filer kan deles mellom alle tråder i en prosess. Merk: Stabler og registre kan ikke deles mellom trådene. Hver tråd har sin egen stabel og registre.
  • Kommunikasjon : Kommunikasjon mellom flere tråder er enklere, siden trådene deler et felles adresseområde. mens vi i prosessen må følge noen spesifikke kommunikasjonsteknikker for kommunikasjon mellom de to prosessene.
  • Forbedret gjennomstrømning av systemet : Hvis en prosess er delt inn i flere tråder, og hver trådfunksjon betraktes som én jobb, økes antall fullførte jobber per tidsenhet, og øker dermed gjennomstrømningen til systemet.

Ofte stilte spørsmål om tråder i operativsystemet – vanlige spørsmål

Hva er trådtilstand i operativsystemet?

Det er fire forskjellige tilstander i en tråd.

  • ny
  • kjørbar
  • blokkert
  • avsluttet

Hvorfor er tråd bedre enn prosess?

Tråder krever færre ressurser, mens prosess krever mer ressurser. det er derfor tråd er bedre enn prosess.

Hvorfor er multithreading raskere?

Mens datasystemets prosessor kun utfører én instruksjon om gangen når multithreading brukes, utføres ulike tråder fra flere applikasjoner så raskt at det ser ut som om programmene kjører samtidig.