ක්‍රියාවලියක් සහ නූලක් අතර වෙනස කුමක්ද?


1655

ක්‍රියාවලියක් සහ නූලක් අතර තාක්ෂණික වෙනස කුමක්ද?

'ක්‍රියාවලිය' වැනි වචනයක් ඕනෑවට වඩා භාවිතා කර ඇති අතර දෘඩාංග හා මෘදුකාංග නූල් ද ඇත. අර්ලාන්ග් වැනි භාෂාවල සැහැල්ලු ක්‍රියාදාමයන් ගැන කුමක් කිව හැකිද? එක් යෙදුමක් අනෙකට වඩා භාවිතා කිරීමට නිශ්චිත හේතුවක් තිබේද?



6
සෑම මෙහෙයුම් පද්ධතියකටම 'නූල්' හෝ 'ක්‍රියාවලියක්' යනු කුමක්ද යන්න පිළිබඳව වෙනස් අදහසක් ඇති බව පැවසීමට එය වරෙන්තු කරයි. සමහර ප්‍රධාන ධාරාවේ මෙහෙයුම් පද්ධතියට 'නූල්' පිළිබඳ සංකල්පයක් නොමැත, සමහර කාවැද්දූ මෙහෙයුම් පද්ධති ද ඇත.
නීල්

Answers:


1466

ක්‍රියාවලි සහ නූල් යන දෙකම ක්‍රියාත්මක කිරීමේ ස්වාධීන අනුක්‍රමයන් වේ. සාමාන්‍ය වෙනස වන්නේ හවුල් මතක අවකාශයක නූල් (එකම ක්‍රියාවලියේ) ක්‍රියාත්මක වන අතර ක්‍රියාවලි වෙනම මතක අවකාශයක ක්‍රියාත්මක වීමයි.

ඔබ සඳහන් කරන "දෘඩාංග" එදිරිව "මෘදුකාංග" නූල් මොනවාදැයි මට විශ්වාස නැත. නූල් යනු CPU අංගයකට වඩා මෙහෙයුම් පරිසර අංගයකි (CPU සාමාන්‍යයෙන් නූල් කාර්යක්ෂම කරන මෙහෙයුම් ඇතත්).

හවුල් මතකය බහු වැඩසටහන්කරණ ආකෘතියක් නිරාවරණය නොකරන හෙයින් අර්ලාන්ග් "ක්‍රියාවලිය" යන යෙදුම භාවිතා කරයි. ඒවා "නූල්" ලෙස හැඳින්වීමෙන් අදහස් වන්නේ ඔවුන් මතකය බෙදාගෙන ඇති බවයි.


57
දෘඩාංග නූල් බොහෝ විට හරයක් තුළ ඇති බහු නූල් සන්දර්භයන් වෙත යොමු වේ (උදා: හයිපර්ට්‍රෙඩින්, එස්එම්ටී, සූර්යයාගේ නයගරා / පාෂාණය). මෙයින් අදහස් කරන්නේ අනුපිටපත් රෙජිස්ටර් ලිපිගොනු, නල මාර්ග හරහා උපදෙස් සමඟ අමතර බිටු රැගෙන යාම සහ වඩාත් සංකීර්ණ බයිපාස් කිරීම / ඉදිරියට යැවීමේ තර්කනය යනාදියයි.
මැට් ජේ

5
ග්‍රෙග්, මට එක සැකයක් නූල් වලින් තියෙනවා. RAM හි යම් ඉඩක් ඇති A ක්‍රියාවලියක් මා සතුව ඇති බව සලකා බැලීමට මට ඉඩ දෙන්න. A ක්‍රියාවලිය මඟින් නූල් සාදන්නේ නම්, ක්‍රියාත්මක කිරීමට නූල්ට යම් ඉඩක් අවශ්‍ය වේ. එබැවින් එය A ක්‍රියාවලිය සඳහා නිර්මාණය කරන ලද අවකාශයේ ප්‍රමාණය වැඩි කරයි ද නැතහොත් වෙනත් තැනක නිර්මාණය කරන ලද නූල් සඳහා ඉඩ ප්‍රමාණය වැඩි කරයි ද? ඉතින් අථත්ය අභ්යවකාශ ක්රියාවලිය නිර්මාණය කරන්නේ කුමක් ද? මගේ ප්‍රශ්නය වැරදියි නම් කරුණාකර මාව නිවැරදි කරන්න. ස්තූතියි
duslabo

10
@ ජේශ්වන්ත් කුමාර්එන්කේ: නව ත්‍රෙඩ් එකක් සෑදීමෙන් නව තොගයක් සඳහා අවම වශයෙන් ප්‍රමාණවත් මතකයක් වෙන් කරයි. මෙම මතකය මෙහෙයුම් පද්ධතිය විසින් වෙන් කර ඇත.
ග්‍රෙග් හෙව්ගිල්

27
මෙම පිළිතුර වැරදියි. ක්‍රියාවලි සහ නූල් දෙකම ක්‍රියාත්මක කිරීමේ ස්වාධීන අනුක්‍රමයන් නම්, නූල් දෙකක් අඩංගු ක්‍රියාවලියකට ක්‍රියාත්මක කිරීමේ අනුක්‍රම තුනක් තිබිය යුතු අතර එය නිවැරදි විය නොහැක. ත්‍රෙඩ් එකක් පමණක් ක්‍රියාත්මක කිරීමේ අනුක්‍රමයකි - ක්‍රියාවලියක් යනු ක්‍රියාත්මක කිරීමේ අනුක්‍රමයක් හෝ කිහිපයක් රඳවා ගත හැකි බහාලුමකි.
ඩේවිඩ් ෂ්වාට්ස්

9
“දෘඩාංග නූල්” යනු තනි දෘඩාංග සම්පත් (වෙනම හරයක්, සකසනයක් හෝ හයිපර්ට්‍රෙඩ්) ලබා දෙන නූල් ය. “මෘදුකාංග නූල්” යනු එකම සැකසුම් බලය සඳහා තරඟ කළ යුතු නූල් ය.
jpmc26

817

ක්‍රියාවලිය
සෑම ක්‍රියාවලියක්ම වැඩසටහනක් ක්‍රියාත්මක කිරීමට අවශ්‍ය සම්පත් සපයයි. ක්‍රියාවලියකට අතථ්‍ය ලිපින අවකාශයක්, ක්‍රියාත්මක කළ හැකි කේතයක්, පද්ධති වස්තූන් සඳහා විවෘත හැසිරවීම්, ආරක්ෂක සන්දර්භයක්, අද්විතීය ක්‍රියාවලි හඳුනාගැනීමක්, පරිසර විචල්‍යයන්, ප්‍රමුඛතා පන්තියක්, අවම සහ උපරිම ක්‍රියාකාරී කට්ටල ප්‍රමාණ සහ අවම වශයෙන් එක් ක්‍රියාකාරී නූල් ප්‍රමාණයක් ඇත. සෑම ක්‍රියාවලියක්ම තනි නූල් එකකින් ආරම්භ කර ඇති අතර එය බොහෝ විට ප්‍රාථමික නූල් ලෙස හැඳින්වේ, නමුත් එහි ඕනෑම නූල් වලින් අමතර නූල් සෑදිය හැකිය.

නූල්
නූල් යනු ක්‍රියාවට නැංවිය හැකි ක්‍රියාවලියක් තුළ ඇති වස්තුවකි. ක්‍රියාවලියක සියලුම නූල් එහි අථත්‍ය ලිපින අවකාශය සහ පද්ධති සම්පත් බෙදා ගනී. ඊට අමතරව, සෑම නූල් වර්ගයක්ම ව්‍යතිරේක හසුරුවන්නන්, උපලේඛනගත ප්‍රමුඛතාවයක්, නූල් දේශීය ආචයනය, අද්විතීය නූල් හඳුනාගැනීමක් සහ ව්‍යුහයන් සමූහයක් නඩත්තු කරයි. නූල් සන්දර්භය තුළ නූල්වල යන්ත්‍ර රෙජිස්ටර් කට්ටලය, කර්නල් තොගය, නූල් පරිසර වාරණයක් සහ නූල් ක්‍රියාවලියේ ලිපින අවකාශයේ පරිශීලක තොගයක් ඇතුළත් වේ. නූල් වලට ඔවුන්ගේම ආරක්ෂක සන්දර්භයක් තිබිය හැකි අතර, එය සේවාදායකයින් ලෙස පෙනී සිටීම සඳහා භාවිතා කළ හැකිය.


මෙම තොරතුරු මයික්‍රොසොෆ්ට් ලියකියවිලි වලින් හමු විය: ක්‍රියාවලි සහ නූල් ගැන

මයික්‍රොසොෆ්ට් වින්ඩෝස් පූර්ව ක්‍රියාකාරී බහු කාර්යයන් සඳහා සහය දක්වයි, එමඟින් බහු ක්‍රියාදාමයන්ගෙන් බහු නූල් එකවර ක්‍රියාත්මක කිරීමේ බලපෑම නිර්මාණය කරයි. බහු ප්‍රොසෙසර් පරිගණකයක, පරිගණකයේ ප්‍රොසෙසර ඇති බැවින් පද්ධතියට එකවරම නූල් ප්‍රමාණයක් ක්‍රියාත්මක කළ හැකිය.



7
U ලුයිස්වාස්කොන්සෙලෝස් - නූල් නොතිබුනේ නම්, ක්‍රියාවලිය කිසිවක් නොකරයි. ක්‍රියාවලිය වනුයේ මතකයට පටවන ලද කේත සහ වැඩසටහන් තත්වයන් පමණි. එය එතරම් ප්‍රයෝජනයක් නොවේ. එය හරියට වාහන නොමැති පාරක් තිබීම හා සමානයි.
ස්කොට් ලැන්ග්හැම්

4
@ ලුයිස්වාස්කොන්සෙලෝස් - හොඳයි. ඔව්, ඔබට නූල් එකක් ක්‍රියාවලියේ කේතය හරහා ගමන් කරන සහ එම කේතයේ උපදෙස් ක්‍රියාත්මක කරන දෙයක් ලෙස සිතිය හැකිය.
ස්කොට් ලැන්ග්හැම්

9
මෙම පිළිතුර පිළිගත් පිළිතුරට වඩා හොඳය, මන්ද එය ක්‍රියාවලීන් හා නූල්වල පරමාදර්ශය ගැන කථා කරයි : ඒවා වෙනමම කාරණා සහිත වෙනම දේවල් විය යුතුය. කාරණය නම්, බොහෝ මෙහෙයුම් පද්ධති වලට නූල් සොයා ගැනීමට වඩා back ත ඉතිහාසයක් ඇති අතර, එහි ප්‍රති sequently ලයක් වශයෙන්, බොහෝ මෙහෙයුම් පද්ධතිවල, කාලයත් සමඟ සෙමින් දියුණු වුවද, එම උත්සුකයන් තවමත් තරමක් පැටලී ඇත.
සොලමන් මන්දගාමී

