இயக்க முறைமையில் டெட்லாக் என்றால் என்ன: நிபந்தனைகள் மற்றும் கண்டறிதல் வழிமுறை

சிக்கல்களை அகற்ற எங்கள் கருவியை முயற்சிக்கவும்





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

இயக்க முறைமையில் டெட்லாக் என்றால் என்ன?

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




கார்-எடுத்துக்காட்டு

கார் உதாரணம்

சிறந்த புரிதலுக்காக, R1, R2, மற்றும் இரண்டு செயல்முறைகள் P1 மற்றும் P2 ஆகிய இரண்டு ஆதாரங்கள் உள்ளன, அங்கு R1 P1 க்கு ஒதுக்கப்படுகிறது மற்றும் R2 P2 க்கு ஒதுக்கப்படுகிறது. இப்போது பி 1 ஆர் 2 ஐ அணுக விரும்பினால், ஆர் 2 ஐ பி 2 ஆல் வைத்திருப்பதை நாம் ஏற்கனவே அறிவோம், இப்போது பி 2 ஆர் 1 ஐ அணுக விரும்புகிறது, இது பி 1 ஆர் 2 ஐ அணுகும்போது மட்டுமே இயங்குகிறது, மேலும் பி 2 அது ஆர் 1 ஐ அணுகும்போது மட்டுமே இயங்குகிறது ஒரு முட்டுக்கட்டை நிலை.



செயலி-எடுத்துக்காட்டு

செயலி-எடுத்துக்காட்டு

இறந்த-பூட்டு நிபந்தனைகள்

அனைத்து நிபந்தனைகளும் ஒரே நேரத்தில் ஏற்பட்டால் ஏற்பட வேண்டிய நான்கு முக்கியமான முட்டுக்கட்டை நிபந்தனைகள் பின்வருமாறு.

பரஸ்பர விலக்கு

இதன் பொருள் என்னவென்றால், நாம் பயன்படுத்தும் எந்த வளமும் பரஸ்பர வழியில் பயன்படுத்தப்பட வேண்டும். ஒரே நேரத்தில் ஒரு செயல்முறைகள் ஒரே நேரத்தில் ஒரு வளத்தைப் பயன்படுத்துகின்றன. எடுத்துக்காட்டாக, அச்சிடும் செயல்முறை நடந்து கொண்டிருக்கிறது, திடீரென்று மற்றொரு செயல்முறை அச்சிடும் செயல்முறையை குறுக்கிட முயற்சிக்கிறது. எனவே இங்கே பரஸ்பர விலக்கு சூழ்நிலையில், அச்சிடும் பணி முடிந்தபிறகுதான் அடுத்த பணி மட்டுமே செயல்படுத்தப்படும். ஒரே நேரத்தில் வளங்களைப் பகிர்வதன் மூலம் பரஸ்பர விலக்கத்தை அகற்ற முடியும், இது நடைமுறையில் சாத்தியமில்லை.

பரஸ்பர-விலக்கு

பரஸ்பர-விலக்கு

முன்கூட்டியே இல்லை

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


முன்னுரிமை-எடுத்துக்காட்டு இல்லை

முன்னுரிமை-உதாரணம் இல்லை

பிடித்து காத்திருங்கள்

ஒரு செயல்முறை சில ஆதாரங்களை வைத்திருக்கிறது மற்றும் கூடுதல் ஆதாரங்களுக்காகக் காத்திருக்கிறது, ஆனால் அந்த வளங்கள் வேறு சில செயல்முறைகளால் பெறப்படுகின்றன. மேலேயுள்ள எடுத்துக்காட்டில் இருந்து, பி 1 ஆர் 1 ஐ வைத்திருக்கிறது மற்றும் ஆர் 2 க்காக காத்திருக்கிறது, அங்கு ஆர் 2 பி 2 ஆல் பெறப்படுகிறது, மற்றும் பி 2 ஆர் 2 ஐ பிடித்து ஆர் 1 க்காக காத்திருக்கிறது, அங்கு ஆர் 1 பி 1 ஆல் பெறப்படுகிறது என்பது ஒரு பிடிப்பு மற்றும் காத்திருப்பு நிலைமை முடக்கம் கணினியில் ஏற்படக்கூடும்.

பிடி-மற்றும்-காத்திரு-எடுத்துக்காட்டு

பிடி-மற்றும்-காத்திரு-உதாரணம்

சுற்றறிக்கை காத்திருங்கள்

