logo

Kelių sriegių modeliai operacinėje sistemoje

Šiame straipsnyje mes suprasime kelių gijų modelį operacinėje sistemoje.

Kelių sriegių modelis:

Kelių gijų naudojimas leidžia programai padalinti savo užduotį į atskiras gijas. Kelių gijų atveju tą patį procesą ar užduotį galima atlikti pagal gijų skaičių arba galime pasakyti, kad kelių gijų užduočiai atlikti yra daugiau nei viena gija. Naudojant daugiasriegius ryšius, galima atlikti daugybę užduočių.

atsitiktinių skaičių generatorius c
Kelių sriegių modeliai operacinėje sistemoje

Pagrindinis vieno sriegio sistemų trūkumas yra tas, kad vienu metu galima atlikti tik vieną užduotį, todėl norint įveikti šio vieno sriegio trūkumą, yra kelių sriegių sistema, leidžianti atlikti kelias užduotis.

Pavyzdžiui:

Kelių sriegių modeliai operacinėje sistemoje

Aukščiau pateiktame pavyzdyje klientas1, klientas2 ir klientas3 nelaukdami pasiekia žiniatinklio serverį. Naudojant kelių gijų, vienu metu gali būti vykdomos kelios užduotys.

Operacinėje sistemoje gijos skirstomos į vartotojo lygio giją ir branduolio lygio giją. Vartotojo lygio gijos buvo tvarkomos nepriklausoma forma virš branduolio ir todėl valdomos be jokio branduolio palaikymo. Priešingai, operacinė sistema tiesiogiai valdo branduolio lygio gijas. Nepaisant to, turi būti ryšys tarp vartotojo lygio ir branduolio lygio gijų.

Yra trys nustatyti kelių gijų modeliai, klasifikuojantys šiuos ryšius:

  • Daugelio iki vieno daugiasriegio modelio
  • Vienas su vienu kelių sriegių modelis
  • Daugelį sriegių modelių

Daugelio sriegių modelis:

Modelis „daug prieš vieną“ susieja daug vartotojo lygių gijų į vieną branduolio giją. Šio tipo santykiai palengvina veiksmingą konteksto perjungimo aplinką, lengvai įgyvendinamą net paprastame branduolyje be gijos palaikymo.

gimp stačiakampio piešimas

Šio modelio trūkumas yra tas, kad, kadangi vienu metu yra tik vienas branduolio lygio gijų tvarkaraštis, šis modelis negali pasinaudoti daugiagijų procesų ar kelių procesorių sistemų siūlomu aparatūros pagreičiu. Šiuo atveju visas gijų valdymas atliekamas vartotojo erdvėje. Jei blokuojama, šis modelis blokuoja visą sistemą.

Kelių sriegių modeliai operacinėje sistemoje

Aukščiau pateiktame paveikslėlyje „daug prieš vieną“ modelis susieja visas vartotojo lygio gijas su atskiromis branduolio lygio gijomis.

Vienas su vienu kelių sriegių modelis

„Vienas su vienu“ modelis susieja vieną vartotojo lygio giją į vieną branduolio lygio giją. Šio tipo santykiai palengvina kelių gijų eigą lygiagrečiai. Tačiau ši nauda turi savo trūkumą. Kiekvienos naujos vartotojo gijos generavimas turi apimti atitinkamos branduolio gijos sukūrimą, dėl kurio atsiranda papildomų išlaidų, kurios gali trukdyti pirminio proceso veikimui. „Windows“ serijos ir „Linux“ operacinės sistemos bando išspręsti šią problemą ribodamos gijų skaičiaus augimą.

Kelių sriegių modeliai operacinėje sistemoje

Aukščiau pateiktame paveikslėlyje vienas modelis susieja tą vartotojo lygio giją su viena branduolio lygio gija.

foreach java

Daugelio sriegių modelis

Šio tipo modeliuose yra kelios vartotojo lygio gijos ir kelios branduolio lygio gijos. Sukurtų branduolio gijų skaičius priklauso nuo konkrečios programos. Kūrėjas gali sukurti tiek daug gijų abiem lygiais, bet gali būti nevienodos. Modelis „daug prie daugelio“ yra kompromisas tarp kitų dviejų modelių. Šiame modelyje, jei kuri nors gija atlieka blokavimo sistemos iškvietimą, branduolys gali suplanuoti kitos gijos vykdymą. Be to, įdiegus keletą gijų, nėra sudėtingumo, kaip ankstesniuose modeliuose. Nors šis modelis leidžia sukurti kelias branduolio gijas, šis modelis negali pasiekti tikro lygiagretumo. Taip yra todėl, kad branduolys vienu metu gali suplanuoti tik vieną procesą.

Kelių sriegių modeliai operacinėje sistemoje

Daugelyje daugelio kelių gijų modelio versijų susiejamos kelios vartotojo lygio gijos su tomis pačiomis arba daug mažesnėmis branduolio lygio gijomis aukščiau esančiame paveikslėlyje.