Hacker News

ગો રનટાઇમને સમજવું: શેડ્યૂલર

ટિપ્પણીઓ

1 min read Via internals-for-interns.com

Mewayz Team

Editorial Team

Hacker News

પરિચય: તમારી ગો એપ્લિકેશન્સનો અદ્રશ્ય વાહક

જ્યારે તમે ગો પ્રોગ્રામ લખો છો, ત્યારે તમે તર્ક, કાર્યો અને ચેનલો પર ધ્યાન કેન્દ્રિત કરો છો. તમે `go myFunction()` ટાઇપ કરો છો અને તમારો કોડ એકીકૃત રીતે એક્ઝિક્યુટ થાય છે. પરંતુ સપાટીની નીચે, એક અદ્રશ્ય વાહક કામગીરીનું આયોજન કરી રહ્યું છે, તે સુનિશ્ચિત કરે છે કે તમારી સહવર્તી દિનચર્યાઓ સરળતાથી અને અસરકારક રીતે ચાલે છે. આ ઉસ્તાદ ગો રનટાઇમ શેડ્યૂલર છે. તે કેવી રીતે કાર્ય કરે છે તે સમજવું એ માત્ર એક શૈક્ષણિક કવાયત નથી; ઉચ્ચ-પ્રદર્શન, સ્કેલેબલ સોફ્ટવેર લખવા માટે તે નિર્ણાયક છે. Mewayz જેવા પ્લેટફોર્મ માટે, જે એકસાથે જટિલ, મોડ્યુલર બિઝનેસ પ્રક્રિયાઓને હેન્ડલ કરવા માટે બનાવવામાં આવ્યું છે, શેડ્યૂલરની શક્તિનો લાભ લેવો એ વ્યવસાયો માટે પ્રતિભાવશીલ અને વિશ્વસનીય ઑપરેટિંગ સિસ્ટમ પહોંચાડવા માટે મૂળભૂત છે.

ગો શેડ્યૂલર શું છે અને અમને તેની શા માટે જરૂર છે?

ગો એ ગોરોટીન પર આધારિત તેના સરળ અને શક્તિશાળી કન્કરન્સી મોડલ માટે જાણીતું છે. ગોરોટીન એ ગો રનટાઇમ દ્વારા સંચાલિત હળવા વજનના "ગ્રીન થ્રેડો" છે, ઓપરેટિંગ સિસ્ટમ દ્વારા નહીં. તેમાંથી હજારો બનાવવાનું મેમરી અને ઓવરહેડની દ્રષ્ટિએ સસ્તું છે. જો કે, આ ગોરોટીનને આખરે ભૌતિક OS થ્રેડો પર ચલાવવાની જરૂર છે, જે ખૂબ ભારે અને સંખ્યામાં મર્યાદિત છે. ગો શેડ્યૂલર એ બુદ્ધિશાળી સ્તર છે જે OS થ્રેડોના નાના પૂલ પર સંભવિત રૂપે મોટી સંખ્યામાં ગોરોટીન્સને મેપ કરે છે. તેનું પ્રાથમિક કાર્ય વર્કલોડનું વિતરણ કરવાનું છે, જે સંમતિને કાર્યક્ષમ અને વ્યવહારુ બનાવે છે. તેના વિના, અમે OS થ્રેડોને સીધા જ મેનેજ કરવામાં અટવાઈ જઈશું, એક જટિલ અને ભૂલ-સંભવિત કાર્ય જે Go ના મોટા ભાગના સહવર્તી લાભને નકારશે.

GMP મોડલ: ધ શેડ્યૂલરનું કોર આર્કિટેક્ચર

ગો શેડ્યૂલર એ મોડેલ પર કામ કરે છે જેને ઘણીવાર GMP તરીકે ઓળખવામાં આવે છે, જે ગોરોટીન્સ, ઓએસ થ્રેડ્સ (મશીનો) અને પ્રોસેસર્સ માટે વપરાય છે. આ ત્રણેય તમારા કોડને એક્ઝિક્યુટ કરવા માટે કોન્સર્ટમાં કામ કરે છે.

  • G (Goroutine): આ સહવર્તી એક્ઝેક્યુશનનું મૂળભૂત એકમ છે. તેમાં સ્ટેક, સૂચના નિર્દેશક અને ફંક્શન ચલાવવા માટે જરૂરી અન્ય માહિતી શામેલ છે.
  • M (મશીન): એક M OS થ્રેડનું પ્રતિનિધિત્વ કરે છે. તે વાસ્તવિક એન્ટિટી છે જે CPU કોર પર ચલાવવા માટે ઓપરેટિંગ સિસ્ટમ દ્વારા શેડ્યૂલ કરવામાં આવે છે.
  • P (પ્રોસેસર): A P એ લોજિકલ પ્રોસેસર અથવા શેડ્યુલિંગ માટેનો સંદર્ભ છે. તે Go કોડ ચલાવવા માટે જરૂરી સંસાધનોનું પ્રતિનિધિત્વ કરે છે. દરેક P પાસે દોડવા માટે તૈયાર ગોરોટીન (Gs) ની સ્થાનિક રન કતાર છે. Ps ની સંખ્યા સામાન્ય રીતે ઉપલબ્ધ CPU કોરો (GOMAXPROCS) ની સંખ્યા પર સેટ કરવામાં આવે છે.

