En tråd är en enda sekvensström inom en process. Trådar kallas också lättviktsprocesser eftersom de besitter några av processernas egenskaper. Varje tråd tillhör exakt en process. I ett operativsystem som stöder multithreading kan processen bestå av många trådar. Men trådar kan bara vara effektiva om CPU:n är mer än 1, annars måste två trådar kontextväxlas för den enda CPU:n.
Vad är tråd i operativsystem?
I en process hänvisar en tråd till en enda sekventiell aktivitet som exekveras. dessa aktiviteter är också kända som exekveringstråd eller trådkontroll. Nu kan alla operativsystemprocesser köra en tråd. vi kan säga att en process kan ha flera trådar.
Varför behöver vi tråd?
- Trådar körs parallellt och förbättrar applikationens prestanda. Varje sådan tråd har sitt eget CPU-tillstånd och stack, men de delar processens och miljöns adressutrymme.
- Trådar kan dela gemensamma data så att de inte behöver användas kommunikation mellan processer . Precis som processerna har trådar också tillstånd som redo, exekverande, blockerad etc.
- Prioritet kan tilldelas trådarna precis som processen, och tråden med högst prioritet schemaläggs först.
- Varje tråd har sin egen Trådkontrollblock (TCB) . Liksom processen sker en kontextväxling för tråden och registerinnehållet sparas i (TCB). Eftersom trådar delar samma adressutrymme och resurser krävs också synkronisering för trådens olika aktiviteter.
Komponenter av trådar
Dessa är de grundläggande komponenterna i operativsystemet.
- Stack utrymme
- Registrera Set
- Programräknare
Typer av trådar i operativsystem
Trådar är av två typer. Dessa beskrivs nedan.
- Tråd på användarnivå
- Kärnnivågänga

läsa från en csv-fil i java
Trådar
1. Trådar på användarnivå
Tråd på användarnivå är en typ av tråd som inte skapas med systemanrop. Kärnan har inget arbete med att hantera trådar på användarnivå. Trådar på användarnivå kan enkelt implementeras av användaren. Om trådar på användarnivå är enhandsprocesser, hanterar tråden på kärnnivå dem. Låt oss titta på fördelarna och nackdelarna med tråd på användarnivå.
Fördelar med trådar på användarnivå
- Implementering av tråden på användarnivå är enklare än tråd på kärnnivå.
- Kontextväxling Tiden är mindre i tråden på användarnivå.
- Tråd på användarnivå är effektivare än tråd på kärnnivå.
- På grund av närvaron av endast programräknare, registeruppsättning och stackutrymme har den en enkel representation.
Nackdelar med trådar på användarnivå
- Det finns en brist på samordning mellan tråd och kärna.
- I händelse av ett sidfel kan hela processen blockeras.
2. Kärnnivåtrådar
A kärnnivåtråd är en typ av tråd som lätt kan känna igen operativsystemet. Kernel Level Threads har en egen trådtabell där den håller koll på systemet. Operativsystemkärnan hjälper till att hantera trådar. Kärntrådar har på något sätt längre tid för kontextbyte. Kernel hjälper till att hantera trådar.
Fördelar med trådar på kärnnivå
- Den har uppdaterad information om alla trådar.
- Applikationer som blockerar frekvensen ska hanteras av trådarna på kärnnivå.
- Närhelst någon process kräver mer tid att bearbeta, ger kärnnivåtråden mer tid till den.
Nackdelar med trådar på kärnnivå
- Tråd på kärnnivå är långsammare än tråd på användarnivå.
- Implementering av denna typ av tråd är lite mer komplex än en tråd på användarnivå.
För mer, se Skillnaden mellan tråd på användarnivå och tråd på kärnnivå .
mushjulet rullar inte ordentligt
Skillnaden mellan process och tråd
Den primära skillnaden är att trådar inom samma process körs i ett delat minnesutrymme, medan processer körs i separata minnesutrymmen. Trådar är inte oberoende av varandra som processer är, och som ett resultat delar trådar med andra trådar deras kodsektion, datasektion och OS-resurser (som öppna filer och signaler). Men som en process har en tråd sin egen programräknare (PC) , registeruppsättning och stackutrymme.
För mer, se Skillnaden mellan process och tråd .
Vad är Multi-Threading?
En tråd är också känd som en lätt process. Tanken är att uppnå parallellitet genom att dela upp en process i flera trådar. Till exempel i en webbläsare , kan flera flikar vara olika trådar. MS Word använder flera trådar: en tråd för att formatera texten, en annan tråd för att bearbeta indata, etc. Fler fördelar med multithreading diskuteras nedan.
Multithreading är en teknik som används i operativsystem för att förbättra prestanda och lyhördhet hos datorsystem. Multithreading tillåter flera trådar (d.v.s. lättviktsprocesser) att dela samma resurser för en enda process, såsom CPU, minne , och I/O-enheter .

Enkeltrådad vs flertrådig process
Fördelar med tråd i operativsystem
- Lyhördhet : Om processen är uppdelad i flera trådar, om en tråd slutför sin exekvering, kan dess utdata omedelbart returneras.
- Snabbare kontextväxling : Kontextväxlingstiden mellan trådar är lägre jämfört med processkontextväxlingen. Processkontextväxling kräver mer omkostnader från CPU:n.
- Effektivt utnyttjande av multiprocessorsystem : Om vi har flera trådar i en enda process kan vi schemalägga flera trådar på flera processorer. Detta kommer att göra processexekveringen snabbare.
- Resursdelning : Resurser som kod, data och filer kan delas mellan alla trådar i en process. Obs: Stackar och register kan inte delas mellan trådarna. Varje tråd har sin egen stack och register.
- Kommunikation : Kommunikation mellan flera trådar är lättare, eftersom trådarna delar ett gemensamt adressutrymme. medan vi i processen måste följa några specifika kommunikationstekniker för kommunikation mellan de två processerna.
- Förbättrad genomströmning av systemet : Om en process är uppdelad i flera trådar, och varje trådfunktion betraktas som ett jobb, ökar antalet slutförda jobb per tidsenhet, vilket ökar systemets genomströmning.
Vanliga frågor om tråd i operativsystem – vanliga frågor
Vad är trådtillstånd i operativsystem?
Det finns fyra olika tillstånd i en tråd.
- ny
- körbar
- blockerad
- avslutas
Varför är tråd bättre än process?
Trådar kräver färre resurser medan process kräver mer resurser. det är därför tråd är bättre än process.
linux uppgiftshanterare
Varför är multithreading snabbare?
Medan datorsystemets processor endast utför en instruktion i taget när multithreading används, utförs olika trådar från flera applikationer så snabbt att det verkar som om programmen körs samtidigt.