logo

Daudzpavedienu modeļi operētājsistēmā

Šajā rakstā mēs sapratīsim daudzpavedienu modeli operētājsistēmā.

Daudzpavedienu modelis:

Multithreading ļauj lietojumprogrammai sadalīt savu uzdevumu atsevišķos pavedienos. Vairāku pavedienu gadījumā vienu un to pašu procesu vai uzdevumu var veikt pēc pavedienu skaita, vai arī mēs varam teikt, ka vairāku pavedienu uzdevuma veikšanai ir vairāk nekā viens pavediens. Izmantojot multithreading, var panākt vairākuzdevumu veikšanu.

rekha vecums
Daudzpavedienu modeļi operētājsistēmā

Viena vītņu sistēmu galvenais trūkums ir tas, ka vienlaikus var veikt tikai vienu uzdevumu, tāpēc, lai novērstu šīs vienas vītnes izveidošanas trūkumu, ir daudzpavedienu sistēma, kas ļauj veikt vairākus uzdevumus.

Piemēram:

Daudzpavedienu modeļi operētājsistēmā

Iepriekš minētajā piemērā klients1, klients2 un klients3 piekļūst tīmekļa serverim bez gaidīšanas. Izmantojot daudzpavedienu, vienlaikus var izpildīt vairākus uzdevumus.

Operētājsistēmā pavedieni tiek sadalīti lietotāja līmeņa pavedienā un kodola līmeņa pavedienā. Lietotāja līmeņa pavedieni tika apstrādāti neatkarīgā formā virs kodola, un tādējādi tie tika pārvaldīti bez kodola atbalsta. No otras puses, operētājsistēma tieši pārvalda kodola līmeņa pavedienus. Tomēr starp lietotāja līmeņa un kodola līmeņa pavedieniem ir jābūt saiknei.

Pastāv trīs izveidoti daudzpavedienu modeļi, kas klasificē šīs attiecības:

  • Daudzi uz vienu daudzpavedienu modeli
  • Viens pret vienu daudzpavedienu modelis
  • No daudziem līdz daudziem daudzpavedienu modeļi

Daudzpavedienu modelis:

Modelis “daudzi pret vienu” kartē daudzu lietotāju līmeņu pavedienus vienā kodola pavedienā. Šāda veida attiecības veicina efektīvu konteksta maiņas vidi, ko viegli ieviest pat vienkāršajā kodolā bez pavedienu atbalsta.

uzņēmēja Linux

Šī modeļa trūkums ir tāds, ka, tā kā jebkurā brīdī ir tikai viens kodola līmeņa pavedienu grafiks, šis modelis nevar izmantot aparatūras paātrinājumu, ko piedāvā daudzpavedienu procesi vai vairāku procesoru sistēmas. Šajā gadījumā visa pavedienu pārvaldība tiek veikta lietotāja telpā. Ja notiek bloķēšana, šis modelis bloķē visu sistēmu.

Daudzpavedienu modeļi operētājsistēmā

Iepriekš redzamajā attēlā modelis 'daudzi pret vienu' visus lietotāja līmeņa pavedienus saista ar vienu kodola līmeņa pavedienu.

Viens pret vienu daudzpavedienu modelis

Viens pret vienu modelis kartē vienu lietotāja līmeņa pavedienu uz vienu kodola līmeņa pavedienu. Šāda veida attiecības atvieglo vairāku pavedienu darbību paralēli. Tomēr šai priekšrocībai ir savs trūkums. Katra jauna lietotāja pavediena ģenerēšanā jāiekļauj atbilstoša kodola pavediena izveide, kas rada papildu izmaksas, kas var kavēt vecākprocesa veiktspēju. Windows sērijas un Linux operētājsistēmas mēģina risināt šo problēmu, ierobežojot pavedienu skaita pieaugumu.

np.klips
Daudzpavedienu modeļi operētājsistēmā

Iepriekš redzamajā attēlā viens modelis saista vienu lietotāja līmeņa pavedienu ar vienu kodola līmeņa pavedienu.

Daudzpavedienu modelis no daudziem līdz daudziem

Šāda veida modelī ir vairāki lietotāja līmeņa pavedieni un vairāki kodola līmeņa pavedieni. Izveidoto kodola pavedienu skaits ir atkarīgs no konkrētas lietojumprogrammas. Izstrādātājs var izveidot tik daudz pavedienu abos līmeņos, taču tie var nebūt vienādi. Modelis no daudziem daudziem ir kompromiss starp pārējiem diviem modeļiem. Ja šajā modelī kāds pavediens veic bloķēšanas sistēmas izsaukumu, kodols var ieplānot izpildei citu pavedienu. Turklāt, ieviešot vairākus pavedienus, nav tādas sarežģītības kā iepriekšējos modeļos. Lai gan šis modelis ļauj izveidot vairākus kodola pavedienus, ar šo modeli nevar panākt patiesu vienlaicīgumu. Tas ir tāpēc, ka kodols var ieplānot tikai vienu procesu vienlaikus.

Daudzpavedienu modeļi operētājsistēmā

Daudzas vai daudzas daudzpavedienu modeļa versijas saista vairākus lietotāja līmeņa pavedienus ar tiem pašiem vai daudz mazāk dažādiem kodola līmeņa pavedieniem iepriekš minētajā attēlā.