સંબંધ ચાવીરૂપ છે: ગો કોડને એક્ઝિક્યુટ કરવા માટે P એ M સાથે જોડાયેલ હોવું જોઈએ, અને M પછી P ની સ્થાનિક કતારમાંથી ગોરોટીન એક્ઝિક્યુટ કરે છે. આ એબ્સ્ટ્રેક્શન શેડ્યૂલરને ઉપલબ્ધ CPU કોરો પર કાર્ય વિતરણને અસરકારક રીતે સંચાલિત કરવાની મંજૂરી આપે છે.

શેડ્યુલર મિકેનિક્સ: કેવી રીતે કાર્યનું વિતરણ થાય છે

શેડ્યુલરની બુદ્ધિ એ કતાર અને M-P સંબંધોને કેવી રીતે મેનેજ કરે છે તેમાં રહેલ છે. તે એક પ્રીમેપ્ટિવ શેડ્યૂલર છે, જેનો અર્થ છે કે તે અન્યને એક્ઝિક્યુટ કરવાની તક આપવા માટે ચાલી રહેલ ગોરોટીનને વિક્ષેપિત કરી શકે છે. આ એક જ ગોરોટીનને અનિશ્ચિત સમય માટે P હોગિંગ કરતા અટકાવે છે. મુખ્ય મિકેનિઝમ્સમાં શામેલ છે:

વર્ક-સ્ટીલિંગ: જ્યારે P તેની સ્થાનિક કતારમાં ગોરોટીન સમાપ્ત થઈ જાય છે, ત્યારે તે નિષ્ક્રિય બેસતું નથી. તેના બદલે, તે બીજા P ની રન કતારમાંથી અડધા ગોરોટીનને "ચોરી" કરવાનો પ્રયાસ કરે છે. જો તે નિષ્ફળ જાય, તો તે વૈશ્વિક રન કતાર તપાસે છે. આ સુનિશ્ચિત કરે છે કે જ્યાં સુધી સિસ્ટમમાં કોઈપણ જગ્યાએ કામ કરવાનું હોય ત્યાં સુધી તમામ CPU ને વ્યસ્ત રાખવામાં આવે છે.

સિસ્ટમ કૉલ્સ: જ્યારે ગોરોટીન બ્લોકિંગ સિસ્ટમ કૉલ કરે છે (દા.ત., ફાઇલ વાંચે છે), શેડ્યૂલર હેન્ડઓફ કરે છે. કૉલને એક્ઝિક્યુટ કરતો થ્રેડ (M) બ્લૉક થઈ જાય છે, પરંતુ તે જે P સાથે જોડાયેલ હતો તે અટવાયેલો રહેતો નથી. શેડ્યૂલર P ને અલગ કરે છે અને નિષ્ક્રિય M શોધે છે અથવા P સાથે જોડવા માટે એક નવું બનાવે છે, જેથી તે અન્ય ગોરોટીન ચલાવવાનું ચાલુ રાખી શકે. જ્યારે સિસ્ટમ કૉલ પૂર્ણ થાય છે, ત્યારે ગોરોટીનને રન કતારમાં પાછું મૂકવામાં આવે છે, અને M એ એક્ઝેક્યુશન ચાલુ રાખવા માટે P શોધવાનો પ્રયાસ કરે છે.

💡 DID YOU KNOW?

Mewayz replaces 8+ business tools in one platform

CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.

Start Free →
ગો શેડ્યૂલરનું વર્ક-સ્ટીલિંગ એલ્ગોરિધમ એ એન્જિનિયરિંગની શ્રેષ્ઠ કૃતિ છે, જે વ્યક્તિગત પ્રોસેસરોના સંગ્રહને સહકારી ટીમમાં પરિવર્તિત કરે છે જે સમગ્ર વર્કલોડને અસરકારક રીતે સંતુલિત કરે છે.

મેવેઝ જેવી સ્કેલેબલ સિસ્ટમ્સ બનાવવા માટેની અસરો

