Nanomboka nanokatra ny fampiharana ny modely M:N flow i Google

Google AZO ho fampidirana ao amin'ny kernel Linux ny andiany voalohany amin'ny patch miaraka amin'ny fampiharana ireo singa ilaina mba hiantohana ny asan'ny modely M: N threading. Ny hetsika Google dia mifandraika amin'ny fanokafana API novolavolaina tao ambadiky ny varavarana mihidy SwitchTo ho an'ny kernel Linux, izay manome subsystem misy kofehy maromaro napetraka ao amin'ny habaka mpampiasa izay mampiasa ny modely M: N threading. Ny subsystem dia ampiasain'i Google hanome tolotra izay mitaky fahatarana kely. Ny fandaharam-potoana sy ny fitantanana ny fizarana kofehy dia atao tanteraka amin'ny habaka mpampiasa, izay mety hampihena be ny isan'ny fifandimbiasam-pifandraisana amin'ny alΓ lan'ny fampihenana ny fanatanterahana ny antson'ny rafitra.

Mba hiantohana ny fampandehanana an'ity subsystem ity, ny SwitchTo API dia nampiharina teo amin'ny sehatry ny kernel Linux, manolotra asa fototra telo - miandry, mamerina ary mifamadika (miova). Mba hampidirana ao amin'ny kernel dia misy kaody ho an'ny asa FUTEX_SWAP vaovao atolotra, manampy FUTEX_WAIT sy FUTEX_WAKE, ary manome rafitra ho an'ny fananganana trano famakiam-bokin'ny mpampiasa maro misy kofehy. FUTEX_SWAP dia azo ampiasaina handefasana hafatra eo anelanelan'ny asa, mitovy amin'ny RPC. Ohatra, amin'izao fotoana izao, mba handefasana hafatra eo anelanelan'ny asa, antso efatra farafahakeliny amin'ny FUTEX_WAIT sy FUTEX_WAKE no takiana, raha mampiasa FUTEX_SWAP dia mamela fandidiana iray ho vita in-5-10 haingana kokoa.

Nanomboka nanokatra ny fampiharana ny modely M:N flow i Google

Amin'izao fotoana izao, ny modely mikoriana 1: 1 sy N: 1 dia ampiasaina indrindra amin'ny fampiharana. Ny modely 1: 1 dia ampiasaina amin'ny NPTL (Taratasy POSIX) ary LinuxThreads, ary midika fametahana sari-tany mivantana amin'ny kofehy espace mpampiasa mankany amin'ny kofehy iray (fikambanan'ny fandaharam-potoana famonoana) eo amin'ny ambaratonga kernel. Ny modely N:1 dia ampiharina amin'ny GNU Pth, dia mitondra ny fandaharam-potoana amin'ny kofehy ho an'ny mpampiasa-space ary mamela ny N mpampiasa-space kofehy mamatotra amin'ny kofehy tokana ao amin'ny kernel, tsy fantatry ny kernel ny momba ny mpampiasa-threads.

Ny tsy fahampiana lehibe indrindra amin'ny modely 1: 1 dia ny overhead lehibe amin'ny fifandimbiasana eo amin'ny kernel sy ny habaka mpampiasa. Ny modely N:1 dia mamaha ity olana ity, fa mamorona vaovao - satria ny kofehy ao amin'ny kernel dia singa tsy azo zaraina amin'ny fandaharam-potoana famonoana, ny mpampiasa kofehy mifamatotra amin'ny kofehy tokana ao amin'ny kernel rafitra miasa dia tsy afaka manenika ny cores CPU ary lasa mifamatotra amin'ny core CPU tokana.

Ny maodely M:N dia hybride ary mamaly ireo fatiantoka rehetra voalaza etsy ambony ireo amin'ny alΓ lan'ny fametahana ny kofehy N userspace mankany amin'ny kofehy kernel M, izay samy mampihena ny fifandimbiasana eo ambonin'ny lohany sy ny fanamafisam-peo manerana ny cores CPU. Ny vidin'ity safidy ity dia ny fahasarotana lehibe amin'ny fampiharana ny fandaharam-potoanan'ny kofehy amin'ny habaka mpampiasa sy ny filΓ na mekanika handrindrana ny hetsika miaraka amin'ny mpandrindra kernel.

Source: opennet.ru

Add a comment