Kompania Google për të përfshirë në bërthamën Linux një grup të parë patch-e me implementimin e komponentëve të nevojshëm për të siguruar funksionimin e modelit të rrjedhave M:N. Iniciativa e Google është e lidhur me hapjen e një API që është zhvilluar pas dyerve të mbyllura. për bërthamën Linux, e cila siguron funksionimin e një nën-sistemi multithread të implementuar në hapësirën e përdoruesit, i cili përdor modelin e rrjedhave M:N. Nën-sistemi përdoret në Google për të siguruar funksionimin e shërbimeve që kërkojnë vonesa minimale. Planifikimi dhe menaxhimi i shpërndarjes së rrjedhave bëhet tërësisht në hapësirën e përdoruesit, gjë që lejon një ulje thelbësore të numrit të operacioneve të ndërrimit të kontekstit duke minimizuar kryerjen e thirrjeve sistemore.
PĂ«r tĂ« siguruar funksionimin e kĂ«tij nĂ«n-sistemi nĂ« nivelin e bĂ«rthamĂ«s Linux, Ă«shtĂ« implementuar API SwitchTo, i cili ofron tre operacione themelore â wait, resume dhe swap (ndĂ«rrim). PĂ«r pĂ«rfshirjen nĂ« bĂ«rthamĂ« Ă«shtĂ« propozuar kodi i operacionit tĂ« ri FUTEX_SWAP, qĂ« plotĂ«son , dhe ofron bazĂ«n pĂ«r krijimin e biblioteka me shumĂ« rrjedha nĂ« hapĂ«sirĂ«n e pĂ«rdoruesit. FUTEX_SWAP gjithashtu mund tĂ« pĂ«rdoret pĂ«r tĂ« transferuar mesazhe midis detyrave, nĂ« mĂ«nyrĂ« tĂ« ngjashme me RPC. PĂ«r shembull, aktualisht, pĂ«r tĂ« transferuar njĂ« mesazh midis detyrave kĂ«rkohet tĂ« paktĂ«n katĂ«r thirrje FUTEX_WAIT dhe FUTEX_WAKE, ndĂ«rsa pĂ«rdorimi i FUTEX_SWAP do tĂ« lejojĂ« tĂ« realizohet me njĂ« operacion, i cili do tĂ« jetĂ« nga 5-10 herĂ« mĂ« i shpejtĂ«.
Aktualisht, në praktikë, kryesisht aplikohen modelet 1:1 dhe N:1. Modeli 1:1 përdoret në (rrjedhat POSIX) dhe , dhe nënkupton një përputhje të drejtpërdrejtë të rrjedhës në hapësirën e përdoruesit me rrjedhën (njësia e planifikimit) në nivelin e bërthamës. Modeli N:1 është implementuar në , duke e nxjerrë menaxhimin e rrjedhave në hapësirën e përdoruesit dhe duke lejuar N rrjedha në hapësirën e përdoruesit të kenë lidhje me një rrjedhë në bërthamë, ndërsa bërthama nuk ka informacion mbi rrjedhat e përdoruesit.
Disavantazhi kryesor i modelit 1:1 është shpenzimi i madh i burimeve për kalimin e kontekstit midis bërthamës dhe hapësirës së përdoruesit. Modeli N:1 e zgjidh këtë problem, por krijon një të ri - pasi rrjedha në bërthamë është një njësi e pandarë e planifikimit të ekzekutimit, rrjedhat e përdoruesit të lidhura me një rrjedhë në bërthamën e sistemit operativ nuk mund të shkallëzohen në bërthamat CPU dhe përfundojnë të lidhura me një bërthamë CPU.
Modeli M:N Ă«shtĂ« njĂ« hibrid dhe eliminoi tĂ« gjitha disavantazhet e mĂ«sipĂ«rme falĂ« pĂ«rshtatjes sĂ« N rrjedhave nĂ« hapĂ«sirĂ«n e pĂ«rdoruesit me M rrjedha nĂ« bĂ«rthamĂ«n e OS, qĂ« lejon si uljen e shpenzimeve pĂ«r kalimin e kontekstit, ashtu edhe sigurimin e shkallĂ«zimit nĂ« bĂ«rthamat CPU. Ămimi i kĂ«saj mundĂ«sie Ă«shtĂ« shtimi i madh i kompleksitetit tĂ« implementimit tĂ« planifikuesit tĂ« rrjedhave nĂ« hapĂ«sirĂ«n e pĂ«rdoruesit dhe nevoja pĂ«r mekanizma qĂ« e koordinonin veprimin me planifikuesin e bĂ«rthamĂ«s.

Burimi: opennet.ru