મેવેઝ જેવા મોડ્યુલર બિઝનેસ ઓએસ માટે, જ્યાં સીઆરએમથી લઈને ઈન્વેન્ટરી મેનેજમેન્ટ સુધીના અલગ-અલગ મોડ્યુલો સ્વતંત્ર રીતે કામ કરવા જોઈએ છતાં એકીકૃત રીતે, ગો શેડ્યૂલરની ડિઝાઇન એક નોંધપાત્ર ફાયદો છે. અસંખ્ય નાના, સમવર્તી ગોરોટીનમાં એપ્લિકેશન લોજીકનું માળખું કરીને, મેવેઝ ઉચ્ચ થ્રુપુટ પ્રાપ્ત કરી શકે છે. શેડ્યૂલર આ કાર્યોને તમામ ઉપલબ્ધ CPU કોરો પર આપમેળે વિતરિત કરે છે, તેની ખાતરી કરીને કે ભારે ભાર હેઠળ પણ સિસ્ટમ પ્રતિભાવશીલ રહે છે. Mewayz પર નિર્માણ કરનારા વિકાસકર્તાઓ માઇક્રોમેનેજિંગ થ્રેડો વિના સ્પષ્ટ, મોડ્યુલર કોડ લખવા પર ધ્યાન કેન્દ્રિત કરી શકે છે, વિશ્વાસ છે કે અંતર્ગત રનટાઇમ સમાંતર અમલના જટિલ કાર્યને અસરકારક રીતે હેન્ડલ કરશે. આનાથી Mewayz ને આધુનિક વ્યવસાયો તેમની મુખ્ય ઓપરેટિંગ સિસ્ટમમાંથી જે કામગીરી અને માપનીયતા માંગે છે તે પહોંચાડવા માટે પરવાનગી આપે છે.

વારંવાર પૂછાતા પ્રશ્નો

પરિચય: તમારી ગો એપ્લિકેશન્સનો અદ્રશ્ય વાહક

જ્યારે તમે ગો પ્રોગ્રામ લખો છો, ત્યારે તમે તર્ક, કાર્યો અને ચેનલો પર ધ્યાન કેન્દ્રિત કરો છો. તમે `go myFunction()` ટાઇપ કરો છો અને તમારો કોડ એકીકૃત રીતે એક્ઝિક્યુટ થાય છે. પરંતુ સપાટીની નીચે, એક અદ્રશ્ય વાહક કામગીરીનું આયોજન કરી રહ્યું છે, તે સુનિશ્ચિત કરે છે કે તમારી સહવર્તી દિનચર્યાઓ સરળતાથી અને અસરકારક રીતે ચાલે છે. આ ઉસ્તાદ ગો રનટાઇમ શેડ્યૂલર છે. તે કેવી રીતે કાર્ય કરે છે તે સમજવું એ માત્ર એક શૈક્ષણિક કવાયત નથી; ઉચ્ચ-પ્રદર્શન, સ્કેલેબલ સોફ્ટવેર લખવા માટે તે નિર્ણાયક છે. Mewayz જેવા પ્લેટફોર્મ માટે, જે એકસાથે જટિલ, મોડ્યુલર બિઝનેસ પ્રક્રિયાઓને હેન્ડલ કરવા માટે બનાવવામાં આવ્યું છે, શેડ્યૂલરની શક્તિનો લાભ લેવો એ વ્યવસાયો માટે પ્રતિભાવશીલ અને વિશ્વસનીય ઑપરેટિંગ સિસ્ટમ પહોંચાડવા માટે મૂળભૂત છે.

ગો શેડ્યૂલર શું છે અને અમને તેની શા માટે જરૂર છે?

ગો એ ગોરોટીન પર આધારિત તેના સરળ અને શક્તિશાળી કન્કરન્સી મોડલ માટે જાણીતું છે. ગોરોટીન એ ગો રનટાઇમ દ્વારા સંચાલિત હળવા વજનના "ગ્રીન થ્રેડો" છે, ઓપરેટિંગ સિસ્ટમ દ્વારા નહીં. તેમાંથી હજારો બનાવવાનું મેમરી અને ઓવરહેડની દ્રષ્ટિએ સસ્તું છે. જો કે, આ ગોરોટીનને આખરે ભૌતિક OS થ્રેડો પર ચલાવવાની જરૂર છે, જે ખૂબ ભારે અને સંખ્યામાં મર્યાદિત છે. ગો શેડ્યૂલર એ બુદ્ધિશાળી સ્તર છે જે OS થ્રેડોના નાના પૂલ પર સંભવિત રૂપે મોટી સંખ્યામાં ગોરોટીન્સને મેપ કરે છે. તેનું પ્રાથમિક કાર્ય વર્કલોડનું વિતરણ કરવાનું છે, જે સંમતિને કાર્યક્ષમ અને વ્યવહારુ બનાવે છે. તેના વિના, અમે OS થ્રેડોને સીધા જ મેનેજ કરવામાં અટવાઈ જઈશું, એક જટિલ અને ભૂલ-સંભવિત કાર્ય જે Go ના મોટા ભાગના સહવર્તી લાભને નકારશે.

