Google filloi hapjen e implementimit të modelit të rrjedhave M:N

Kompania Google propozoi 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. SwitchTo 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 FUTEX_WAIT dhe FUTEX_WAKE, 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Ă«.

Google filloi hapjen e implementimit të modelit të rrjedhave M:N

Aktualisht, në praktikë, kryesisht aplikohen modelet 1:1 dhe N:1. Modeli 1:1 përdoret në NPTL (rrjedhat POSIX) dhe LinuxThreads, 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ë GNU Pth, 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.

Luaj videon

Burimi: opennet.ru

Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« đŸ”„ Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« | ProHoster