logo

Večnitni modeli v operacijskem sistemu

V tem članku bomo razumeli model večnitnosti v operacijskem sistemu.

Večnitni model:

Večnitnost omogoča aplikaciji, da svojo nalogo razdeli na posamezne niti. Pri večnitnosti se lahko isti postopek ali opravilo opravi s številom niti ali pa lahko rečemo, da obstaja več kot ena nit za izvedbo naloge pri večnitnosti. Z uporabo večnitnosti je mogoče doseči večopravilnost.

c niz programskega niza
Večnitni modeli v operacijskem sistemu

Glavna pomanjkljivost sistemov z eno nitjo je, da je naenkrat mogoče izvesti samo eno nalogo, zato je za premagovanje pomanjkljivosti te ene niti na voljo večnitnost, ki omogoča izvajanje več nalog.

Na primer:

Večnitni modeli v operacijskem sistemu

V zgornjem primeru odjemalec1, odjemalec2 in odjemalec3 dostopajo do spletnega strežnika brez čakanja. Pri večnitnosti se lahko izvaja več nalog hkrati.

V operacijskem sistemu so niti razdeljene na nit na ravni uporabnika in nit na ravni jedra. Niti na ravni uporabnika so obravnavale neodvisno obliko nad jedrom in se tako upravljale brez podpore za jedro. Po drugi strani pa operacijski sistem neposredno upravlja niti na ravni jedra. Kljub temu mora obstajati oblika razmerja med nitmi na ravni uporabnika in ravni jedra.

Obstajajo trije uveljavljeni modeli večnitnosti, ki razvrščajo ta razmerja:

  • Več v enem večnitnem modelu
  • Večnitnostni model ena proti ena
  • Večnitni modeli mnogo proti mnogo

Večnitni model več v enem:

Model mnogo proti enemu preslika več niti uporabniških ravni v eno nit jedra. Ta vrsta razmerja omogoča učinkovito okolje za preklapljanje konteksta, ki ga je enostavno implementirati tudi v preprostem jedru brez podpore niti.

metode java arraylist

Pomanjkljivost tega modela je, da ker obstaja samo en razpored niti na ravni jedra v danem trenutku, ta model ne more izkoristiti pospeševanja strojne opreme, ki ga ponujajo večnitni procesi ali večprocesorski sistemi. Pri tem se vse upravljanje niti izvaja v uporabniškem prostoru. Če pride do blokade, ta model blokira celoten sistem.

Večnitni modeli v operacijskem sistemu

Na zgornji sliki model mnogo proti enemu povezuje vse niti na ravni uporabnika z enimi nitmi na ravni jedra.

algoritem za hitro razvrščanje

Večnitnostni model ena proti ena

Model ena proti ena preslika eno nit na ravni uporabnika v eno nit na ravni jedra. Ta vrsta razmerja olajša vzporedno izvajanje več niti. Vendar ima ta prednost svojo pomanjkljivost. Generiranje vsake nove uporabniške niti mora vključevati ustvarjanje ustrezne niti jedra, ki povzroča dodatne stroške, kar lahko ovira delovanje nadrejenega procesa. Windows serija in operacijski sistemi Linux poskušajo rešiti to težavo z omejevanjem rasti števila niti.

Večnitni modeli v operacijskem sistemu

Na zgornji sliki en model povezuje to eno nit na ravni uporabnika z eno nitjo na ravni jedra.

Večnitni model modela od mnogih do mnogih

V tej vrsti modela je več niti na ravni uporabnika in več niti na ravni jedra. Število ustvarjenih niti jedra je odvisno od posamezne aplikacije. Razvijalec lahko ustvari toliko niti na obeh ravneh, vendar morda niso enake. Model mnogo proti mnogo je kompromis med drugima dvema modeloma. V tem modelu lahko jedro, če katera koli nit izvede blokirajoči sistemski klic, načrtuje izvedbo druge niti. Poleg tega z uvedbo več niti ni prisotna kompleksnost kot pri prejšnjih modelih. Čeprav ta model omogoča ustvarjanje več niti jedra, s tem modelom ni mogoče doseči prave sočasnosti. To je zato, ker lahko jedro načrtuje samo en proces naenkrat.

Večnitni modeli v operacijskem sistemu

Številne do številne različice večnitnega modela povezujejo več niti na ravni uporabnika z isto ali veliko manj raznolikimi nitmi na ravni jedra na zgornji sliki.