আমি পিটারসন এবং ডেকারের অ্যালগরিদমগুলি বোঝার চেষ্টা করছি যা খুব অনুরূপ এবং প্রচুর প্রতিসাম্য প্রদর্শন করে।
আমি নীচের মতো অনানুষ্ঠানিক ভাষায় অ্যালগরিদমগুলি প্রণয়ন করার চেষ্টা করেছি:
Peterson's: "I want to enter." flag[0]=true;
"You can enter next." turn=1;
"If you want to enter and while(flag[1]==true&&turn==1){
it's your turn I'll wait." }
Else: Enter CS! // CS
"I don't want to enter any more." flag[0]=false;
Dekker's: "I want to enter." flag[0]=true;
"If you want to enter while(flag[1]==true){
and if it's your turn if(turn!=0){
I don't want to enter any more." flag[0]=false;
"If it's your turn while(turn!=0){
I'll wait." }
"I want to enter." flag[0]=true;
}
}
Enter CS! // CS
"You can enter next." turn=1;
"I don't want to enter any more." flag[0]=false;
পার্থক্যটি এমন একটি বিন্দু বলে মনে হয় যেখানে "You can enter next."
ঘটে এবং "if it's your turn I don't want to enter any more."
ডেকারের ক্ষেত্রে ঘটে fact
পিটারসনের অ্যালগরিদমে, দুটি প্রক্রিয়া প্রভাবশালী বলে মনে হয়। অন্য প্রক্রিয়াটি যদি না আসে তবে কোনও প্রক্রিয়া তার সমালোচনা বিভাগে প্রবেশ করতে বাধ্য করে।
বিপরীতে, ডেকারের অ্যালগরিদমে, দুটি প্রক্রিয়া বশ্যতাপূর্ণ এবং নম্র বলে মনে হচ্ছে। উভয় প্রক্রিয়া যদি সমালোচনামূলক বিভাগে প্রবেশ করতে চায় এবং অন্যটির পালা হয় তবে প্রক্রিয়াটি আর প্রবেশ করতে চাইবে না বলে সিদ্ধান্ত নেয়। (অনাহার-মুক্তির জন্য এটি কি দরকার? কেন?)
এই অ্যালগরিদমগুলি ঠিক কীভাবে আলাদা? আমি কল্পনা করেছি যে উভয় প্রক্রিয়া যখন সমালোচনামূলক বিভাগে প্রবেশ করার চেষ্টা করে, পিটারসনসে, প্রক্রিয়াটি "আমি প্রবেশ করি" বলে, যখন ডেকারের প্রক্রিয়ায় "আপনি প্রবেশ করতে পারেন" বলে says প্রক্রিয়াগুলি প্রতিটি অ্যালগরিদমে যেভাবে আচরণ করা যায় তা কি কেউ পরিষ্কার করতে পারেন? আমার কি এটি অনানুষ্ঠানিক পদে রাখার উপায়টি সঠিক?