GMP મોડલ: ધ શેડ્યૂલરનું કોર આર્કિટેક્ચર

ગો શેડ્યૂલર એ મોડેલ પર કામ કરે છે જેને ઘણીવાર GMP તરીકે ઓળખવામાં આવે છે, જે ગોરોટીન્સ, ઓએસ થ્રેડ્સ (મશીનો) અને પ્રોસેસર્સ માટે વપરાય છે. આ ત્રણેય તમારા કોડને એક્ઝિક્યુટ કરવા માટે કોન્સર્ટમાં કામ કરે છે.

શેડ્યુલર મિકેનિક્સ: કેવી રીતે કાર્યનું વિતરણ થાય છે

શેડ્યુલરની બુદ્ધિ એ કતાર અને M-P સંબંધોને કેવી રીતે મેનેજ કરે છે તેમાં રહેલ છે. તે એક પ્રીમેપ્ટિવ શેડ્યૂલર છે, જેનો અર્થ છે કે તે અન્યને એક્ઝિક્યુટ કરવાની તક આપવા માટે ચાલી રહેલ ગોરોટીનને વિક્ષેપિત કરી શકે છે. આ એક જ ગોરોટીનને અનિશ્ચિત સમય માટે P હોગિંગ કરતા અટકાવે છે. મુખ્ય મિકેનિઝમ્સમાં શામેલ છે:

મેવેઝ જેવી સ્કેલેબલ સિસ્ટમ્સ બનાવવા માટેની અસરો

મેવેઝ જેવા મોડ્યુલર બિઝનેસ ઓએસ માટે, જ્યાં સીઆરએમથી લઈને ઈન્વેન્ટરી મેનેજમેન્ટ સુધીના અલગ-અલગ મોડ્યુલો સ્વતંત્ર રીતે કામ કરવા જોઈએ છતાં એકીકૃત રીતે, ગો શેડ્યૂલરની ડિઝાઇન એક નોંધપાત્ર ફાયદો છે. અસંખ્ય નાના, સમવર્તી ગોરોટીનમાં એપ્લિકેશન લોજીકનું માળખું કરીને, મેવેઝ ઉચ્ચ થ્રુપુટ પ્રાપ્ત કરી શકે છે. શેડ્યૂલર આ કાર્યોને તમામ ઉપલબ્ધ CPU કોરો પર આપમેળે વિતરિત કરે છે, તેની ખાતરી કરીને કે ભારે ભાર હેઠળ પણ સિસ્ટમ પ્રતિભાવશીલ રહે છે. Mewayz પર નિર્માણ કરનારા વિકાસકર્તાઓ માઇક્રોમેનેજિંગ થ્રેડો વિના સ્પષ્ટ, મોડ્યુલર કોડ લખવા પર ધ્યાન કેન્દ્રિત કરી શકે છે, વિશ્વાસ છે કે અંતર્ગત રનટાઇમ સમાંતર અમલના જટિલ કાર્યને અસરકારક રીતે હેન્ડલ કરશે. આનાથી Mewayz ને આધુનિક વ્યવસાયો તેમની મુખ્ય ઓપરેટિંગ સિસ્ટમમાંથી જે કામગીરી અને માપનીયતા માંગે છે તે પહોંચાડવા માટે પરવાનગી આપે છે.

તમારા તમામ વ્યવસાય સાધનો એક જ જગ્યાએ

બહુવિધ એપને જાદુ કરવાનું બંધ કરો. Mewayz માત્ર $49/મહિનામાં 208 ટૂલ્સને સંયોજિત કરે છે — ઇન્વેન્ટરીથી HR, બુકિંગથી એનાલિટિક્સ સુધી. શરૂ કરવા માટે કોઈ ક્રેડિટ કાર્ડની જરૂર નથી.

Mewayaz ફ્રી અજમાવી જુઓ

Start managing your business smarter today

Join 30,000+ businesses. Free forever plan · No credit card required.

Ready to put this into practice?

Join 30,000+ businesses using Mewayz. Free forever plan — no credit card required.

Start Free Trial →

Ready to take action?

Start your free Mewayz trial today

All-in-one business platform. No credit card required.

Start Free →

14-day free trial · No credit card · Cancel anytime