ஒரு செயல்முறை மற்றொரு செயல்முறைக்கு ஒதுக்கப்பட்ட ஒரு வளத்திற்காகக் காத்திருந்தால், அந்த செயல்முறை ஒரு வளத்திற்காகக் காத்திருந்தால், ஒரு செயல்முறை செயல்முறைகள் முட்டுக்கட்டை என்று கூறப்படுகிறது, இது லூப் வடிவத்தில் இருக்கும் மேலே விளக்கப்பட்ட உதாரணத்திற்கு ஒத்ததாகும். P2 R2 க்காகவும், R2 P2 க்காகவும், P2 R1 மற்றும் R1 க்காகவும் P1 க்கு காத்திருக்கிறது, இது இந்த நிலை முடக்கம் ஏற்பட்டால் வட்ட காத்திருப்பு வடிவமாகும்.

சுற்றறிக்கை-காத்திரு-எடுத்துக்காட்டு

வட்ட-காத்திருப்பு-எடுத்துக்காட்டு

டெட்-லாக் கண்டறிதல் அல்காரிதம்

செயல்முறைகளுக்கு நாங்கள் வளங்களை ஒதுக்குகின்ற சந்தர்ப்பங்கள் மற்றும் கணினியில் ஒரு முட்டுக்கட்டை ஏற்பட்டிருக்கிறதா அல்லது 2 முக்கிய டெட்லாக் கண்டறிதல் வழிமுறைகளைப் பயன்படுத்தவில்லையா என்பதை இயக்க முறைமை மறுபரிசீலனை செய்கிறது.

  • ஒற்றை உதாரணம்
  • ஆதார வகையின் பல நிகழ்வுகள்

ஒற்றை நிகழ்வு

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

  • வள ஒதுக்கீடு வரைபடம்: செயல்முறைகள் பி 1, பி 2, பி 3 மற்றும் வளங்கள் ஆர் 1, ஆர் 2, ஆர் 3 ஆகியவை வள-ஒதுக்கீடு வரைபடத்தில் குறிப்பிடப்படுகின்றன.
  • வரைபடத்திற்காக காத்திருங்கள்: வரைபடத்திற்கான காத்திருப்பில் பி 1, பி 2, பி 3 செயல்முறைகள் மட்டுமே குறிப்பிடப்பட்டுள்ளன.
  • ஒரு சுழற்சி நிலை இருந்தால், ஒரு திசையில் ஒரு செயல்முறையின் தொடர்ச்சியான ஓட்டம் இருந்தால், அதன் அர்த்தம் சுழற்சி நிலை வெளியேறுகிறது மற்றும் வரைபடம் ஒரு முட்டுக்கட்டை நிலையில் இருக்கும் வரை காத்திருங்கள்.

எடுத்துக்காட்டு 1: கீழேயுள்ள எடுத்துக்காட்டு எந்தவிதமான முட்டுக்கட்டை நிலையும் இல்லை என்பதைக் காட்டுகிறது, ஏனெனில் வரைபடத்திற்கான காத்திருப்பில் தொடர்ச்சியான ஓட்டம் இல்லை.

ஒற்றை-நிகழ்வு-எடுத்துக்காட்டு 1

ஒற்றை-நிகழ்வு-எடுத்துக்காட்டு 1

எடுத்துக்காட்டு 2: பி 1 முதல் பி 4 வரை சுழற்சியின் தொடர்ச்சியான ஓட்டம் இருப்பதால் டெட்லாக் நிலை ஏற்பட்டது.

ஒற்றை நிகழ்வு - எடுத்துக்காட்டு 2

ஒற்றை நிகழ்வு-எடுத்துக்காட்டு 2

கணினியில் முட்டுக்கட்டை அடிக்கடி ஏற்பட்டால், கண்டறிதல் வழிமுறை அடிக்கடி பயன்படுத்தப்படுகிறது. கண்டறிதல் வழிமுறையின் அதிக பயன்பாடு இருந்தால், அதிக மேல்நிலை மற்றும் அதிக கணக்கீட்டு நேரம் இருக்கும். எனவே இதைக் கடக்க, சமமான நேரத்தைக் கொடுத்து, வழிமுறையைப் பயன்படுத்துகிறோம், முட்டுக்கட்டைகளைக் கண்டறிய வரைபடத்திற்கான எடை இவ்வாறு பயன்படுத்தப்படுகிறது.

வள வகையின் பல நிகழ்வுகள்

வள வகையின் பல நிகழ்வுகள் ஒரு அமைப்பு அனைத்து வளங்களின் பல நிகழ்வுகளைக் கொண்ட ஒரு சூழ்நிலை, இது வங்கியாளர்கள் வழிமுறை என்றும் அழைக்கப்படுகிறது. வங்கியாளர்கள் வழிமுறையின்படி, செயல்முறை அதன் தேவையான அனைத்து வளங்களையும் பெற்றவுடன், அது அதன் வளங்களை வெளியிடுகிறது.