4
KBKSpurgeon යමෙකු දෙන සෑම පැහැදිලි කිරීමක් සමඟම, ඔබ ඔබේ පා er කයා එක් අවබෝධයකින් ඊළඟ මට්ටමට ගෙන යා යුතුය. අවාසනාවකට මෙන්, මට සෑම පා er කයෙකුටම පිළිතුර සකස් කළ නොහැකි අතර දැනුමේ මට්ටමක් උපකල්පනය කළ යුතුය. නොදන්නා අය සඳහා, මා භාවිතා කරන වචන ඔවුන්ට තව දුරටත් සෙවිය හැකිය, ඔවුන්ට නොතේරෙන, ඔවුන්ට තේරුම් ගත නොහැකි මූලික ස්ථානයකට ළඟා වන තුරු. මම ඔබට යෝජනා කිරීමට අදහස් කළේ ඔබේම පිළිතුරක් ලබා දීමටයි, නමුත් ඔබට දැනටමත් ලැබී ඇති බව දැකීම සතුටට කරුණකි.
ස්කොට් ලැන්ග්හැම්

304

ක්‍රියාවලිය:

  • වැඩසටහනක ක්‍රියාකාරී අවස්ථාවක් ක්‍රියාවලියක් ලෙස හැඳින්වේ.
  • ක්‍රියාත්මක වන වැඩසටහනකට යොමු කිරීම සඳහා සමහර මෙහෙයුම් පද්ධති 'කාර්යය' යන යෙදුම භාවිතා කරයි.
  • ක්‍රියාවලියක් සෑම විටම ප්‍රධාන මතකයේ ගබඩා කර ඇති අතර එය ප්‍රාථමික මතකය හෝ අහඹු ප්‍රවේශ මතකය ලෙසද හැඳින්වේ.
  • එබැවින් ක්‍රියාවලියක් සක්‍රීය වස්තුවක් ලෙස හැඳින්වේ. යන්ත්රය නැවත ආරම්භ කළහොත් එය අතුරුදහන් වේ.
  • ක්‍රියාවලි කිහිපයක් එකම වැඩසටහනක් සමඟ සම්බන්ධ විය හැකිය.
  • බහු සැකසුම් පද්ධතියක, බහු ක්‍රියාදාමයන් සමාන්තරව ක්‍රියාත්මක කළ හැකිය.
  • ඒකීය සකසනයක පද්ධතියක, සත්‍ය සමාන්තරකරණය සාක්ෂාත් කර නොගත්තද, ක්‍රියාවලි උපලේඛනගත කිරීමේ ඇල්ගොරිතමයක් යොදන අතර ප්‍රොසෙසරය එක් එක් ක්‍රියාවලිය එකවර ක්‍රියාත්මක කිරීමට සැලසුම් කර ඇත.
  • උදාහරණය: 'කැල්කියුලේටරය' වැඩසටහනේ අවස්ථා කිහිපයක් ක්‍රියාත්මක කිරීම. සෑම අවස්ථාවක්ම ක්‍රියාවලියක් ලෙස හැඳින්වේ.

නූල්:

  • නූල් යනු ක්‍රියාවලියේ උප කුලකයකි.
  • එය 'සැහැල්ලු ක්‍රියාවලියක්' ලෙස හැඳින්වේ, මන්ද එය සැබෑ ක්‍රියාවලියකට සමාන නමුත් ක්‍රියාවලියක සන්දර්භය තුළ ක්‍රියාත්මක වන අතර කර්නලය මඟින් ක්‍රියාවලියට ලබා දී ඇති සම්පත් බෙදා ගනී.
  • සාමාන්‍යයෙන්, ක්‍රියාවලියකට ඇත්තේ එක් නූල් පාලනයක් පමණි - වරකට ක්‍රියාත්මක වන යන්ත්‍ර උපදෙස් මාලාවක්.
  • ක්‍රියාවලියක් සමගාමීව උපදෙස් ක්‍රියාත්මක කරන බහු නූල් වලින් ද සෑදිය හැකිය.
  • බහු ප්‍රොසෙසර් පද්ධතිවල ඇති විය හැකි සැබෑ සමාන්තරකරණය ගසාකෑමට පාලනයේ බහු නූල්වලට හැකිය.
  • යුනි-ප්‍රොසෙසර් පද්ධතියක, නූල් උපලේඛනගත කිරීමේ ඇල්ගොරිතමයක් යොදන අතර ප්‍රොසෙසරය එක් එක් නූල් එකවර ක්‍රියාත්මක කිරීමට සැලසුම් කර ඇත.
  • ක්‍රියාවලියක් තුළ ක්‍රියාත්මක වන සියලුම නූල් එකම ලිපින අවකාශය, ගොනු විස්තර කරන්නන්, සිරස් සහ ක්‍රියාවලියට අදාළ වෙනත් ගුණාංග බෙදා ගනී.
  • ක්‍රියාවලියක නූල් එකම මතකයක් ඇති බැවින්, ක්‍රියාවලිය තුළ බෙදාගත් දත්ත වලට ප්‍රවේශය සමමුහුර්ත කිරීම පෙර නොවූ විරූ වැදගත්කමක් ලබා ගනී.

මම ඉහත තොරතුරු දැනුම ගවේෂණයෙන් ලබා ගත්තා! බ්ලොග් .


91
කුමාර්: මගේ දැනුමෙන්, නූල් එකම තොගයක් බෙදා නොගනී. එසේ නොමැතිනම් ඒවා එකිනෙකට වෙනස් කේත ධාවනය කිරීමට නොහැකි වනු ඇත.
මිහයි නීක්සු

28
ඔව් මම හිතන්නේ @ මිහයිනෙක්සු හරි. නූල් "කේතය, දත්ත සහ ලිපිගොනු" බෙදා ගන්නා අතර ඔවුන්ගේම "ලේඛණ සහ තොග" ඇත. මගේ OS පා course මාලාවෙන්
Shehaaz

මෙය බෙහෙවින් ප්‍රයෝජනවත් වේ, එය නූල් සහ ක්‍රියාවලි මොනවාද සහ ඒවා එකිනෙකට සම්බන්ධ වන්නේ කෙසේද යන්න පුළුල් කරයි. ත්‍රෙඩ් එකකට උදාහරණයක් එක් කිරීමට මම යෝජනා කරමි, විශේෂයෙන් ක්‍රියාවලියක් සඳහා එකක් ඇති බැවින්. හොඳ දේවල්!
ස්මිටර්ස්

1
Kquest.co.cc සබැඳි මිය ගොස් ඇත.
එලියා ලින්

1
Nd Rndp13 ගැටළුව වන්නේ "සිරස්" වෙනුවට "ස්ටක්" යන වචනය භාවිතා කිරීමයි. තොගය අථත්ය මතකයේ කොටසක් පමණක් වන අතර නූල් සියළුම අථත්ය මතකය බෙදා ගනී. නූල් වලට ඒවායේ සිරස් පොයින්ටර්ස් පවා තැන්පත් කළ හැකි අතර කිසිදු ගැටළුවක් නොමැතිව වෙනත් ත්‍රෙඩ් එකකින් ක්‍රියාත්මක කිරීම නැවත ආරම්භ කළ හැකිය. එක් නූල් එක් වරකට එක් තොගයක් ක්‍රියාත්මක කිරීම යන්නෙන් අදහස් නොකෙරේ, නූල් එක වරකට ගොනු විස්තරයක් මත ක්‍රියාත්මක වනවා සේම නූල් තොග බෙදා නොගන්නා බවක් අදහස් නොකෙරේ. .
ඩේවිඩ් ෂ්වාට්ස්

131

පළමුව, න්‍යායාත්මක පැත්ත දෙස බලමු. ක්‍රියාවලියක් සහ නූල් අතර වෙනස සහ ඒවා අතර බෙදාගෙන ඇති දේ තේරුම් ගැනීමට සංකල්පමය වශයෙන් ක්‍රියාවලියක් යනු කුමක්දැයි ඔබ තේරුම් ගත යුතුය.

අපි මෙම කොටස තුළ පහත සඳහන් කර ඇත 2.2.2 මෙම සම්භාව්ය, නූල් මාදිලිය වන නූතන මෙහෙයුම් පද්ධති 3e Tanenbaum ලද්දේ:

ක්‍රියාවලි ආකෘතිය ස්වාධීන සංකල්ප දෙකක් මත පදනම් වේ: සම්පත් කාණ්ඩකරණය සහ ක්‍රියාත්මක කිරීම. සමහර විට ඒවා වෙන් කිරීම ප්රයෝජනවත් වේ; නූල් එන තැන මෙයයි ....

ඔහු තවදුරටත් මෙසේ කියයි.

ක්‍රියාවලියක් දෙස බැලීමේ එක් ක්‍රමයක් නම්, එය සම්බන්ධිත සම්පත් එකට එකතු කිරීමේ මාර්ගයකි. ක්‍රියාවලියකට වැඩසටහන් පෙළ සහ දත්ත මෙන්ම වෙනත් සම්පත් අඩංගු ලිපින අවකාශයක් ඇත. මෙම සම්පතට විවෘත ලිපිගොනු, ළමා ක්‍රියාදාමයන්, අපේක්ෂිත අනතුරු ඇඟවීම්, සං signal ා හසුරුවන්නන්, ගිණුම් තොරතුරු සහ තවත් දේ ඇතුළත් විය හැකිය. ක්‍රියාවලියක ස්වරූපයෙන් ඒවා එකට දැමීමෙන් ඒවා වඩාත් පහසුවෙන් කළමනාකරණය කළ හැකිය. ක්‍රියාවලියක ඇති අනෙක් සංකල්පය වන්නේ ක්‍රියාත්මක කිරීමේ නූල් ය. නූල් ක්‍රමලේඛ කවුන්ටරයක් ​​ඇති අතර එය ඊළඟට ක්‍රියාත්මක කළ යුත්තේ කුමන උපදෙස්ද යන්න නිරීක්ෂණය කරයි. එහි වර්තමාන ක්‍රියාකාරී විචල්‍යයන් රඳවා ඇති රෙජිස්ටර් ඇත. එය ක්‍රියාත්මක කිරීමේ ඉතිහාසය අඩංගු වන අතර, එක් එක් ක්‍රියා පටිපාටිය සඳහා එක් රාමුවක් කැඳවා ඇති නමුත් තවමත් ආපසු ලබා දී නොමැත. කිසියම් ක්‍රියාවලියකදී නූල් ක්‍රියාත්මක කළ යුතු වුවද, නූල් සහ එහි ක්‍රියාවලිය වෙනස් සංකල්ප වන අතර ඒවා වෙන වෙනම සැලකිය හැකිය. සම්පත් සමූහගත කිරීම සඳහා ක්‍රියාවලි භාවිතා වේ; නූල් යනු CPU මත ක්‍රියාත්මක කිරීමට සැලසුම් කර ඇති ආයතන වේ.

තව දුරටත් ඔහු පහත වගුව සපයයි:

Per process items             | Per thread items
------------------------------|-----------------
Address space                 | Program counter
Global variables              | Registers
Open files                    | Stack
Child processes               | State
Pending alarms                |
Signals and signal handlers   |
Accounting information        |

දෘඩාංග බහු තෙරපුම් ගැටළුව සමඟ කටයුතු කරමු . සම්භාව්‍ය වශයෙන්, CPU විසින් තනි ත්‍රෙඩ් එකක් ක්‍රියාත්මක කිරීමට සහාය වනු ඇත, තනි වැඩසටහන් කවුන්ටරයක් (PC) සහ රෙජිස්ටර් කට්ටලයක් හරහා නූල්වල තත්වය පවත්වා ගනී . හැඹිලි අතපසු වූ විට කුමක් සිදුවේද? ප්‍රධාන මතකයෙන් දත්ත ලබා ගැනීමට බොහෝ කාලයක් ගත වන අතර, එය සිදුවන අතරතුර CPU අක්‍රියව වාඩි වී සිටී. එබැවින් යමෙකුට මූලික වශයෙන් නූල් කට්ටල දෙකක් (PC + රෙජිස්ටර්) තිබිය යුතුය, එවිට තවත් නූල් (සමහර විට එකම ක්‍රියාවලියේදී, වෙනත් ක්‍රියාවලියක) වැඩ කටයුතු කරගෙන යා හැකි අතර අනෙක් නූල් ප්‍රධාන මතකයේ රැඳී සිටියි. මෙම සංකල්පයේ හයිපර්-නූල් කිරීම සහ එකවර බහු තෙරපීම (කෙටියෙන් SMT) වැනි විවිධ නම් සහ ක්‍රියාත්මක කිරීම් තිබේ.

