Men „ven om du har ett multi-processor (SMP) system, kommer det alltid att vara flera uppdrag „n processorer p† ditt system, s† v„xling „r fortfarande n”dv„ndigt.
En tr†d „r &os2;'s enhet f”r administration av uppdragsv„xling. Ett program kan inneh†lla †tskilliga tr†dar, men per definition, kommer den att ha †tminstone en. Men eftersom ett program kan ha fler „n en tr†d, kan v„xling „ga rum „ven mellan tr†dar i samma program. Detta kallas multitr†dning. Till skillnad fr†n m†nga andra operativsystem, st”der &os2; detta fullt ut, och g”r det ocks† p† ett v„ldigt elegant och p†litligt s„tt.
Den del av &os2;'s k„rna som v„xlar mellan tr†dar kallas "schemal„ggaren".
Termen "tr†d" valdes d„rf”r att inom en tr†d exekveras programinstruktioner sekvensiellt, d„remot mellan tr†dar kan du aldrig vara s„ker p† vilka instruktioner som exekveras f”re eller efter i en annan tr†d. Det „r endast &os2; som h†ller p† och v„xlar mellan tr†dar utan att den andra tr†den har n†gon aning om det (eller, p† SMP system, d„r tr†dar i praktiken kan k”ras samtidigt p† ett flertal processorer).
V„lprogrammerade programvaror anv„nder †tskilliga tr†dar f”r att f”rs„kra sig om att anv„ndaren f†r snabb respons p† inmatning och musaktioner. Till exempel, om du kan exekvera ett kommado i ett program vilket kommer att ta l†ng tid, kommer ett program att starta en sekund„r tr†d f”r den uppgiften. Medan den tr†den arbetar i bakgrunden, blir anv„ndarinterfacet (p† huvudtr†den hos programmet) klart igen f”r ny inmatning.
Inte-s†-v„lprogrammerade programvaror anv„nder endast en tr†d f”r b†de anv„ndarinterfacet och exekvering av uppgifter. Som ett resultat, under tiden som en uppgift exekveras, blir anv„ndarinterfacet blockerat.
Tr†dar kan ha olika prioritet. Se "Tr†dprioritet" f”r detaljer.
¸ andra sidan, en process „r &os2;'s term f”r en applikation vilken har laddats i minnet. Varje process m†ste ha †tminstone en tr†d.
Varje process inneh†ller allm„nna data s† v„l som den kontrollerar access till systemresurser. Processer „r skyddade fr†n varandra p† s„ttet att &os2; f”rhindrar access till minne vilket inte tillh”r den process som f”rs”ker accessa det ("minnesskydd").
Som kontrast, †tskilliga tr†dar inom en process kan alla accessa processens minne, d„rf”r att minne administreras per processbasis. Samma sak g„ller andra systemresurser s†dana som ”ppna filer.
F”r att summera: En tr†d „r &os2; k„rnans koncept f”r att hantera „garskapet till CPU. Som kontrast, en process „r ett koncept f”r att „ga allt annat: filer, devicer, och minne.
F”r mer information, v„lj fr†n f”ljande lista: