கூகிள் M:N ஃப்ளோ மாடலை செயல்படுத்தத் தொடங்கியுள்ளது

கூகிள் பரிந்துரைக்கப்பட்டது லினக்ஸ் கர்னலில் சேர்ப்பதற்காக M: N த்ரெடிங் மாதிரியின் வேலையை உறுதிப்படுத்த தேவையான கூறுகளை செயல்படுத்துவதன் மூலம் முதல் தொகுப்பு பேட்சுகள். கூகிளின் முன்முயற்சியானது மூடிய கதவுகளுக்குப் பின்னால் உருவாக்கப்பட்ட APIயைத் திறப்பது தொடர்பானது மாறிக்கொள்ளுங்கள் லினக்ஸ் கர்னலுக்கு, இது M: N த்ரெடிங் மாதிரியைப் பயன்படுத்தும் பயனர் இடத்தில் செயல்படுத்தப்பட்ட பல-திரிக்கப்பட்ட துணை அமைப்பை வழங்குகிறது. குறைந்தபட்ச தாமதங்கள் தேவைப்படும் சேவைகளை வழங்க, துணை அமைப்பு Google ஆல் பயன்படுத்தப்படுகிறது. நூல் விநியோகத்தின் திட்டமிடல் மற்றும் மேலாண்மை முற்றிலும் பயனர் இடத்தில் செய்யப்படுகிறது, இது கணினி அழைப்புகளை செயல்படுத்துவதைக் குறைப்பதன் மூலம் சூழல் சுவிட்சுகளின் எண்ணிக்கையை கணிசமாகக் குறைக்கும்.

இந்த துணை அமைப்பின் செயல்பாட்டை உறுதிப்படுத்த, லினக்ஸ் கர்னல் மட்டத்தில் SwitchTo API செயல்படுத்தப்பட்டது, இது மூன்று அடிப்படை செயல்பாடுகளை வழங்குகிறது - காத்திரு, மறுதொடக்கம் மற்றும் ஸ்வாப் (மாறுதல்). கர்னலில் சேர்ப்பதற்கு, புதிய FUTEX_SWAP செயல்பாட்டிற்கான குறியீடு முன்மொழியப்பட்டது, கூடுதலாக FUTEX_WAIT மற்றும் FUTEX_WAKE, மற்றும் பல-திரிக்கப்பட்ட பயனர்-வெளி நூலகங்களை உருவாக்குவதற்கான கட்டமைப்பை வழங்குகிறது. FUTEX_SWAP ஆனது RPC போன்ற பணிகளுக்கு இடையே செய்திகளை அனுப்பவும் பயன்படுத்தப்படலாம். எடுத்துக்காட்டாக, தற்போது, ​​பணிகளுக்கு இடையே ஒரு செய்தியை மாற்ற, FUTEX_WAIT மற்றும் FUTEX_WAKE க்கு குறைந்தபட்சம் நான்கு அழைப்புகள் தேவை, அதே நேரத்தில் FUTEX_SWAPஐப் பயன்படுத்தி ஒரு செயல்பாட்டை 5-10 மடங்கு வேகமாக முடிக்க முடியும்.

கூகிள் M:N ஃப்ளோ மாடலை செயல்படுத்தத் தொடங்கியுள்ளது

தற்போது, ​​1:1 மற்றும் N:1 ஓட்ட மாதிரிகள் முக்கியமாக நடைமுறையில் பயன்படுத்தப்படுகின்றன. 1:1 மாதிரி பயன்படுத்தப்படுகிறது NPTL (POSIX நூல்கள்) மற்றும் LinuxThreads, மற்றும் கர்னல் மட்டத்தில் ஒரு த்ரெட்டிற்கு (செயல்படுத்தும் திட்டமிடல் அலகு) பயனர்-வெளி நூலின் நேரடி மேப்பிங்கைக் குறிக்கிறது. N:1 மாதிரி செயல்படுத்தப்படுகிறது GNU Pth, பயனர்-இடத்திற்கு நூல் திட்டமிடலைக் கொண்டுவருகிறது மற்றும் பயனர்-இழைகளைப் பற்றி கர்னலுக்குத் தெரியாமல், கர்னலில் உள்ள ஒரு நூலுடன் N பயனர்-வெளி நூல்களை பிணைக்க அனுமதிக்கிறது.

1:1 மாதிரியின் முக்கிய தீமை கர்னல் மற்றும் பயனர் இடங்களுக்கு இடையேயான சூழல் மாறுதலின் பெரிய மேல்நிலை ஆகும். N:1 மாதிரியானது இந்தச் சிக்கலைத் தீர்க்கிறது, ஆனால் புதிய ஒன்றை உருவாக்குகிறது - கர்னலில் உள்ள ஒரு நூல் செயல்படுத்தல் திட்டமிடலின் பிரிக்க முடியாத அலகு என்பதால், இயக்க முறைமை கர்னலில் ஒரு தொடருடன் பிணைக்கப்பட்ட பயனர் நூல்கள் CPU கோர்கள் முழுவதும் அளவிட முடியாது மற்றும் பிணைக்கப்படாது. ஒற்றை CPU கோர்.

M:N மாதிரியானது கலப்பினமானது மற்றும் மேலே உள்ள அனைத்து குறைபாடுகளையும் நிவர்த்தி செய்கிறது, N பயனர்வெளி நூல்களை M கர்னல் த்ரெட்களுக்கு மேப்பிங் செய்வதன் மூலம், சூழல் சுவிட்ச் ஓவர்ஹெட் மற்றும் CPU கோர்கள் முழுவதும் அளவிடுதல். இந்த விருப்பத்தின் விலையானது, பயனர் இடத்தில் த்ரெட் ஷெட்யூலரை செயல்படுத்துவதில் பெரும் சிக்கலாக உள்ளது மற்றும் கர்னல் ஷெட்யூலருடன் செயல்களை ஒருங்கிணைக்க வழிமுறைகள் தேவை.

ஆதாரம்: opennet.ru

கருத்தைச் சேர்