දැන් අපි මෘදුකාංග පැත්ත දෙස බලමු. මෘදුකාංග පැත්තේ නූල් ක්‍රියාත්මක කළ හැකි ක්‍රම තුනක් තිබේ.

  1. පරිශීලක අවකාශ නූල්
  2. කර්නල් නූල්
  3. දෙකේ සංයෝජනයක්

ඔබට නූල් ක්‍රියාත්මක කිරීමට අවශ්‍ය වන්නේ CPU තත්වය සුරැකීමට සහ බහු කොටස් නඩත්තු කිරීමට ඇති හැකියාවයි, එය බොහෝ විට පරිශීලක අවකාශයේ කළ හැකිය. පරිශීලක අභ්‍යවකාශ නූල් වල වාසිය වන්නේ ඔබ වේගයෙන් කර්නලයට කොටු විය යුතු නැති නිසාත්, ඔබ කැමති ආකාරයට ඔබේ නූල් උපලේඛනගත කිරීමේ හැකියාව නිසාත් වේගවත් නූල් මාරු කිරීමයි. ලොකුම අඩුපාඩුව නම් I / O අවහිර කිරීමට ඇති නොහැකියාවයි (එමඟින් සමස්ත ක්‍රියාවලියම සහ එහි සියලුම පරිශීලක නූල් අවහිර වනු ඇත), එය අප මුලින් නූල් භාවිතා කිරීමට එක් ප්‍රධාන හේතුවකි. නූල් භාවිතා කරමින් I / O අවහිර කිරීම බොහෝ අවස්ථාවන්හි වැඩසටහන් සැලසුම් කිරීම බෙහෙවින් සරල කරයි.

සියලු උපලේඛනගත ගැටළු මෙහෙයුම් පද්ධතියට භාර දීමට අමතරව, කර්නල් නූල් වලට I / O අවහිර කිරීම භාවිතා කිරීමේ වාසිය ඇත. නමුත් සෑම නූල් ස්විචයක්ම සාපේක්ෂව මන්දගාමී විය හැකි කර්නලය තුළට කොටු වීම අවශ්‍ය වේ. කෙසේ වෙතත්, ඔබ අවහිර කළ I / O නිසා නූල් මාරු කරන්නේ නම් මෙය සැබවින්ම ගැටළුවක් නොවන බැවින් I / O මෙහෙයුම ඔබව දැනටමත් කර්නලයට කොටු කර ඇත.

තවත් ප්‍රවේශයක් නම්, මේ දෙක ඒකාබද්ධ කිරීමයි, බහු කර්නල් නූල් එක් එක් පරිශීලක නූල් ඇත.

එබැවින් ඔබේ පාරිභාෂිතය පිළිබඳ ප්‍රශ්නය වෙත ආපසු යාමෙන්, ක්‍රියාවලියක් සහ ක්‍රියාත්මක කිරීමේ නූලක් එකිනෙකට වෙනස් සංකල්ප දෙකක් වන අතර, කුමන යෙදුම භාවිතා කළ යුතුද යන්න තෝරා ගැනීම රඳා පවතින්නේ ඔබ කතා කරන දේ මත ය. "සැහැල්ලු බර ක්‍රියාවලිය" යන පදය සම්බන්ධයෙන්, මම පෞද්ගලිකව එහි කාරණය දකින්නේ නැත, මන්ද එය ඇත්ත වශයෙන්ම සිදුවන්නේ කුමක්ද යන්න සහ "ක්‍රියාත්මක කිරීමේ නූල්" යන පදය නොදක්වන බැවිනි.


4
විශිෂ්ට පිළිතුර! එය බොහෝ වාක්‍ය ඛණ්ඩ සහ උපකල්පන බිඳ දමයි. මෙම රේඛාව අමුතු එකක් ලෙස කැපී පෙනේ. නමුත් “එබැවින් යමෙකුට මූලික වශයෙන් නූල් තත්ව කට්ටල දෙකක් (PC + රෙජිස්ටර්) තිබිය යුතුය” - මෙහි සඳහන් “PC” යනු කුමක්ද?
ස්මිටර්ස්

2
@Smithers පළාත් සභා ක්රියාත්මක කිරීමට ඉදිරි උපදෙස් ලිපිනය ලබා දෙන වැඩසටහන ප්රති, හෝ උපදෙස් පහිටුම් දක්වනය, ය: en.wikipedia.org/wiki/Program_counter
රොබට් එස් බාන්ස්


“එක් ක්‍රියාවලියක් සඳහා” යටතේ “සිරස්” ලැයිස්තුගත නොවන්නේ ඇයි? ක්‍රියාවලි සහ නූල් දෙකම ඔවුන්ගේම තොගයක් ඇත.
stackoverflowuser2010

1
@ stackoverflowuser2010 නූල්වල පමණක් තොග නොමැත. ඔබ ක්‍රියාවලියක් ලෙස හඳුන්වන්නේ ක්‍රියාත්මක කිරීමේ තනි නූල් සහිත ක්‍රියාවලියක් වන අතර එය ක්‍රියාවලිය නොව තොගය ඇති නූල් වේ.
රොබට් එස්. බාන්ස්

103

සමගාමී වැඩසටහන්කරණය සම්බන්ධයෙන් වැඩි විස්තර කිරීම

  1. ක්‍රියාවලියකට ස්වයං අන්තර්ගත ක්‍රියාත්මක කිරීමේ පරිසරයක් ඇත. ක්‍රියාවලියකට සාමාන්‍යයෙන් සම්පූර්ණ, පුද්ගලික මූලික ධාවන කාල සම්පත් සමූහයක් ඇත; විශේෂයෙන්, සෑම ක්‍රියාවලියකටම තමන්ගේම මතක අවකාශයක් ඇත.

  2. ක්‍රියාවලියක් තුළ නූල් පවතී - සෑම ක්‍රියාවලියකටම අවම වශයෙන් එකක්වත් ඇත. මතකය සහ විවෘත ලිපිගොනු ඇතුළුව ක්‍රියාවලියේ සම්පත් නූල් බෙදා ගනී. මෙය කාර්යක්ෂම, නමුත් ගැටළු සහගත විය හැකි සන්නිවේදනයක් සඳහා හේතු වේ.

සාමාන්‍ය පුද්ගලයාව මතකයේ තබා ගන්නා උදාහරණයක්:

ඔබේ පරිගණකයේ, Microsoft Word සහ වෙබ් බ්‍රව්සරයක් විවෘත කරන්න. අපි මෙම ක්‍රියාදාමයන් දෙක ලෙස හඳුන්වමු .

මයික්‍රොසොෆ්ට් වර්ඩ් හි, ඔබ යමක් ටයිප් කළ විට එය ස්වයංක්‍රීයව සුරකිනු ඇත. දැන්, සංස්කරණය කිරීම හා සුරැකීම සමාන්තරව සිදුවන බව ඔබ නිරීක්ෂණය කර ඇත - එක් නූල් මත සංස්කරණය කිරීම සහ අනෙක් නූල් මත ඉතිරි කිරීම.


14
කැපී පෙනෙන පිළිතුර, එය දේවල් සරල ලෙස තබා ගන්නා අතර ප්‍රශ්නය නරඹන සෑම පරිශීලකයෙකුටම සම්බන්ධ විය හැකි උදාහරණයක් සපයයි.
ස්මිටර්ස්

7
ක්‍රියාවලියක් තුළ ඇති බහු නූල් සඳහා සංස්කරණය / සුරැකීම කදිම නිදසුනකි!

53

යෙදුමක් ක්‍රියාවලි එකක් හෝ වැඩි ගණනකින් සමන්විත වේ. ක්‍රියාවලියක් යනු සරළව කිවහොත් ක්‍රියාත්මක කිරීමේ වැඩසටහනකි. නූල් එකක් හෝ කිහිපයක් ක්‍රියාවලියේ සන්දර්භය තුළ ක්‍රියාත්මක වේ. නූල් යනු මෙහෙයුම් පද්ධතිය ප්‍රොසෙසර් කාලය වෙන් කරන මූලික ඒකකයයි. දැනට වෙනත් ත්‍රෙඩ් එකකින් ක්‍රියාත්මක වන කොටස් ඇතුළුව ක්‍රියාවලි කේතයේ ඕනෑම කොටසක් ක්‍රියාත්මක කිරීමට නූල් එකකට හැකිය. තන්තු යනු ක්‍රියාත්මක කිරීමේ ඒකකයකි, එය යෙදුම විසින් අතින් සැලසුම් කළ යුතුය. කෙඳි ධාවනය වන්නේ ඒවා උපලේඛනගත කරන නූල්වල සන්දර්භය තුළ ය.

මෙතනින් හොරකම් කළා.


ලිනක්ස් වැනි වෙනත් මෙහෙයුම් පද්ධති වලදී, මෙහෙයුම් පද්ධති මට්ටමින් මේ දෙක අතර ප්‍රායෝගික වෙනසක් නොමැත, නූල් සාමාන්‍යයෙන් මව් ක්‍රියාවලියට සමාන මතක අවකාශයක් බෙදා ගනී. (එබැවින් මගේ පසුබෑම)
අරෆැන්ජියන්

1
හොඳ පිළිතුරක් (විශේෂයෙන් බැර කිරීම සමඟ), එය දෙක සහ කොටස් අතර සම්බන්ධතාවය පහසුවෙන් අපේක්ෂා කළ හැකි “ඊළඟ ප්‍රශ්නයක්” (තන්තු ගැන) පෙන්නුම් කරයි.
ස්මිටර්ස්

29

ක්‍රියාවලියක් යනු කේත, මතකය, දත්ත සහ වෙනත් සම්පත් එකතුවකි. නූල් යනු ක්‍රියාවලියේ විෂය පථය තුළ ක්‍රියාත්මක වන කේත අනුක්‍රමයකි. ඔබට (සාමාන්‍යයෙන්) එකම ක්‍රියාවලියක් තුළ සමගාමීව ක්‍රියාත්මක වන බහු නූල් තිබිය හැකිය.


29

ක්‍රියාවලි සහ නූල් සඳහා සැබෑ ලෝක උදාහරණය මෙය ඔබට නූල් සහ ක්‍රියාවලිය පිළිබඳ මූලික අදහස ලබා දෙනු ඇත රූප විස්තරය මෙහි ඇතුළත් කරන්න

මම ඉහත තොරතුරු ස්කොට් ලැන්ග්හැම්ගේ පිළිතුරෙන් ලබා ගත්තා - ස්තූතියි


25

ක්‍රියාවලිය:

  1. ක්‍රියාවලිය බර බර ක්‍රියාවලියකි.
  2. ක්‍රියාවලිය යනු වෙනම මතකයක්, දත්ත, සම්පත් ect ඇති වෙනම වැඩසටහනකි.
  3. දෙබලක () ක්‍රමය භාවිතයෙන් ක්‍රියාවලිය නිර්මාණය වේ.
  4. ක්‍රියාවලිය අතර සන්දර්භය මාරුව කාලය ගත වේ.

