Google M:N oqim modelini joriy qilishni boshladi

Google taklif qildi Linux yadrosiga M: N tishli modelining ishlashini ta'minlash uchun zarur bo'lgan komponentlarni amalga oshirish bilan yamoqlarning birinchi to'plamini kiritish uchun. Google tashabbusi yopiq eshiklar ortida ishlab chiqilgan APIni ochish bilan bog'liq Oʻtish M: N ish zarracha modelidan foydalanadigan foydalanuvchi maydonida amalga oshirilgan ko'p tarmoqli quyi tizimni ta'minlovchi Linux yadrosi uchun. Quyi tizim Google tomonidan minimal kechikishlarni talab qiladigan xizmatlarni taqdim etish uchun ishlatiladi. Tarmoqlarni taqsimlashni rejalashtirish va boshqarish butunlay foydalanuvchi maydonida amalga oshiriladi, bu tizim qo'ng'iroqlarining bajarilishini minimallashtirish orqali kontekstli kalitlar sonini sezilarli darajada kamaytirishi mumkin.

Ushbu quyi tizimning ishlashini ta'minlash uchun SwitchTo API Linux yadrosi darajasida amalga oshirildi va uchta asosiy operatsiyani taklif qildi - kutish, davom ettirish va almashtirish (o'zgartirish). Yadroga kiritish uchun yangi FUTEX_SWAP operatsiyasi uchun kod taklif qilinadi FUTEX_WAIT va FUTEX_WAKE, va ko'p tarmoqli foydalanuvchi makon kutubxonalarini yaratish uchun asosni taqdim etadi. FUTEX_SWAP RPC ga o'xshash vazifalar o'rtasida xabarlarni uzatish uchun ham ishlatilishi mumkin. Masalan, hozirda topshiriqlar oʻrtasida xabarni uzatish uchun FUTEX_WAIT va FUTEX_WAKE ga kamida toʻrtta qoʻngʻiroq kerak boʻladi, FUTEX_SWAP dan foydalanish esa bitta operatsiyani 5-10 barobar tezroq bajarish imkonini beradi.

Google M:N oqim modelini joriy qilishni boshladi

Hozirgi vaqtda amaliyotda asosan 1:1 va N:1 oqim modellari qo'llaniladi. 1: 1 modeli ishlatiladi NPTL (POSIX iplari) va LinuxThreads, va yadro darajasida foydalanuvchi-kosmik ipni to'g'ridan-to'g'ri ipga (bajarishni rejalashtirish birligi) moslashtirishni nazarda tutadi. N: 1 modeli joriy qilingan GNU Pth, foydalanuvchi bo'shlig'iga ipni rejalashtirishni olib keladi va N foydalanuvchi bo'shlig'i iplarini yadrodagi bitta ipga bog'lash imkonini beradi, yadro foydalanuvchi mavzulari haqida bilmaydi.

1:1 modelining asosiy kamchiliklari yadro va foydalanuvchi maydoni o'rtasida kontekstni almashtirishning katta xarajatlaridir. N: 1 modeli bu muammoni hal qiladi, lekin yangisini yaratadi - yadrodagi ip bajarish rejalashtirishning ajralmas birligi bo'lgani uchun, operatsion tizim yadrosidagi bitta ipga bog'langan foydalanuvchi iplari protsessor yadrolari bo'ylab masshtablasha olmaydi va bog'lanadi. bitta CPU yadrosi.

M:N modeli gibrid bo'lib, N foydalanuvchilar maydonini M yadro iplari bilan taqqoslash orqali yuqoridagi barcha kamchiliklarni bartaraf etadi, bu ham kontekstni almashtirish yukini kamaytiradi, ham protsessor yadrolari bo'ylab masshtabni o'tkazadi. Ushbu opsiyaning narxi foydalanuvchi makonida ipni rejalashtiruvchini amalga oshirishning katta murakkabligi va yadro rejalashtiruvchisi bilan harakatlarni muvofiqlashtirish mexanizmlariga bo'lgan ehtiyojdir.

Manba: opennet.ru

a Izoh qo'shish