பின்வரும் எடுத்துக்காட்டைக் கருத்தில் கொள்வோம், P0, P1, P2 மற்றும் வள வகை A, B, C ஆகிய 3 செயல்முறைகள் உள்ளன, அங்கு A இருக்க முடியும் CPU , பி அச்சுப்பொறியாகவும், சி விசைப்பலகையாகவும் இருக்கலாம். நெடுவரிசையில் உள்ள “0” இலக்கங்கள் வளங்களின் கிடைக்கும் தன்மையைக் குறிக்கின்றன.

வழக்கு (i): நிபந்தனை கோரிக்கையை P0 மற்றும் P2 இல் உள்ள “000” நிபந்தனை என்று எடுத்துக் கொண்டால், எந்த கோரிக்கை நிறைவேறியது என்பதை நாம் சரிபார்க்க வேண்டும், P0 செயல்முறைகள் ஒதுக்கப்பட்ட பின்னர் செயல்முறைகளை வெளியிடுகின்றன, பின்னர் அடுத்த P2 செயல்முறைகள் ஒதுக்கப்பட்ட பிறகு வெளியிடுகின்றன. இதைப் போல, ஒரு வரிசையில், ஒவ்வொன்றாக ஒரு செயல்முறை P0, P2, P3, P1, P4 ஐ ஒரு வரிசையில் வெளியிடுகிறது. இறுதியாக, பி 7, பி 2, பி 6 என கிடைக்கக்கூடிய ஆதாரங்களைப் பெறுகிறோம். கிடைக்கக்கூடிய வரிசை என்பது முட்டுக்கட்டை இல்லாத ஒரு நிலை.

வங்கியாளர்கள்-அல்காரிதம்-எடுத்துக்காட்டு 1

வங்கியாளர்கள்-வழிமுறை-எடுத்துக்காட்டு 1

வீடுகள் (ii): 000 க்கு பதிலாக P2 001 எனில், இப்போது டெட்லாக் நிலையை சரிபார்க்க வங்கியாளரின் வழிமுறையைப் பயன்படுத்துங்கள், அங்கு அனைத்து 5 செயல்முறைகளிலும் P0 மட்டுமே செயல்படுத்தப்படுகிறது. எனவே பி 1 தவிர பி 1, பி 2, பி 3, பி 4 முட்டுக்கட்டை நிலையில் உள்ளன.

வங்கியாளர்கள்-எடுத்துக்காட்டு 2

வங்கியாளர்கள்-எடுத்துக்காட்டு 2

டெட்லாக் பயன்பாடுகள்

முட்டுக்கட்டைகளின் பயன்பாடுகள் தேர்வு ஆன்லைன் முடிவுகளின் நிகழ்நேர எடுத்துக்காட்டுடன் விளக்கப்படலாம், அங்கு பல மாணவர்கள் வெளியீட்டு நேரத்தில் தங்கள் பல்கலைக்கழக வலைத்தளத்தை அணுக முயற்சிக்கின்றனர். பல நேரங்களில் வலைப்பக்கம் ஒரு நேரத்தில் பல பயனர்களுக்கு ஏற்றப்படாது என்பதை ஒருவர் அவதானிக்கலாம், இது ஒரு முட்டுக்கட்டை நிலை. எந்த வழிமுறைகளையும் பயன்படுத்தி இதைக் கடக்க முடியும்.

நன்மைகள்

முட்டுக்கட்டைகளின் நன்மைகள்

  • முட்டுக்கட்டை தவிர்ப்பதில் எந்த முன்-வெளிப்பாடும் காணப்படவில்லை
  • செயல்பாட்டில் தாமதம் இல்லை

தீமைகள்

முட்டுக்கட்டைகளின் தீமை

  • பயன்படுத்த வேண்டிய வளத்தை முன்கூட்டியே தெரிந்து கொள்ள வேண்டும்
  • நீண்ட காலமாக செயல்முறையின் அடைப்பு
  • முன்கூட்டிய இழப்புகள் மரபுரிமையாகும்.

இந்த கட்டுரை இரண்டு அல்லது அதற்கு மேற்பட்ட செயல்முறைகள் இருக்கும்போது முட்டுக்கட்டை எவ்வாறு நிகழ்கிறது என்பதையும், ஒரு முட்டுக்கட்டை ஏற்படுவதற்கான மூன்று நிபந்தனைகள் பற்றியும், மற்றும் இரு வகையான வழிமுறைகள் அதாவது வள பகிர்வு வழிமுறை இருப்பதைக் கண்டறிகிறது. முட்டுக்கட்டை நிலை மற்றும் வங்கியாளர்களின் வழிமுறை இது முட்டுக்கட்டை தவிர்ப்பு வழிமுறை. இங்கே கேள்வி 'முட்டுக்கட்டை புறக்கணிக்கப்பட்டால் என்ன ஆகும்?'.