උදාහරණය:
ඕනෑම බ්‍රව්සරයක් විවෘත කිරීම (මොසිල්ලා, ක්‍රෝම්, අයිඊ) කියන්න. මෙම අවස්ථාවෙහිදී නව ක්‍රියාවලිය ක්‍රියාත්මක කිරීමට පටන් ගනී.

නූල්:

  1. නූල් යනු සැහැල්ලු බර ක්‍රියාවලියකි. ක්‍රියාවලිය තුළ නූල් එකට බැඳී ඇත.
  2. නූල් වල හවුල් මතකයක්, දත්ත, සම්පත්, ලිපිගොනු යනාදිය ඇත.
  3. නූල් සාදනු ලබන්නේ ක්ලෝන () ක්‍රමයෙනි.
  4. නූල් අතර සන්දර්භ මාරුව ක්‍රියාවලිය ලෙස වැඩි කාලයක් ගත නොවේ.

උදාහරණය:
බ්‍රව්සරයේ බහු ටැබ් විවෘත කිරීම.


වින්ඩෝස් ලෝකයේ ඔබ නිවැරදියි, නමුත් ලිනක්ස් හි සෑම 'නූල්'ම ක්‍රියාවලියක් වන අතර ඒ හා සමානව' බර '(හෝ ආලෝකය) වේ.
නීල්

23
  • සෑම ක්‍රියාවලියක්ම නූල් (ප්‍රාථමික නූල්) වේ.
  • නමුත් සෑම නූලක්ම ක්‍රියාවලියක් නොවේ. එය ක්‍රියාවලියක කොටසකි.

3
තව ටිකක් පැහැදිලි කිරීමට සහ / හෝ සමහර සාක්ෂි ඇතුළත් කළ හැකිද?
සිම් 84

15

නූල් සහ ක්‍රියාවලීන් දෙකම මෙහෙයුම් පද්ධති සම්පත් වෙන් කිරීමේ පරමාණුක ඒකක වේ (එනම්, CPU කාලය ඒවා අතර බෙදී ඇති ආකාරය සහ වෙනත් මෙහෙයුම් පද්ධති සම්පත් හිමිකර ගැනීමේ ආකෘතිය විස්තර කරන සමගාමී මුදල් ආකෘතියක් ඇත). මෙහි වෙනසක් ඇත:

  • බෙදාගත් සම්පත් (නූල් අර්ථ දැක්වීම අනුව මතකය බෙදා ගනී, ඒවා තොග සහ දේශීය විචල්‍යයන් හැර වෙනත් කිසිවක් සතුව නැත; ක්‍රියාවලීන්ට ද මතකය බෙදා ගත හැකිය, නමුත් ඒ සඳහා වෙනම යාන්ත්‍රණයක් ඇත, මෙහෙයුම් පද්ධතිය විසින් නඩත්තු කරනු ලැබේ)
  • ප්‍රතිපාදන අවකාශය (ක්‍රියාවලි සඳහා කර්නල් අවකාශය සහ නූල් සඳහා පරිශීලක අවකාශය)

ඉහත ක්‍රියාදාමය යන වචනයේ අර්ලාන්ග් අර්ථය පිළිබඳව ඉහත ග්‍රෙග් හෙව්ගිල් නිවැරදිය. එර්ලන්ග්ට සැහැල්ලු ක්‍රියාවලීන් කළ හැක්කේ මන්ද යන්න පිළිබඳ සාකච්ඡාවක් මෙහි ඇත.


14

http://lkml.iu.edu/hypermail/linux/kernel/9608/0191.html

ලිනස් ටොවල්ඩ්ස් (torvalds@cs.helsinki.fi)

අඟහරුවාදා, 6 අගෝස්තු 1996 12:47:31 +0300 (EET DST)

වර්ග කළ පණිවිඩ: [දිනය] [නූල්] [විෂය] [කර්තෘ]

ඊළඟ පණිවිඩය: බර්න්ඩ් පී. සිලර්: "නැවත: get_hash_table හි අපොයි"

පෙර පණිවිඩය: ලිනස් ටොවල්ඩ්ස්: "නැවත: I / O ඉල්ලීම් ඇණවුම් කිරීම"

1996 අගෝස්තු 5 වන දින මොන් හි පීටර් පී. අයිසර්ලෝ මෙසේ ලිවීය.

නූල් පිළිබඳ සංකල්පය අප පැහැදිලිව තබා ගත යුතුය. බොහෝ අය ක්‍රියාවලියක් සමඟ නූල් පටලවා ගන්නා බවක් පෙනේ. පහත දැක්වෙන සාකච්ඡාව වර්තමාන ලිනක්ස් තත්ත්වය පිළිබිඹු නොකරයි, නමුත් ඉහළ මට්ටමේ සාකච්ඡාවක රැඳී සිටීමට දරන උත්සාහයකි.

නැත!

“නූල්” සහ “ක්‍රියාවලි” වෙනම ආයතන යැයි සිතීමට හේතුවක් නැත. එය සාම්ප්‍රදායිකව සිදු වන්නේ එලෙස ය, නමුත් මම පෞද්ගලිකව සිතන්නේ එය එසේ සිතීම විශාල වැරැද්දක් බවයි. එසේ සිතීමට ඇති එකම හේතුව historical තිහාසික ගමන් මලු ය.

නූල් සහ ක්‍රියාවලි දෙකම සැබවින්ම එක් දෙයක් පමණි: “ක්‍රියාත්මක කිරීමේ සන්දර්භය”. විවිධ අවස්ථා කෘතිමව වෙන්කර හඳුනා ගැනීමට උත්සාහ කිරීම ස්වයං සීමා කිරීමකි.

මෙයින් COE ලෙස හැඳින්වෙන “ක්‍රියාත්මක කිරීමේ සන්දර්භය” යනු එම COE හි සියලුම රාජ්‍යයන්ගේ සමූහයකි. එම රාජ්‍යයට CPU තත්වය (රෙජිස්ටර් යනාදිය), MMU තත්වය (පිටු සිතියම්කරණය), අවසර තත්වය (uid, gid) සහ විවිධ “සන්නිවේදන තත්වයන්” (විවෘත ලිපිගොනු, සං signal ා හසුරුවන්නන් යනාදිය) ඇතුළත් වේ. සාම්ප්‍රදායිකව, “නූල්” සහ “ක්‍රියාවලියක්” අතර වෙනස ප්‍රධාන වශයෙන් නූල් වල CPU තත්වයක් (+ සමහර විට වෙනත් අවම තත්වයක්) ඇති අතර අනෙක් සියලුම සන්දර්භය පැමිණෙන්නේ ක්‍රියාවලියෙනි. කෙසේ වෙතත්, එය COE හි සමස්ත තත්වය බෙදීමේ එක් ක්‍රමයක් පමණක් වන අතර එය කිරීමට සුදුසුම ක්‍රමය යැයි පවසන කිසිවක් නොමැත. ඒ ආකාරයේ රූපයකට ඔබව සීමා කිරීම නිකම්ම මෝඩකමකි.

ලිනක්ස් මේ ගැන සිතන ආකාරය (සහ මම වැඩ දේවල් අවශ්ය ආකාරයට) එහි වේ වේ එය "ක්රියාවලිය" හෝ "නූල්" ලෙස එවැනි දෙයක්. ඇත්තේ COE හි සම්පූර්ණත්වය පමණි (ලිනක්ස් විසින් "කාර්යය" ලෙස හැඳින්වේ). විවිධ COE වලට ඔවුන්ගේ සන්දර්භයේ කොටස් එකිනෙකා සමඟ බෙදා ගත හැකි අතර, එම බෙදාගැනීමේ එක් උපකොටසක් සාම්ප්‍රදායික “නූල්” / “ක්‍රියාවලිය” සැකසුම වේ, නමුත් එය සැබවින්ම උප කුලකයක් ලෙස දැකිය යුතුය (එය වැදගත් උප කුලකයක් වන නමුත් එම වැදගත්කම පැමිණේ සැලසුමෙන් නොව ප්‍රමිති වලින්: ලිනක්ස් වලට ඉහළින් ප්‍රමිති-අනුකූල නූල් වැඩසටහන් ක්‍රියාත්මක කිරීමට අපට අවශ්‍යය).

කෙටියෙන් කිවහොත්: නූල් / ක්‍රියාවලි සිතීමේ ක්‍රමය වටා සැලසුම් නොකරන්න. කර්නලය සැලසුම් කළ යුත්තේ COE චින්තන ක්‍රමය වටා වන අතර, පසුව pthreads පුස්තකාලයට COE දෙස බැලීමට එම ක්‍රමය භාවිතා කිරීමට කැමති පරිශීලකයින්ට සීමිත pthreads අතුරුමුහුණත අපනයනය කළ හැකිය.

නූල් / ක්‍රියාවලියට වඩා COE යැයි ඔබ සිතන විට කළ හැකි දේ පිළිබඳ උදාහරණයක් ලෙස:

  • ඔබට යුනික්ස් සහ / හෝ ක්‍රියාවලිය / නූල් වල සාම්ප්‍රදායිකව කළ නොහැකි බාහිර "සීඩී" වැඩසටහනක් කළ හැකිය (මෝඩ උදාහරණය, ​​නමුත් අදහස නම් සාම්ප්‍රදායික යුනික්ස් වලට පමණක් සීමා නොවන මෙවැනි "මොඩියුල" ඔබට තිබිය හැකි බවයි. / නූල් සැකසුම). කරන්න:

ක්ලෝන (CLONE_VM | CLONE_FS);

දරුවා: ක්‍රියාත්මක කරන්න ("බාහිර-සීඩී");

/ * "ක්‍රියාත්මක කරන්න ()" වීඑම් එක විසුරුවා හරිනු ඇත, එබැවින් අපි CLONE_VM භාවිතා කළ එකම හේතුව ක්ලෝන කිරීමේ ක්‍රියාව වේගවත් කිරීමයි * /

  • ඔබට ස්වභාවිකවම "vfork ()" කළ හැකිය (එයට අවම කර්නල් ආධාරකයක් අවශ්‍ය වේ, නමුත් එම සහාය CUA ක්‍රමයට හොඳින් සිතීමේ ක්‍රමයට ගැලපේ):

ක්ලෝන (CLONE_VM);

දරුවා: දිගටම ධාවනය කරන්න, අවසානයේ ක්‍රියාත්මක කරන්න ()

මව: ක්‍රියාත්මක වන තෙක් බලා සිටින්න

  • ඔබට බාහිර "IO ඩීමන්ස්" කළ හැකිය:

ක්ලෝන (CLONE_FILES);

දරුවා: විවෘත ගොනු විස්තර යනාදිය

මව: දරුවා විවෘත කළ fd භාවිතා කර vv.

ඉහත සඳහන් සියල්ලම ඔබ නූල් / ක්‍රියාවලි චින්තනයට බැඳී නැති නිසා. උදාහරණයක් ලෙස වෙබ් සේවාදායකයක් ගැන සිතන්න, එහිදී CGI ස්ක්‍රිප්ට් "ක්‍රියාත්මක කිරීමේ නූල්" ලෙස සිදු කරයි. සාම්ප්‍රදායික නූල් සමඟ ඔබට එය කළ නොහැක, මන්ද සාම්ප්‍රදායික නූල් සෑම විටම මුළු ලිපින අවකාශයම බෙදා ගත යුතුය, එබැවින් ඔබට වෙබ් සේවාදායකයේම කිරීමට අවශ්‍ය සෑම දෙයක්ම සම්බන්ධ කිරීමට සිදුවනු ඇත (“නූල්” ධාවනය කළ නොහැක තවත් ක්‍රියාත්මක කළ හැකි).

