A nit je pot, ki ji sledimo med izvajanjem programa. Večina programov, ki so danes napisani, teče kot ena nit. Recimo, da program na primer ne more brati pritiskov na tipke med risanjem. Teh nalog program ne more izvajati hkrati. To težavo je mogoče rešiti z večopravilnostjo, tako da je mogoče istočasno izvajati dve ali več nalog. Večopravilnost je dveh vrst: na osnovi procesorja in na osnovi niti. Večopravilnost, ki temelji na procesorju, v celoti upravlja OS, vendar lahko večopravilnost prek večnitnosti do neke mere nadzoruje programer. Koncept večnitnost potrebuje pravilno razumevanje teh dveh izrazov – proces in nit . Proces je program, ki se izvaja. Proces lahko nadalje razdelimo na neodvisne enote, znane kot niti. Nit je kot majhen lahek proces znotraj procesa. Lahko pa rečemo, da je zbirka niti tisto, kar je znano kot proces.
Prijave – Navoj se pogosto uporablja na skoraj vseh področjih. Dandanes ga najpogosteje opazimo prek interneta, kjer uporabljamo obdelavo transakcij vseh vrst, kot so polnitve, spletni prenosi, bančništvo itd. Navoj je segment, ki razdeli kodo na majhne dele, ki so zelo lahki in manj obremenjujejo CPE. spomin, tako da ga je mogoče zlahka razviti in doseči cilj na želenem področju. Koncept navoja je zasnovan zaradi problema hitrega in rednega spreminjanja tehnologije in manj dela na različnih področjih zaradi manjše uporabe. Potem, kot pravi, je potreba ustvarjanje ali inovacija, zato s tem pristopom človeški um razvije koncept niti za izboljšanje zmožnosti programiranja.
Življenjski cikel niti
Obstaja več stopenj v življenjskem ciklu niti. Sledijo faze, skozi katere gre nit v svojem celotnem življenju.
- Novo: Življenjski cikel rojene niti (nove niti) se začne v tem stanju. V tem stanju ostane, dokler se program ne zažene.
- Izvedljivo : Nit postane zagonska, ko se zažene. Šteje se, da izpolnjuje nalogo, ki mu je bila dana.
- Čakanje : Med čakanjem na drugo nit, da izvede nalogo, trenutno delujoča nit preide v stanje čakanja in nato znova preide nazaj, ko prejme signal od druge niti.
- Časovno čakanje: Zagonska nit vstopi v to stanje za določen časovni interval in se nato vrne, ko se časovni interval izteče ali se zgodi dogodek, na katerega je nit čakala.
- Končano (mrtvo) : Nit preide v to stanje po opravljeni nalogi.
Vrste izvajanja v OS
Obstajata dve vrsti izvedbe:
- Sočasno izvajanje: To se zgodi, ko je procesor uspešen pri preklapljanju virov med nitmi v večnitnem procesu na enem procesorju.
- Vzporedna izvedba: To se zgodi, ko vsaka nit v procesu teče na ločenem procesorju hkrati in v istem večnitnem procesu
Slabosti večnitnosti
Večnitnost je zapletena in velikokrat težko obvladljiva. Ima nekaj pomanjkljivosti. To so:
- Če mehanizmov za zaklepanje ne uporabljate pravilno, med raziskovanjem težav z dostopom do podatkov obstaja možnost, da se pojavijo težave, kot so nedoslednost podatkov in mrtva ključavnica.
- Če veliko niti poskuša dostopati do istih podatkov, obstaja možnost, da pride do izčrpanosti niti. Težave s sporom glede virov so še ena težava, ki lahko povzroča težave uporabniku.
- Težave s prikazom se lahko pojavijo, če niti niso usklajene pri prikazovanju podatkov.
Prednosti večnitnosti:
- Večnitnost lahko izboljša zmogljivost in učinkovitost programa z učinkovitejšo uporabo razpoložljivih virov procesorja. S sočasnim izvajanjem več niti lahko izkoristi vzporednost in zmanjša skupni čas izvajanja.
- Večnitnost lahko izboljša odzivnost v aplikacijah, ki vključujejo interakcijo uporabnika. Z ločevanjem zamudnih opravil od glavne niti lahko uporabniški vmesnik ostane odziven in ne zamrzne ali postane neodziven.
- Večnitnost lahko omogoči boljšo izrabo virov. Na primer, v strežniški aplikaciji lahko več niti hkrati obravnava dohodne zahteve odjemalcev, kar strežniku omogoča, da hkrati služi več odjemalcem.
- Večnitnost lahko olajša boljšo organizacijo kode in modularnost z razdelitvijo kompleksnih nalog na manjše, obvladljive enote izvajanja. Vsaka nit lahko obravnava določen del naloge, zaradi česar je koda lažja za razumevanje in vzdrževanje.