У овом чланку ћемо разумети вишенитни модел у оперативном систему.
Модел са више нити:
Мултитхреадинг омогућава апликацији да подели свој задатак на појединачне нити. У више нити, исти процес или задатак се може обавити бројем нити, или можемо рећи да постоји више од једне нити за обављање задатка у вишенитности. Уз употребу вишенитног рада, може се постићи више задатака.
хтмл ознаке
Главни недостатак система са једним навојем је то што се само један задатак може обављати истовремено, тако да да би се превазишао недостатак овог једноструког навоја, постоји вишенитност која омогућава извршавање више задатака.
На пример:
У горњем примеру, клијент1, клијент2 и клијент3 приступају веб серверу без икаквог чекања. У вишенитном раду, неколико задатака може да се извршава истовремено.
У оперативном систему, нити су подељене на нит на нивоу корисника и нит на нивоу кернела. Нити на нивоу корисника су управљали независном формом изнад кернела и тиме управљали без икакве подршке за језгро. Са друге стране, оперативни систем директно управља нитима на нивоу језгра. Ипак, мора постојати облик односа између нити на нивоу корисника и на нивоу језгра.
Постоје три успостављена модела вишенитног рада који класификују ове односе:
- Много на један вишенитни модел
- Један на један вишенитни модел
- Многи до много вишенитних модела
Вишеструки модел од више до једног:
Модел „много према једном“ мапира многе нити на нивоу корисника у једну нит кернела. Ова врста односа олакшава ефикасно окружење за пребацивање контекста, које се лако имплементира чак и на једноставном кернелу без подршке нити.
фор петље јава
Недостатак овог модела је што пошто постоји само један распоред нити на нивоу језгра у било ком тренутку, овај модел не може да искористи предности хардверског убрзања које нуде вишенитни процеси или вишепроцесорски системи. У овом случају, све управљање нитима се обавља у корисничком простору. Ако дође до блокирања, овај модел блокира цео систем.
На горњој слици, модел много према један повезује све нити на нивоу корисника са појединачним нитима на нивоу језгра.
иницијализатор речника Ц#
Један на један вишенитни модел
Модел један на један пресликава једну нит на нивоу корисника у једну нит на нивоу језгра. Ова врста односа олакшава покретање више нити паралелно. Међутим, ова предност долази са својим недостатком. Генерисање сваке нове корисничке нити мора укључивати креирање одговарајуће нити кернела која узрокује прекомерне трошкове, што може ометати перформансе родитељског процеса. Виндовс серија и Линук оперативни системи покушавају да реше овај проблем ограничавањем раста броја нити.
На горњој слици, један модел повезује ту једну нит на нивоу корисника са једном нити на нивоу језгра.
Модел вишенитног модела од много до много
У овом типу модела постоји неколико нити на нивоу корисника и неколико нити на нивоу кернела. Број креираних нити кернела зависи од одређене апликације. Програмер може креирати онолико нити на оба нивоа, али не морају бити исти. Модел „много према много“ је компромис између друга два модела. У овом моделу, ако било која нит изврши блокирајући системски позив, кернел може заказати другу нит за извршење. Такође, са увођењем више нити, сложеност није присутна као у претходним моделима. Иако овај модел дозвољава креирање више нити кернела, истинска конкурентност се не може постићи овим моделом. То је зато што кернел може да закаже само један процес у исто време.
Многе или многе верзије вишенитног модела повезују неколико нити на нивоу корисника са истим или много мањим бројем нити на нивоу језгра на горњој слици.