සඳහා උදාහරණයක් කොටස් වෙනුවට "ක්රියාත්මක සන්දර්භය" ප්රශ්නයක් ලෙස මේ චින්තනය, ඔබගේ කාර්යයන් දැන් බාහිර වැඩසටහන් ක්රියාත්මක කිරීමට තීරණය (= මව් සිට ලිපිනය අවකාශය වෙන්) හැකි ආදිය ඔවුන් කිරීමට අවශ්ය නම්, හෝ ඔවුන් හැකි මව් සමඟ සියල්ල හැර සඳහා ලිපිගොනු විස්තර කරන්නන් (එමඟින් උප "නූල්" වලට දෙමව්පියන් ගැන කරදර වීමට අවශ්‍ය නොවී ගොනු විශාල ප්‍රමාණයක් විවෘත කළ හැකිය: උප "නූල්" පිටවන විට ඒවා ස්වයංක්‍රීයව වැසෙන අතර එය මවුපියන් තුළ fd භාවිතා නොකරයි) .

උදාහරණයක් ලෙස නූල් සහිත "inetd" ගැන සිතන්න. ඔබට අඩු පොදු කාර්ය දෙබලක + ක්‍රියාත්මක කිරීමට අවශ්‍යය, එබැවින් ලිනක්ස් ක්‍රමයෙන් ඔබට “දෙබලක ()” භාවිතා කිරීම වෙනුවට බහු-නූල් සහිත inetd එකක් ලියනු ලැබේ, එහිදී සෑම නූල් එකක්ම CLONE_VM සමඟ නිර්මාණය කර ඇත (ලිපින අවකාශය බෙදා ගන්න, නමුත් ගොනුව බෙදා නොගන්න විස්තර කරන්නන් ආදිය). එවිට දරුවාට එය බාහිර සේවාවක් නම් (ක්‍රියාත්මක කළ හැකිය), හෝ සමහර විට එය අභ්‍යන්තර ක්‍රියාකාරී සේවාවන්ගෙන් එකක් විය හැකිය (echo, timeofday) සමහර විට එය සිදු වී පිටවන විට.

ඔබට "නූල්" / "ක්‍රියාවලිය" සමඟ එය කළ නොහැක.

ලිනස්


13

ක්‍රියාවලි සහ නූල් යන දෙකම ක්‍රියාත්මක කිරීමේ ස්වාධීන අනුක්‍රමයන් වේ. සාමාන්‍ය වෙනස වන්නේ හවුල් මතක අවකාශයක නූල් (එකම ක්‍රියාවලියේ) ක්‍රියාත්මක වන අතර ක්‍රියාවලි වෙනම මතක අවකාශයක ක්‍රියාත්මක වීමයි.

ක්‍රියාවලිය

ක්‍රියාත්මක කිරීමේ වැඩසටහනකි. එයට පෙළ අංශයක් ඇත, එනම් වැඩසටහන් කේතය, වැඩසටහන් කවුන්ටරයේ වටිනාකම සහ ප්‍රොසෙසර ලේඛනයේ අන්තර්ගතය මගින් නිරූපණය වන වත්මන් ක්‍රියාකාරකම්. තාවකාලික දත්ත (ක්‍රියා පරාමිතීන්, ආපසු ආමන්ත්‍රණය සහ දේශීය විචල්‍යයන් වැනි) සහ ගෝලීය විචල්‍යයන් අඩංගු දත්ත අංශයක් අඩංගු ක්‍රියාවලි තොගය ද එයට ඇතුළත් ය. ක්‍රියාවලියකට සංචයක් ද ඇතුළත් විය හැකිය, එය මතකය යනු ක්‍රියාවලි ක්‍රියාත්මක වන කාලය තුළ ගතිකව වෙන් කරනු ලැබේ.

නූල්

නූල් යනු CPU භාවිතයේ මූලික ඒකකයකි; එය නූල් හැඳුනුම්පතක්, වැඩසටහන් කවුන්ටරයක්, රෙජිස්ටර් කට්ටලයක් සහ තොගයකින් සමන්විත වේ. එය එකම ක්‍රියාවලියට අයත් වෙනත් නූල් සමඟ එහි කේත අංශය, දත්ත අංශය සහ විවෘත ගොනු සහ සං als ා වැනි වෙනත් මෙහෙයුම් පද්ධති සම්පත් සමඟ බෙදා ගන්නා ලදි.

- මෙහෙයුම් පද්ධතියෙන් ගත් ගැල්වින්


12

ජාවා ලෝකයට අදාළ මෙම ප්‍රශ්නයට පිළිතුරු දීමට උත්සාහ කිරීම.

ක්‍රියාවලියක් යනු වැඩසටහනක් ක්‍රියාත්මක කිරීමකි, නමුත් නූල් යනු ක්‍රියාවලිය තුළ තනි ක්‍රියාත්මක කිරීමේ අනුක්‍රමයකි. ක්‍රියාවලියකට බහු නූල් අඩංගු විය හැකිය. නූල් සමහර විට සැහැල්ලු ක්‍රියාවලියක් ලෙස හැඳින්වේ .

උදාහරණයක් වශයෙන්:

උදාහරණ 1: ජේවීඑම් එකක් තනි ක්‍රියාවලියක් තුළ ක්‍රියාත්මක වන අතර ජේවීඑම් එකක නූල් එම ක්‍රියාවලියට අයත් ගොඩවල් බෙදා ගනී. නූල් කිහිපයක් එකම වස්තුවකට ප්‍රවේශ විය හැක්කේ එබැවිනි. නූල් ගොඩවල් බෙදා ගන්නා අතර ඔවුන්ගේම තොග ඉඩක් ඇත. එක් නූල් ක්‍රමයක් භාවිතා කිරීම සහ එහි දේශීය විචල්‍යයන් වෙනත් නූල් වලින් නූල් ආරක්ෂා කර තබන්නේ එලෙස ය. නමුත් ගොඩවල් නූල් ආරක්ෂිත නොවන අතර නූල් ආරක්ෂාව සඳහා සමමුහුර්ත කළ යුතුය.

උදාහරණ 2: යතුරු පුවරු කියවීමෙන් වැඩසටහනකට පින්තූර ඇඳීමට නොහැකි වනු ඇත. වැඩසටහන යතුරුපුවරු ආදානය කෙරෙහි පූර්ණ අවධානය යොමු කළ යුතු අතර වරකට එකකට වඩා සිදුවීම් හැසිරවීමේ හැකියාව නොමැතිකම කරදරයකට තුඩු දෙනු ඇත. මෙම ගැටළුවට කදිම විසඳුම වන්නේ වැඩසටහනක කොටස් දෙකක් හෝ වැඩි ගණනක් එකවර ක්‍රියාත්මක කිරීම ය. නූල් අපට මෙය කිරීමට ඉඩ දෙයි. මෙහි පින්තූරය ඇඳීම ක්‍රියාවලියක් වන අතර යතුරු එබීම කියවීම උප ක්‍රියාවලියකි (නූල්).


