ጎግል የM:N ፈትል ሞዴል አተገባበርን መክፈት ጀምሯል።

በጉግል መፈለግ የሚል ሀሳብ አቅርቧል የ M: N ክር ሞዴል አሠራር ለማረጋገጥ አስፈላጊ የሆኑትን ክፍሎች ከመተግበሩ ጋር በሊኑክስ ከርነል ውስጥ የመጀመሪያውን የንጣፎች ስብስብ ለማካተት. የጎግል ተነሳሽነት ከዝግ በሮች በስተጀርባ እየገነባ ካለው ኤፒአይ ከመክፈት ጋር የተያያዘ ነው። ወደ ቀይር ለሊኑክስ ከርነል፣ በተጠቃሚ ቦታ ላይ የተተገበረ ባለብዙ-ክር ንኡስ ስርዓት 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 ዥረቶች) እና ሊኑክስ ክሮች, እና በቀጥታ በተጠቃሚ ቦታ ላይ ያለውን ክር በከርነል ደረጃ ላይ ወዳለው ክር (የአፈፃፀም መርሐግብር አሃድ) በቀጥታ ካርታ መስራትን ያመለክታል። ሞዴል N፡1 በ ውስጥ ተተግብሯል። ጂኤንዩ ፒ, ክር መላክን ወደ ተጠቃሚ ቦታ ያመጣል እና በተጠቃሚ ቦታ ላይ ያሉ N ክሮች በከርነል ውስጥ ከአንድ ክር ጋር እንዲተሳሰሩ ያስችላቸዋል, ከርነል የተጠቃሚ ክሮች እውቀት ሳይኖረው.

የ1፡1 ሞዴል ዋነኛው ጉዳቱ በከርነል እና በተጠቃሚ ቦታ መካከል ያለው ትልቅ የአውድ ለውጥ ነው። የ N: 1 ሞዴል ይህንን ችግር ይፈታል ፣ ግን አዲስ ይፈጥራል - በከርነል ውስጥ ያለው ክር የማይከፋፈል የአፈፃፀም መርሐግብር አሃድ ስለሆነ ፣ በስርዓተ ክወናው ከርነል ውስጥ ከአንድ ክር ጋር የተሳሰሩ የተጠቃሚ ክሮች በሲፒዩ ኮሮች ላይ ሊመዘኑ አይችሉም እና መጨረሻ ላይ የታሰሩ ናቸው። ነጠላ የሲፒዩ ኮር.

የኤም፡ኤን ሞዴል ድቅል ነው እና በተጠቃሚ ቦታ ላይ ያሉትን N ክሮች በ OS kernel ውስጥ ያሉትን M ክሮች በመቅረጽ ከላይ የተገለጹትን ድክመቶች ያስወግዳል፣ ይህም ሁለቱም የአውድ መቀያየርን የላይኛውን ጫፍ እንዲቀንሱ እና በሲፒዩ ኮሮች ላይ መመዘንን ለማረጋገጥ ያስችላል። የዚህ አማራጭ ዋጋ በተጠቃሚ ቦታ ላይ ክር መርሐግብርን የመተግበር ታላቅ ውስብስብነት እና እርምጃዎችን ከከርነል መርሐግብር ጋር የማስተባበር ዘዴዎች አስፈላጊነት ነው።

ምንጭ: opennet.ru

አስተያየት ያክሉ