logo

Višenitni modeli u operacijskom sustavu

U ovom ćemo članku razumjeti model višenitnosti u operativnom sustavu.

Višenitni model:

Multithreading omogućuje aplikaciji da podijeli svoj zadatak u pojedinačne niti. Kod višenitnosti, isti proces ili zadatak može se izvršiti pomoću broja niti, ili možemo reći da postoji više od jedne niti za obavljanje zadatka u višenitnosti. Uz korištenje multithreadinga može se postići višezadaćnost.

strojno učenje i vrste
Višenitni modeli u operacijskom sustavu

Glavni nedostatak jednonitnih sustava je da se samo jedan zadatak može izvršiti u isto vrijeme, pa da bi se prevladao nedostatak ovog jednog threadinga, postoji višenitnost koja omogućuje izvođenje više zadataka.

Na primjer:

Višenitni modeli u operacijskom sustavu

U gornjem primjeru klijent1, klijent2 i klijent3 pristupaju web poslužitelju bez čekanja. U multithreadingu, nekoliko zadataka može se izvoditi u isto vrijeme.

U operativnom sustavu, niti se dijele na nit na korisničkoj razini i nit na razini jezgre. Niti na korisničkoj razini rukovale su neovisnim oblikom iznad kernela i time upravljale bez ikakve podrške kernela. S druge strane, operativni sustav izravno upravlja nitima na razini jezgre. Unatoč tome, mora postojati oblik odnosa između niti na razini korisnika i razine jezgre.

Postoje tri utvrđena modela višenitnosti koji klasificiraju ove odnose:

  • Mnogi prema jednom višenitnom modelu
  • Jedan na jedan višenitni model
  • Mnogi prema mnogima višenitni modeli

Mnogo na jedan višenitni model:

Model više prema jednom preslikava više niti korisničkih razina u jednu nit jezgre. Ova vrsta odnosa olakšava učinkovito okruženje za promjenu konteksta, lako implementirano čak i na jednostavnom kernelu bez podrške niti.

css centriranje slike

Nedostatak ovog modela je da, budući da postoji samo jedan raspored niti na razini jezgre u bilo kojem trenutku, ovaj model ne može iskoristiti hardversko ubrzanje koje nude višenitni procesi ili višeprocesorski sustavi. U ovom slučaju, sve upravljanje nitima se vrši u korisničkom prostoru. Ako dođe do blokade, ovaj model blokira cijeli sustav.

java okretanje niza
Višenitni modeli u operacijskom sustavu

Na gornjoj slici model više prema jednom pridružuje sve niti na razini korisnika pojedinačnim nitima na razini jezgre.

Jedan na jedan višenitni model

Model jedan na jedan preslikava jednu nit na razini korisnika u jednu nit na razini jezgre. Ova vrsta odnosa olakšava paralelno izvođenje više niti. Međutim, ova prednost dolazi sa svojim nedostatkom. Generiranje svake nove korisničke niti mora uključivati ​​stvaranje odgovarajuće niti kernela koja uzrokuje opterećenje, što može ometati performanse nadređenog procesa. Operativni sustavi Windows serije i Linux pokušavaju riješiti ovaj problem ograničavanjem rasta broja niti.

Višenitni modeli u operacijskom sustavu

Na gornjoj slici, jedan model pridružuje tu jednu nit na korisničkoj razini jednoj niti na razini jezgre.

Model više prema mnogima višenitni model

U ovoj vrsti modela, postoji nekoliko niti na razini korisnika i nekoliko niti na razini jezgre. Broj kreiranih niti jezgre ovisi o pojedinoj aplikaciji. Programer može stvoriti onoliko niti na obje razine, ali to možda neće biti isto. Model više prema mnogima je kompromis između druga dva modela. U ovom modelu, ako bilo koja nit izvrši blokirajući sistemski poziv, kernel može rasporediti drugu nit za izvršenje. Također, uvođenjem više niti nije prisutna složenost kao u prethodnim modelima. Iako ovaj model dopušta stvaranje višestrukih niti jezgre, ovim se modelom ne može postići prava konkurentnost. To je zato što kernel može rasporediti samo jedan proces u isto vrijeme.

Višenitni modeli u operacijskom sustavu

Mnoge do mnoge verzije višenitnog modela pridružuju nekoliko niti na razini korisnika istoj ili mnogo manjoj raznolikosti niti na razini jezgre na gornjoj slici.