1
හොඳ පිළිතුර, මම කැමතියි එය එහි විෂය පථය (ජාවා ලෝකය) නිර්වචනය කර අදාළ උදාහරණ කිහිපයක් සපයයි - එකක් (# 2) ද ඇතුළුව මුල් ප්‍රශ්නය ඇසිය යුතු ඕනෑම කෙනෙකුට වහාම සම්බන්ධ විය හැකිය.
ස්මිටර්ස්

12

ලිනක්ස් කර්නල්ගේ OS දර්ශනයෙන් එයට පිළිතුරු දීමට උත්සාහ කිරීම

වැඩසටහනක් මතකයට දියත් කරන විට ක්‍රියාවලියක් බවට පත්වේ. ක්‍රියාවලියකට තමන්ගේම ලිපින අවකාශයක් ඇත. එහි අර්ථය වන්නේ .textසංයුක්ත කේත .bssගබඩා කිරීම සඳහා වන කොටස් කිරීම, ආරම්භක නොවන ස්ථිතික හෝ ගෝලීය විචල්‍යයන් ගබඩා කිරීම යනාදියයි.
සෑම ක්‍රියාවලියකටම තමන්ගේම වැඩසටහන් කවුන්ටරයක් ​​සහ පරිශීලක-අභ්‍යවකාශ තොගයක් ඇත.

කර්නලය තුළ, සෑම ක්‍රියාවලියකටම තමන්ගේම කර්නල් තොගයක් (ආරක්ෂක ගැටළු සඳහා පරිශීලක අභ්‍යවකාශ ගබඩාවෙන් වෙන් කරනු ලැබේ) සහ ව්‍යුහය නම් කර task_structඇති අතර එය සාමාන්‍යයෙන් වියුක්ත කර ඇති අතර එය ක්‍රියාවලි පාලන කොටස ලෙස හැඳින්වේ, එහි ප්‍රමුඛතාවය, තත්වය වැනි ක්‍රියාවලිය පිළිබඳ සියලු තොරතුරු ගබඩා කරයි. , (සහ තවත් කැබලි ගොඩක්).
ක්‍රියාවලියකට ක්‍රියාත්මක කිරීමේ නූල් කිහිපයක් තිබිය හැකිය.

නූල් වලට පැමිණෙන ඔවුන් ක්‍රියාවලියක් තුළ වාසය කරන අතර මවු ක්‍රියාවලියේ ලිපින අවකාශය සහ ගොනු පද්ධති සම්පත්, නූල් සෑදීමේදී සම්මත කළ හැකි වෙනත් සම්පත් සමඟ බෙදා ගත හැකිය, එනම් ගොනු පද්ධති සම්පත්, අපේක්ෂිත සං als ා බෙදාගැනීම, දත්ත හුවමාරු කිරීම (විචල්‍යයන් සහ උපදෙස්) එබැවින් නූල් සැහැල්ලු කිරීම සහ එබැවින් වේගවත් සන්දර්භ මාරුවකට ඉඩ ලබා දේ.

කර්නලය තුළ, සෑම නූලකටම තමන්ගේම කර්නල් තොගයක් ඇති අතර එම task_structව්‍යුහය නූල් අර්ථ දක්වයි. එම නිසා කර්නලය එකම ක්‍රියාවලියේ නූල් විවිධ ආයතන ලෙස දකින අතර ඒවා තමන් තුළම උපලේඛනගත කළ හැකිය. එකම ක්‍රියාවලියේ නූල් නූල් කණ්ඩායම් හැඳුනුම්පත ( tgid) ලෙස හැඳින්වෙන පොදු හැඳුනුම්පතක් බෙදා ගනී , එසේම ඒවාට අද්විතීය හැඳුනුම්පතක් pidඇත.


9

නූල් සහ ක්‍රියාවලිය අතර වෙනස?

ක්‍රියාවලියක් යනු යෙදුමක ක්‍රියාත්මක වන අවස්ථාවක් වන අතර නූල් යනු ක්‍රියාවලියක් තුළ ක්‍රියාත්මක වීමේ මාවතකි. එසේම, ක්‍රියාවලියකට බහු නූල් අඩංගු විය හැකිය. ක්‍රියාවලියකට කළ හැකි ඕනෑම දෙයක් නූල් එකකට කළ හැකි බව මතක තබා ගැනීම වැදගත්ය. නමුත් ක්‍රියාවලියකට බහු නූල් වලින් සමන්විත විය හැකි බැවින්, නූල් 'සැහැල්ලු' ක්‍රියාවලියක් ලෙස සැලකිය හැකිය. මේ අනුව, නූල් සහ ක්‍රියාවලියක් අතර අත්‍යවශ්‍ය වෙනස වන්නේ එක් එක් ඒවා ඉටු කිරීම සඳහා යොදා ගන්නා කාර්යයයි. කුඩා කාර්යයන් සඳහා නූල් භාවිතා කරන අතර ක්‍රියාවලි වැඩි 'හෙවිවේට්' කාර්යයන් සඳහා යොදා ගනී - මූලික වශයෙන් යෙදුම් ක්‍රියාත්මක කිරීම.

නූල් සහ ක්‍රියාවලියක් අතර ඇති තවත් වෙනසක් නම්, එකම ක්‍රියාවලියක් තුළ ඇති නූල් එකම ලිපින අවකාශය බෙදා ගන්නා අතර විවිධ ක්‍රියාවලීන් එසේ නොවේ. මෙමඟින් නූල් වලට එකම දත්ත ව්‍යුහයන් සහ විචල්‍යයන් කියවීමට හා ලිවීමට ඉඩ සලසයි, තවද නූල් අතර සන්නිවේදනය සඳහා පහසුකම් සපයයි. ක්‍රියාවලි අතර සන්නිවේදනය - අයිපීසී හෝ අන්තර් ක්‍රියාදාම සන්නිවේදනය ලෙසද හැඳින්වේ - තරමක් දුෂ්කර හා සම්පත් අවශ්‍ය වේ.

නූල් සහ ක්‍රියාවලි අතර ඇති වෙනස්කම් වල සාරාංශයක් මෙන්න:

  1. වෙනම ලිපින අවකාශයක් අවශ්‍ය නොවන බැවින් ක්‍රියාවලි වලට වඩා නූල් සෑදීම පහසුය.

  2. වරකට එක් නූල් එකකින් පමණක් වෙනස් කළ යුතු දත්ත ව්‍යුහයන් නූල් බෙදා ගන්නා බැවින් බහුමාධ්‍ය කියවීම සඳහා ප්‍රවේශම් සහගත වැඩසටහන් අවශ්‍ය වේ. නූල් මෙන් නොව, ක්‍රියාවලි එකම ලිපින අවකාශය බෙදා නොගනී.

  3. නූල් සැහැල්ලු ලෙස සලකනු ලබන්නේ ඒවා ක්‍රියාවලි වලට වඩා අඩු සම්පත් භාවිතා කරන බැවිනි.

  4. ක්‍රියාවලි එකිනෙකාගෙන් ස්වාධීන වේ. නූල්, ඔවුන් එකම ලිපින අවකාශය එකිනෙකට පරායත්ත වන බැවින් විවිධ නූල් එකිනෙක මතට නොපැමිණීමට වගබලා ගත යුතුය.
    මෙය සැබවින්ම ඉහත # 2 සඳහන් කිරීමේ තවත් ක්‍රමයකි.

  5. ක්‍රියාවලියකට බහු නූල් වලින් සමන්විත විය හැකිය.


9

පහත දැක්වෙන්නේ කේත ව්‍යපෘතියේ එක් ලිපියකින් මට ලැබුණු දෙයයි . මම හිතන්නේ එය අවශ්‍ය සෑම දෙයක්ම පැහැදිලිව පැහැදිලි කරයි.

නූල් යනු කාර්ය භාරය වෙනම ක්‍රියාත්මක කිරීමේ ධාරාවන්ට බෙදීමේ තවත් යාන්ත්‍රණයකි. නූලක් ක්‍රියාවලියකට වඩා සැහැල්ලු බරකි. මෙයින් අදහස් කරන්නේ, එය සම්පුර්ණ පුපුරා ගිය ක්‍රියාවලියකට වඩා අඩු නම්යශීලී බවක් ලබා දෙන නමුත් මෙහෙයුම් පද්ධතිය සැකසීමට අඩු බැවින් එය වේගයෙන් ආරම්භ කළ හැකිය. වැඩසටහනක් නූල් දෙකකින් හෝ වැඩි ගණනකින් සමන්විත වූ විට, සියලුම නූල් තනි මතක අවකාශයක් බෙදා ගනී. ක්‍රියාවලි සඳහා වෙනම ලිපින අවකාශ ලබා දී ඇත. සියලුම නූල් එක ගොඩක් බෙදා ගනී. නමුත් සෑම නූලකටම තමන්ගේම තොගයක් ලබා දී ඇත.


1
දැනටමත් ක්‍රියාවලි තේරුම් ගෙන ඇති දෘෂ්ටිකෝණයකින් පැමිණියහොත් මිස මෙය පැහැදිලි දැයි විශ්වාස නැත. ඔවුන් එකිනෙකා සමඟ සම්බන්ධ වන ආකාරය එකතු කිරීම ප්‍රයෝජනවත් විය හැකිය.
ස්මිටර්ස්

අපැහැදිලියි. එයින් අදහස් කරන්නේ එක් ක්‍රියාවලියක් සහ එහි නූල් පමණක් ද? එක් එක් තුළ බොහෝ නූල් සහිත බොහෝ ක්‍රියාවලි තිබේ නම් කුමක් කළ යුතුද? එම සියලු නූල් එක මතක අවකාශයක් බෙදා ගන්නේද? එම සියලු ක්‍රියාදාමයන්ගෙන්?
හරිත

9

ක්‍රියාවලිය:

ක්‍රියාවලිය මූලික වශයෙන් ක්‍රියාත්මක කිරීමේ වැඩසටහනකි. එය ක්‍රියාකාරී ආයතනයකි. ක්‍රියාත්මක වන වැඩසටහනකට යොමු කිරීම සඳහා සමහර මෙහෙයුම් පද්ධති 'කාර්යය' යන යෙදුම භාවිතා කරයි. ක්‍රියාවලියක් සෑම විටම ප්‍රධාන මතකයේ ගබඩා කර ඇති අතර එය ප්‍රාථමික මතකය හෝ අහඹු ප්‍රවේශ මතකය ලෙසද හැඳින්වේ. එබැවින් ක්‍රියාවලියක් සක්‍රීය වස්තුවක් ලෙස හැඳින්වේ. යන්ත්රය නැවත ආරම්භ කළහොත් එය අතුරුදහන් වේ. ක්‍රියාවලි කිහිපයක් එකම වැඩසටහනක් සමඟ සම්බන්ධ විය හැකිය. බහු සැකසුම් පද්ධතියක, බහු ක්‍රියාදාමයන් සමාන්තරව ක්‍රියාත්මක කළ හැකිය. ඒකීය සකසනයක පද්ධතියක, සත්‍ය සමාන්තරකරණය සාක්ෂාත් කර නොගත්තද, ක්‍රියාවලි උපලේඛනගත කිරීමේ ඇල්ගොරිතමයක් යොදන අතර ප්‍රොසෙසරය එක් එක් ක්‍රියාවලිය එකවර ක්‍රියාත්මක කිරීමට සැලසුම් කර ඇත. උදාහරණය: 'කැල්කියුලේටරය' වැඩසටහනේ අවස්ථා කිහිපයක් ක්‍රියාත්මක කිරීම. සෑම අවස්ථාවක්ම ක්‍රියාවලියක් ලෙස හැඳින්වේ.

නූල්:

නූල් යනු ක්‍රියාවලියේ උප කුලකයකි. එය 'සැහැල්ලු ක්‍රියාවලියක්' ලෙස හැඳින්වේ, මන්ද එය සැබෑ ක්‍රියාවලියකට සමාන නමුත් ක්‍රියාවලියක සන්දර්භය තුළ ක්‍රියාත්මක වන අතර කර්නලය මඟින් ක්‍රියාවලියට ලබා දී ඇති සම්පත් බෙදා ගනී. සාමාන්‍යයෙන්, ක්‍රියාවලියකට ඇත්තේ එක් නූල් පාලනයක් පමණි - වරකට ක්‍රියාත්මක වන යන්ත්‍ර උපදෙස් මාලාවක්. ක්‍රියාවලියක් සමගාමීව උපදෙස් ක්‍රියාත්මක කරන බහු නූල් වලින් ද සෑදිය හැකිය. බහු ප්‍රොසෙසර් පද්ධතිවල ඇති විය හැකි සැබෑ සමාන්තරකරණය ගසාකෑමට පාලනයේ බහු නූල්වලට හැකිය. යුනි-ප්‍රොසෙසර් පද්ධතියක, නූල් උපලේඛනගත කිරීමේ ඇල්ගොරිතමයක් යොදන අතර ප්‍රොසෙසරය එක් එක් නූල් එකවර ක්‍රියාත්මක කිරීමට සැලසුම් කර ඇත. ක්‍රියාවලියක් තුළ ක්‍රියාත්මක වන සියලුම නූල් එකම ලිපින අවකාශය, ගොනු විස්තර කරන්නන්, සිරස් සහ ක්‍රියාවලියට අදාළ වෙනත් ගුණාංග බෙදා ගනී. ක්‍රියාවලියක නූල් එකම මතකය බෙදා ගන්නා බැවින්,

ref- https://practice.geeksforgeeks.org/problems/difference-between-process-and-thread


එක් ක්‍රියාවලියක දී නෝඩ් සමගාමී
බවක් පෙනේ

මෙය වචනයේ පරිසමාප්ත අර්ථයෙන්ම 2010 සිට පහත පිළිතුරෙන් පිටපත් කර ඇත ...
mc01

8

සම්මුඛ පරීක්‍ෂකවරයකුගේ දෘෂ්ටි කෝණයෙන් බලන කල, මූලික වශයෙන් මට ඇසීමට අවශ්‍ය වන්නේ ප්‍රධාන කරුණු 3 ක් පමණි, ක්‍රියාවලියක් වැනි පැහැදිලි දේවලට අමතරව බහු නූල් තිබිය හැකිය:

  1. නූල් එකම මතක අවකාශයක් බෙදා ගනී, එයින් අදහස් කරන්නේ නූල් එකකට අනෙක් අයගේ මතකයෙන් මතකයට ප්‍රවේශ විය හැකි බවයි. ක්‍රියාවලි සාමාන්‍යයෙන් කළ නොහැක.
  2. සම්පත්. සම්පත් (මතකය, හැන්ඩ්ල්ස්, සොකට් ආදිය) මුදා හරිනු ලබන්නේ ක්‍රියාවලිය අවසන් වන විට මිස නූල් අවසන් කිරීමෙනි.
  3. ආරක්ෂාව. ක්‍රියාවලියකට ස්ථාවර ආරක්ෂක ටෝකනයක් ඇත. නූල්, අනෙක් අතට, විවිධ පරිශීලකයින් / ටෝකන ලෙස පෙනී සිටිය හැකිය.

ඔබට තවත් අවශ්‍ය නම්, ස්කොට් ලැන්ග්හැම්ගේ ප්‍රතිචාරය සෑම දෙයක්ම ආවරණය කරයි. මේ සියල්ල මෙහෙයුම් පද්ධතියක දෘෂ්ටි කෝණයෙන් ය. විවිධ භාෂාවන්ට කාර්යයන්, සැහැල්ලු-නූල් වැනි විවිධ සංකල්ප ක්‍රියාත්මක කළ හැකි නමුත් ඒවා නූල් (වින්ඩෝස් හි තන්තු) භාවිතා කිරීමේ ක්‍රම පමණි. දෘඩාංග හා මෘදුකාංග නූල් නොමැත. දෘඩාංග හා මෘදුකාංග ව්‍යතිරේක සහ බාධා කිරීම් හෝ පරිශීලක මාදිලිය සහ කර්නල් නූල් ඇත.


ඔබ ආරක්ෂක ටෝකනය යැයි කියන විට, ඔබ අදහස් කරන්නේ ලිනක්ස් හි ඇති පරිශීලක අක්තපත්‍ර (පරිශීලක නාමය / පාස්), උදාහරණයක් ලෙසද?

කවුළුවල මෙය සංකීර්ණ මාතෘකාවක් වන අතර, ආරක්ෂක ටෝකනය (ඇත්ත වශයෙන්ම ප්‍රවේශ ටෝකන් ලෙස හැඳින්වේ) විශාල ව්‍යුහයක් වන අතර ප්‍රවේශ ප්‍රවේශයට අවශ්‍ය සියලු තොරතුරු අඩංගු වේ. ව්‍යුහය නිර්මාණය කර ඇත්තේ අවසරයෙන් පසුව වන අතර එයින් අදහස් කරන්නේ පරිශීලක නාමයක් / මුරපදයක් නොමැති නමුත් පරිශීලක නාමය / මුරපදය මත පදනම්ව SID ලැයිස්තුවක් / දකුණකි. වැඩි විස්තර මෙතැනින්: msdn.microsoft.com/en-us/library/windows/desktop/…
AndreiM

8
  1. ත්‍රෙඩ් එකක් හවුල් මතක අවකාශයක ධාවනය වන නමුත් ක්‍රියාවලියක් වෙනම මතක අවකාශයක ක්‍රියාත්මක වේ
  2. නූල් යනු සැහැල්ලු බර ක්‍රියාවලියක් වන නමුත් ක්‍රියාවලියක් යනු බර කිරිමේ ක්‍රියාවලියකි.
  3. නූල් යනු ක්‍රියාවලියේ උප ප්‍රභේදයකි.

මෙය ඉතා පුනරාවර්තනයක් දැනේ. නූල් සහ ක්‍රියාවලිය අතර සම්බන්ධතාවය පුළුල් වුවහොත් එය වඩා හොඳ පිළිතුරක් වනු ඇත.
ස්මිටර්ස්

8

දෘශ්‍යකරණයෙන් ඉගෙනීමට වඩාත් පහසු අය සඳහා, ක්‍රියාවලිය සහ නූල් පැහැදිලි කිරීම සඳහා මා විසින් නිර්මාණය කරන ලද පහසු රූප සටහනක් මෙහි දැක්වේ.
මම MSDN වෙතින් තොරතුරු භාවිතා කළෙමි - ක්‍රියාවලි සහ නූල් ගැන

ක්‍රියාවලි සහ නූල්


2
බහු සැකසුම් බහු සැකසුම් සමඟ සැසඳෙන්නේ කෙසේදැයි බැලීමට තවත් ක්‍රියාවලියක් එක් කිරීමට සිත්ගන්නා සුළු විය හැකිය .
බ්‍රැම් වැන්රෝයි

6

කාවැද්දූ ලෝකයෙන් එන මම, ක්‍රියාවලි පිළිබඳ සංකල්පය පවතින්නේ MMU (මතක කළමනාකරණ ඒකකය) ඇති “විශාල” ප්‍රොසෙසර ( ඩෙස්ක්ටොප් සීපීයූ, ARM බාහික A-9 ) සහ MMU භාවිතා කිරීමට සහාය වන මෙහෙයුම් පද්ධතිවල පමණි. ලිනක්ස් වැනි ). ෆ්‍රීආර්ටීඕඑස් වැනි කුඩා / පැරණි ප්‍රොසෙසර සහ මයික්‍රොකොන්ට්රෝලර් සහ කුඩා ආර්ටීඕඑස් මෙහෙයුම් පද්ධතිය ( තථ්‍ය කාලීන මෙහෙයුම් පද්ධතිය ) සමඟ එම්එම්යූ සහය නොමැති අතර එමඟින් කිසිදු ක්‍රියාවලියක් නොව නූල් පමණි.

නූල් වලට එකිනෙකාගේ මතකයට ප්‍රවේශ විය හැකි අතර ඒවා මෙහෙයුම් පද්ධතිය විසින් අන්තර් සම්බන්ධිත ආකාරයකින් උපලේඛනගත කර ඇති බැවින් ඒවා සමාන්තරව ධාවනය වන බව පෙනේ (හෝ බහු-හරය සමඟ ඒවා සැබවින්ම සමාන්තරව ධාවනය වේ).

ක්‍රියාවලි , අනෙක් අතට, එම්එම්යූ විසින් සපයනු ලබන සහ ආරක්ෂා කරන ලද අථත්ය මතකයේ ඔවුන්ගේ පෞද්ගලික වැලිපිල්ලේ ජීවත් වේ. මෙය සක්‍රීය බැවින් මෙය පහසුය:

  1. දෝෂ සහිත ක්‍රියාවලිය සමස්ත පද්ධතියම බිඳ වැටීමෙන් වළක්වයි.
  2. වෙනත් ක්‍රියාදාමයන් දත්ත අදෘශ්‍යමාන හා ළඟා විය නොහැකි බවට පත් කිරීමෙන් ආරක්ෂාව පවත්වා ගැනීම. ක්‍රියාවලිය තුළ සත්‍ය වැඩ කටයුතු නූල් එකක් හෝ කිහිපයක් විසින් බලා ගනී.

6
  1. මූලික වශයෙන්, නූල් යනු ක්‍රියාවලියක කොටසකි.
  2. නූල් සැහැල්ලු වන අතර ක්‍රියාවලිය බරයි.
  3. ක්‍රියාවලිය අතර සන්නිවේදනය සඳහා යම් කාලයක් අවශ්‍ය වන අතර නූල් වලට අඩු කාලයක් අවශ්‍ය වේ.
  4. නූල් වලට එකම මතක ප්‍රදේශයක් බෙදා ගත හැකි අතර ක්‍රියාවලිය වෙනමම ජීවත් වේ.

6

ක්‍රියාවලිය : ක්‍රියාත්මක කිරීම යටතේ ඇති වැඩසටහන ක්‍රියාවලිය ලෙස හැඳින්වේ

නූල් : නූල් යනු “අනෙක් අය සමඟ” යන සංකල්පය මත පදනම්ව වැඩසටහනේ අනෙක් කොටස සමඟ ක්‍රියාත්මක වන ක්‍රියාකාරීත්වයකි. එබැවින් නූල් යනු ක්‍රියාවලියේ කොටසකි ..


නරක නැත, එය නව සංකල්පයක් ("අනෙකා සමඟ එකක්") හඳුන්වා දුන්නද, එය බොහෝ විට ප්‍රශ්නය අසන කෙනෙකුට විදේශීය විය හැකිය.
ස්මිටර්ස්

පෝස්ට් කේතය ලෙස සංයුති කර ඇති නමුත් සාමාන්‍ය පෙළ විය යුතුය.
හෙන්රිච්

6

මම එහි සෑම පිළිතුරක්ම පාහේ විමසා බැලුවෙමි, අහෝ, OS පා course මාලාවක් හදාරන උපාධි අපේක්ෂකයෙකු ලෙස දැනට මට සංකල්ප දෙක හොඳින් වටහා ගත නොහැක. මම අදහස් කළේ බොහෝ පිරිමි ළමයින් සමහර මෙහෙයුම් පද්ධති පොත් වලින් කියවන වෙනස්කම් එනම් නූල් වලට ඔවුන්ගේ ක්‍රියාවලියේ ලිපින අවකාශය භාවිතා කරන බැවින් ගනුදෙනු ඒකකයේ ගෝලීය විචල්‍යයන් වෙත ප්‍රවේශ විය හැකි බවයි. එහෙත්, අළුත් ප්‍රශ්නයක් පැන නගින්නේ ක්‍රියාවලි පවතින්නේ මන්ද යන්නයි. දැනුවත්වම අපි දන්නවා නූල් වඩා සැහැල්ලු දෘශ්‍ය ක්‍රියාවලියන් බව. පෙර පිළිතුරකින් උපුටා ගත් රූපය භාවිතා කිරීමෙන් පහත උදාහරණය දෙස බලමු ,

වචන ලේඛනයක අපට එකවර නූල් 3 ක් වැඩ කරයි. උදා: ලිබ්‍රේ ඔෆිස් . පළමුවැන්නා අක්ෂර වින්‍යාසය පරීක්ෂා කරන්නේ වචනය අක්ෂර වින්‍යාසය නම් යටි ඉරි ඇඳීමෙනි. දෙවැන්න යතුරුපුවරුවෙන් අකුරු ගෙන මුද්‍රණය කරයි. යම් දෙයක් වැරදුනහොත් වැඩ කළ ලේඛනය නැති නොවීමට අන්තිමයා සෑම කෙටි කාලයකදීම ලේඛනය සුරකිනු ඇත. මෙම අවස්ථාවෙහිදී, නූල් 3 ක්‍රියාවලි 3 ක් විය නොහැක, මන්ද ඒවා පොදු මතකයක් වන අතර එය ඔවුන්ගේ ක්‍රියාවලියේ ලිපින අවකාශය වන අතර එමඟින් සියල්ලන්ටම සංස්කරණය කෙරෙන ලේඛනයට ප්‍රවේශය ඇත. ඉතින්, මාර්ගය යනු වචන ලේඛනය සහ බුල්ඩෝසර් දෙකක් වන අතර ඒවා නූල් වන නමුත් ඒවායින් එකක් රූපයේ නොමැති වුවද.

රූප විස්තරය මෙහි ඇතුළත් කරන්න


5

බහු-නූල් ඇතුළත් පයිතන් (අර්ථකථන භාෂාව) හි ඇල්ගොරිතමයක් ගොඩනඟන අතර, මා කලින් ගොඩනඟන ලද අනුක්‍රමික ඇල්ගොරිතම හා සසඳන විට ක්‍රියාත්මක කිරීමේ කාලය වඩා හොඳ නොවන බව දැක මම පුදුමයට පත් වීමි. මෙම ප්‍රති result ලයට හේතුව තේරුම් ගැනීමේ උත්සාහයක් ලෙස මම යම් කියවීමක් කළ අතර, මම ඉගෙන ගත් දෙයින් බහු-නූල් සහ බහු ක්‍රියාදාමයන් අතර ඇති වෙනස්කම් වඩා හොඳින් අවබෝධ කර ගැනීමට සිත්ගන්නා සන්දර්භයක් ලබා දෙන බව විශ්වාස කරමි.

බහු-හර පද්ධති මඟින් ක්‍රියාත්මක කිරීමේ නූල් කිහිපයක් ක්‍රියාත්මක කළ හැකි අතර, එබැවින් පයිතන් බහු-නූල් සඳහා සහාය විය යුතුය. නමුත් python, සම්පාදනය කරන භාෂාව නොවේ, ඒ වෙනුවට විසින් අර්ථ දක්වනු භාෂාව 1 . මෙයින් අදහස් කරන්නේ වැඩසටහන ක්‍රියාත්මක කිරීම සඳහා අර්ථ නිරූපණය කළ යුතු අතර එය ක්‍රියාත්මක කිරීමට පෙර පරිවර්තකයා එය නොදැන සිටීමයි. කෙසේ වෙතත්, එය දන්නා දෙය පයිතන්ගේ නීති වන අතර එය එම නීති ගතිකව අදාළ කරයි. පයිතන්හි ප්‍රශස්තිකරණය ප්‍රධාන වශයෙන් පරිවර්තකයාගේ ප්‍රශස්තිකරණය විය යුතු අතර ක්‍රියාත්මක කළ යුතු කේතය නොවේ. මෙය C ++ වැනි සම්පාදනය කරන ලද භාෂාවන්ට වඩා වෙනස් වන අතර පයිතන්හි බහු-නූල් දැමීමේ ප්‍රතිවිපාක ඇත. බහු-නූල් කළමනාකරණය කිරීම සඳහා පයිතන් ගෝලීය පරිවර්තක අගුල භාවිතා කරයි.

අනෙක් අතට, සම්පාදනය කරන ලද භාෂාවක්, හොඳින්, සම්පාදනය කර ඇත. වැඩසටහන "සම්පුර්ණයෙන්ම" සකසනු ලබන අතර, පළමුව එය එහි සින්ටැක්ටිකල් අර්ථ දැක්වීම් අනුව අර්ථ නිරූපණය කරනු ලැබේ, පසුව භාෂා අ nost ෙයවාදී අතරමැදි නිරූපණයකට සිතියම් ගත කර අවසානයේ ක්‍රියාත්මක කළ හැකි කේතයකට සම්බන්ධ වේ. මෙම ක්‍රියාවලිය කේතය අතිශයින්ම ප්‍රශස්තිකරණය කිරීමට ඉඩ සලසයි. ක්‍රියාත්මක කළ හැකි වේලාවේදී විවිධ වැඩසටහන් අන්තර්ක්‍රියා සහ සම්බන්ධතා අර්ථ දක්වා ඇති අතර ප්‍රශස්තිකරණය පිළිබඳ ශක්තිමත් තීරණ ගත හැකිය.

නූතන පරිසරය තුළ පයිතන්ගේ පරිවර්තකයා බහු-නූල් දැමීමට අවසර දිය යුතු අතර මෙය ආරක්ෂිත හා කාර්යක්ෂම විය යුතුය. සම්පාදනය කරන ලද භාෂාවක් හා පරිවර්ථනය කරන ලද භාෂාවක් අතර වෙනස පින්තූරයට ඇතුල් වන්නේ මෙහිදීය. පරිවර්තකයා විවිධ නූල් වලින් අභ්‍යන්තරව බෙදාගත් දත්ත වලට බාධා නොකළ යුතු අතර ඒ අතරම ගණනය කිරීම් සඳහා ප්‍රොසෙසර භාවිතය ප්‍රශස්ත කරයි.

පෙර පෝස්ට් වල සටහන් කර ඇති පරිදි, ක්‍රියාවලියක් සහ නූල් යන දෙකම ස්වාධීන අනුක්‍රමික ක්‍රියාත්මක කිරීම් වන අතර මූලික වෙනස වන්නේ ක්‍රියාවලියක බහුවිධ නූල් හරහා මතකය බෙදා ගන්නා අතර ක්‍රියාවලීන් ඒවායේ මතක අවකාශයන් හුදකලා කිරීමයි.

ගෝලීය පරිවර්තක අගුල මගින් විවිධ නූල් මගින් එකවර ප්‍රවේශ වීමෙන් පයිතන් දත්ත ආරක්ෂා කර ඇත. ඕනෑම පයිතන් වැඩසටහනක ඕනෑම වේලාවක එක් නූල් එකක් පමණක් ක්‍රියාත්මක කළ යුතුය. අනෙක් අතට, එක් එක් ක්‍රියාවලිය සඳහා මතකය වෙනත් ඕනෑම ක්‍රියාවලියකින් හුදකලා වී ඇති බැවින් ක්‍රියාවලි කිහිපයක් ක්‍රියාත්මක කළ හැකිය.


1 ආර්ට් ඔෆ් කම්පියුටර් ක්‍රමලේඛනය: මූලික ඇල්ගොරිතම වල අර්ථ නිරූපණ ක්‍රම පිළිබඳව ඩොනල්ඩ් නුත්ට හොඳ පැහැදිලි කිරීමක් ඇත.


4

එකම ක්‍රියාවලියක් තුළ ඇති නූල් මතකය බෙදා ගනී, නමුත් සෑම නූලකටම තමන්ගේම තොගයක් සහ ලේඛනයක් ඇති අතර, නූල්වල නූල් විශේෂිත දත්ත ගොඩවල් තුළ ගබඩා කරයි. නූල් කිසි විටෙකත් ස්වාධීනව ක්‍රියාත්මක නොවේ, එබැවින් අන්තර් ක්‍රියාදාම සන්නිවේදනය හා සසඳන විට අන්තර් නූල් සන්නිවේදනය වඩා වේගවත් වේ.

ක්‍රියාවලි කිසි විටෙකත් එකම මතකය බෙදා නොගනී. ළමා ක්‍රියාවලියක් නිර්මාණය කළ විට එය මව් ක්‍රියාවලියේ මතක ස්ථානය අනුපිටපත් කරයි. ක්‍රියාවලි සන්නිවේදනය සිදු කරනු ලබන්නේ පයිප්ප, හවුල් මතකය සහ පණිවිඩ විග්‍රහ කිරීමෙනි. නූල් අතර සන්දර්භය මාරු කිරීම ඉතා මන්දගාමී වේ.


4

මා මෙතෙක් සොයාගෙන ඇති හොඳම පිළිතුර මයිකල් කෙරිස්ක්ගේ 'ලිනක්ස් ක්‍රමලේඛ අතුරුමුහුණත' :

නූතන යුනික්ස් ක්‍රියාවට නැංවීමේදී, සෑම ක්‍රියාවලියකටම ක්‍රියාත්මක කිරීමේ නූල් කිහිපයක් තිබිය හැකිය. නූල් අපේක්‍ෂා කළ හැකි එක් ක්‍රමයක් වන්නේ එකම අථත්‍ය මතකය බෙදා ගන්නා ක්‍රියාවලි සමූහයක් මෙන්ම වෙනත් ගුණාංග පරාසයකි. සෑම නූලක්ම එකම ක්‍රමලේඛ කේතයක් ක්‍රියාත්මක කරන අතර එකම දත්ත ප්‍රදේශයක් සහ ගොඩවල් බෙදා ගනී. කෙසේ වෙතත්, සෑම නූල් එකකටම දේශීය විචල්‍යයන් සහ ක්‍රියාකාරී ඇමතුම් සම්බන්ධතා තොරතුරු අඩංගු තොගයක් ඇත. [LPI 2.12]

මෙම පොත විශාල පැහැදිලි කිරීමක මූලාශ්‍රයකි; මෙම ලිපියේ ලිනක්ස් කණ්ඩායම් සැබවින්ම ක්‍රියා කරන ආකාරය නිරවුල් කිරීම සඳහා ජූලියා එවාන්ස් එහි සහාය සඳහන් කළේය .


මෙය කෙලින්ම ස්වයං පරස්පර විරෝධී බවක් පෙනේ. එක් කොටසක් පවසන්නේ ක්‍රියාවලියකට නූල් එකකට වඩා තිබිය හැකි බවයි. ඊළඟ කොටස පවසන්නේ නූල් යනු අතථ්‍ය මතකය බෙදා ගන්නා ක්‍රියාවලි සමූහයකි. මේ කාරණා දෙකම සත්‍ය වන්නේ කෙසේදැයි මම නොදනිමි.
ඩේවිඩ් ෂ්වාට්ස්

මෙන්න මම එය කියවූ ආකාරය: පළමු වාක්‍යයේ ඇති 'ඇති' යන වචනය විසි කරන්න. ඔබට ඉතිරිව ඇත්තේ, පාරිභාෂිතය අනුව, 1) තනි නූල් සහ 2) නූල් කාණ්ඩ කිරීම, එය පහසුව සඳහා ක්‍රියාවලියක් ලෙස හැඳින්වේ. කෙරිස්ක් යනු කුමක්ද යන්න පිළිබඳව මා ගත් තීරණය මෙයයි.
Zach Valenta

ඔහු කියන්නට උත්සාහ කරන දෙය නම්, ඔබ පැරණි යුනික්ස් දෘෂ්ටියට පුරුදු වී සිටින්නේ නම්, ක්‍රියාවලීන් යනු මෙහෙයුම් කාලසටහන් බව ය. එවිට නූල් සමූහයක් ක්‍රියාවලි සමූහයක් හා සමාන වේ.
ඩේවිඩ් ෂ්වාට්ස්

හරි! එය තැබීමට හොඳ ක්‍රමයක්.
Zach Valenta

3

උදාහරණ 1: ජේවීඑම් එකක් තනි ක්‍රියාවලියක් තුළ ක්‍රියාත්මක වන අතර ජේවීඑම් එකක නූල් එම ක්‍රියාවලියට අයත් ගොඩවල් බෙදා ගනී. නූල් කිහිපයක් එකම වස්තුවකට ප්‍රවේශ විය හැක්කේ එබැවිනි. නූල් ගොඩවල් බෙදා ගන්නා අතර ඔවුන්ගේම තොග ඉඩක් ඇත. එක් නූල් ක්‍රමයක් භාවිතා කිරීම සහ එහි දේශීය විචල්‍යයන් වෙනත් නූල් වලින් නූල් ආරක්ෂා කර තබන්නේ එලෙස ය. නමුත් ගොඩවල් නූල් ආරක්ෂිත නොවන අතර නූල් ආරක්ෂාව සඳහා සමමුහුර්ත කළ යුතුය.


3

ඒවා බොහෝ දුරට සමාන ය ... නමුත් ප්‍රධාන වෙනස වන්නේ නූල් එකක් සැහැල්ලු වන අතර සන්දර්භය මාරු කිරීම, වැඩ බර සහ යනාදිය අනුව ක්‍රියාවලියක් බරයි.


ඔබේ පිළිතුර මත පුළුල් කළ හැකිද?
Fiver

3
නූල් යනු උප ක්‍රියාවලියකි, ඔවුන් ක්‍රියාවලියක් තුළ කේත, දත්ත, ලිපිගොනු වැනි පොදු සම්පත් බෙදා ගනී. මෙම ක්‍රියාවලීන් දෙකෙන් සම්පත් බෙදා ගත නොහැක. (ව්‍යතිරේකය යනු ක්‍රියාවලියක් (මවුපිය) දෙබලක වෙනත් ක්‍රියාවලියක් (දරුවෙකු) කිරීමට නම්, පෙරනිමියෙන් ඔවුන්ට හැකි ය සම්පත් බෙදා ගැනීම.), මෙම සන්දර්භය තුළ නූල් වඩා සැහැල්ලු වන අතර සම්පත් සඳහා ඉහළ ගෙවීමක් ඉල්ලා සිටියි .මෙම දෙකටම සමාන දේ තිබුණද .සීනාරියෝ, I / 0 නිසා තනි නූල් ක්‍රියාවලියක් අවහිර වී ඇති බව සලකන්න, එවිට මුළු 1 ටම යයි පොරොත්තු තත්වය නමුත් බහු-ත්‍රෙඩ් ක්‍රියාවලිය i / o මගින් අවහිර කළ විට, එහි 1 i / o අදාළ නූල් පමණක් අවහිර වේ.
නසීර් උල් ඉස්ලාම් බට්
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.