পিটারসন এবং ডেকারের অ্যালগরিদমের বিপরীতে


41

আমি পিটারসন এবং ডেকারের অ্যালগরিদমগুলি বোঝার চেষ্টা করছি যা খুব অনুরূপ এবং প্রচুর প্রতিসাম্য প্রদর্শন করে।

আমি নীচের মতো অনানুষ্ঠানিক ভাষায় অ্যালগরিদমগুলি প্রণয়ন করার চেষ্টা করেছি:

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 প্রক্রিয়াগুলি প্রতিটি অ্যালগরিদমে যেভাবে আচরণ করা যায় তা কি কেউ পরিষ্কার করতে পারেন? আমার কি এটি অনানুষ্ঠানিক পদে রাখার উপায়টি সঠিক?


নোট করুন যে পিটারসনের অ্যালগরিদম সমালোচনামূলক বিভাগ সমস্যাটি পুরোপুরি সমাধান করে না, যেহেতু পতাকাগুলি পড়ে এবং লেখায় তারা নিজেরাই সমালোচনামূলক বিভাগের সমস্যা। হেন্ক জেএম গোম্যানের একটি কাগজ যা আসলে সমস্যাটিকে পুরোপুরি সমাধান করে তা হ'ল দ্য আরবিটার: প্রিমিটিভস সিঙ্ক্রোনাইজিং বাস্তবায়নের জন্য একটি অ্যাক্টিভ সিস্টেম উপাদান "k
ব্যবহারকারী 3083171

উত্তর:


24

অ্যালগরিদমের আপনার অনানুষ্ঠানিক বিবরণ দুর্দান্ত।

আমি মনে করি উভয় ক্ষেত্রেই লেখক সবচেয়ে সহজ সমাধান নিয়ে আসার চেষ্টা করছেন যা তারা পারস্পরিক বর্জন এবং অচলাবসত স্বাধীনতা উভয়েরই গ্যারান্টিযুক্ত solution দুটিই অ্যালগরিদম অনাহারমুক্ত বা ন্যায্য নয়।[সম্পাদনা: মন্তব্যে উল্লিখিত হিসাবে, পিটারসনের অ্যালগোরিদম অনাহারমুক্ত এবং ন্যায্য]। ডেকারের সমাধানটি হ'ল লোড এবং স্টোরের নির্দেশাবলী ব্যবহার করে প্রথম পারস্পরিক বর্জনীয় অ্যালগরিদম। এটি ডিজজস্ট্রায় প্রবর্তিত হয়েছিল , এডজার ডাব্লু; প্রোগ্রামিং ল্যাঙ্গুয়েজস: ন্যাটো অ্যাডভান্সড স্টাডি ইনস্টিটিউট , পিপি। 43-112, একাডেমিক প্রেস, 1968 "এফ। জেনুইস, এডি। তে" সহযোগিতা অনুক্রমিক প্রক্রিয়া " । আপনি যদি কাগজটির মাধ্যমে পড়েন তবে ডিজজস্ট্রা বেশ কয়েকটি চেষ্টা করে কাজটি দেখতে পান, প্রতিটিটির সাথে সমস্যাটি স্বীকৃতি দিয়ে এবং তারপরে পরবর্তী সংস্করণে আরও কিছুটা যুক্ত করেন adding তাঁর অ্যালগরিদমের অদক্ষতার অংশটি এই ঘটনার মধ্য দিয়ে আসে যে তিনি একটি পালা-নেওয়া অ্যালগরিদম দিয়ে শুরু করেন এবং তারপরে কোনও পরিবর্তন যাতে প্রক্রিয়াগুলি অগ্রগতি করতে দেয় সেটিকে সংশোধন করার চেষ্টা করে। (কেবল 0,1,0,1 নয় ...)

পিটারসনের অ্যালগরিদম ডেকারের অ্যালগরিদম সম্পর্কে এক দশকেরও বেশি সময় অভিজ্ঞতা এবং অন্ধকারের পরে 1981 সালে প্রকাশিত হয়েছিল। পিটারসন ডেকারের চেয়ে অনেক সহজ অ্যালগরিদম চেয়েছিলেন যাতে নির্ভুলতার প্রমাণ আরও সহজ হয়। আপনি দেখতে পাচ্ছেন যে তিনি তার কাগজের শিরোনাম থেকে সম্প্রদায়ের সাথে কিছুটা হতাশার বোধ করছেন। পিটারসন, জিএল; "পারস্পরিক বর্জন সমস্যা সম্পর্কে মিথ," ইনফ। Proc। লেট। , 12 (3): 115-116, 1981। খুব দ্রুত পড়া এবং খুব ভাল লেখা। (এবং আনুষ্ঠানিক পদ্ধতি সম্পর্কে ছদ্মবেশী মন্তব্যগুলি অমূল্য)) পিটারসনের কাগজে আরও সহজ প্রয়াস থেকে তিনি তার সমাধান তৈরি করার প্রক্রিয়াটি নিয়ে আলোচনা করেন। (যেহেতু তার সমাধানটি সহজ, এতে অন্তর্বর্তী পদক্ষেপের খুব কম প্রয়োজন ছিল)) নোট করুন যে মূল পার্থক্য (যা আপনি "আজ্ঞাবহতা" না বলে "আধিপত্য" বলে থাকেন) এটি হ'ল কারণ পিটারসন নতুন করে শুরু করেছিলেন (টার্ন নেওয়ার অ্যালগরিদম ডিজজস্ট্রার থেকে শুরু হয়নি) ) তার অপেক্ষা লুপটি সহজ এবং আরও কার্যকর। তিনি বুঝতে পেরেছিলেন যে তিনি কেবল সরল লুপযুক্ত পরীক্ষা দিয়ে পালিয়ে যেতে পারবেন যখন ডিজকস্ট্রাকে প্রতিবার ব্যাকআপ এবং পুনরায় চেষ্টা করতে হয়েছিল।

আমার মনে হয় ল্যাম্পোর্টের ক্লাসিক বেকারি অ্যালগরিদম কাগজটিও উল্লেখ করতে হবে: ল্যাম্পোর্ট, লেসলি; " ডিজকস্ট্রার সমকালীন প্রোগ্রামিং সমস্যার একটি নতুন সমাধান", কম এসিএম 17 (8): 453-455, 1974 । বেকারি অ্যালগরিদম ডেকারের অ্যালগরিদমের চেয়ে তর্কযোগ্যভাবে সহজ (এবং 2 টিরও বেশি প্রসেসরের ক্ষেত্রে অবশ্যই সহজ), এবং বিশেষত দোষ সহনকারী হিসাবে নকশাকৃত। আমি বিশেষত দুটি কারণে এটি উল্লেখ করেছি। প্রথমত, কারণ এটি পারস্পরিক বর্জনীয় সমস্যার সংজ্ঞা সম্পর্কে কিছুটা ইতিহাস দেয় এবং 1974 সাল পর্যন্ত এটি সমাধান করার চেষ্টা করে Second দ্বিতীয়ত কারণ বেকারি অ্যালগরিদম দেখায় যে পারস্পরিক বর্জনীয় সমস্যা সমাধানের জন্য কোনও হার্ডওয়্যার পারমাণবিকতা প্রয়োজন নেই।

অবশেষে, আমার একটি বিশেষ প্রিয় ল্যাম্পোর্ট, লেসেলি; "একটি ফাস্ট মিউচুয়াল এক্সক্লুশন অ্যালগরিদম," এসিএম ট্রান্স। বন্দীরা। Sys। , 5 (1): 1-11, 1987। এই কাগজটিতে ল্যাম্পোর্ট সমালোচনামূলক অংশটির জন্য সামান্য বিতর্ক রয়েছে বলে (সাধারণ) ক্ষেত্রে পারস্পরিক বর্জনীয় সমস্যার সমাধানের অনুকূল সমাধানের চেষ্টা করছিল। আবার এটি পারস্পরিক বর্জন এবং অচলাবস্থার স্বাধীনতার গ্যারান্টি দেয় তবে ন্যায্যতা নয়। এটি (আমি বিশ্বাস করি) কেবলমাত্র সাধারণ পড়া এবং লেখার মাধ্যমে প্রথম পারস্পরিক বর্জনীয় অ্যালগরিদম হ'ল O (1) সময়ে এন প্রসেসরগুলিকে সিঙ্ক্রোনাইজ করতে পারে যখন কোন বিরোধ নেই। (যখন বিতর্ক হয়, তখন এটি ও (এন) পরীক্ষায় ফিরে আসে)) তিনি একটি অনানুষ্ঠানিক প্রদর্শন করেন যে বিতর্কমুক্ত ক্ষেত্রে আপনি সবচেয়ে ভাল করতে পারেন তা হ'ল সাত মেমরি অ্যাক্সেসেস। (ডেকার এবং পিটারসন দুজনেই এটি 4 দিয়ে করেন তবে তারা কেবল 2 প্রসেসর পরিচালনা করতে পারবেন, যখন আপনি তাদের অ্যালগোরিদমগুলি N তে প্রসারিত করবেন তখন তাদের একটি অতিরিক্ত ও (এন) অ্যাক্সেস যুক্ত করতে হবে have)

সব মিলিয়ে: আমি বলব ডেকারের অ্যালগরিদম নিজেই মূলত historicalতিহাসিক দৃষ্টিকোণ থেকে আকর্ষণীয়। ডিজকસ્ત્રের কাগজটি পারস্পরিক বর্জনীয় সমস্যার গুরুত্ব ব্যাখ্যা করেছিল এবং প্রমাণ করেছে যে এটি সমাধান হতে পারে। তবে বহু বছর ধরে হ্যান্ডসাইটের সাথে ডেকারের চেয়ে সহজ (এবং আরও দক্ষ) সমাধান পাওয়া গেছে।


3
>> দুটিই অ্যালগরিদম অনাহারমুক্ত বা ন্যায্য নয়। ওটা সত্যি না. পিটারসনের অ্যালগরিদম অনাহারমুক্ত এবং ন্যায্য। কোনও থ্রেড যদি সমালোচনামূলক বিভাগে থাকে এবং অপরটি অপেক্ষার লুপে অপেক্ষা করে থাকে - একটি অপেক্ষার পাশের সিএসে প্রবেশ করবে, এমনকি সিএসে থাকা থ্রেডটি আরও দ্রুত is

আমি জোর দিয়ে বলতে চাই যে পিটারসনের অ্যালগরিদম অনাহার মুক্ত এবং ন্যায্য , যদি কেবলমাত্র ব্যবহারকারী 24190 এর মন্তব্যের পুনরাবৃত্তি করা হয়। আমি বুঝতে পারি না কেন এত বছর পরেও এই উত্তরের লেখক মন্তব্যটিতে কোনও উত্তর দেননি বা তাঁর উত্তরও সংশোধন করেননি। (একবার আপনি উত্তরটি সংশোধন করার পরে আমাকে পিং করতে ভুলবেন না যাতে আমি আমার এই মন্তব্যটি সরিয়ে ফেলতে পারি))
এপাস.জ্যাক

পিটারসনের "পারস্পরিক বর্জন সমস্যা সম্পর্কে মিথগুলি
স্টারগার

: পিটারসন এর "মিথস পারস্পরিক বর্জনের সমস্যা সম্পর্কে" (Archive.org) এর পিডিএফ web.archive.org/web/20150501155424/https://cs.nyu.edu/~lerner/...
strager

3

নিম্নলিখিত কাগজে আমরা পিটারসন এবং ডেকারের অ্যালগরিদম (এবং আরও কিছু) এর জন্য ফর্মাল মডেল দেব এবং আমরা তাদের বৈশিষ্ট্য প্রমাণ করতে মডেল পরীক্ষক ব্যবহার করেছি। দয়া করে নীচে সারণীতে আমাদের ফলাফলগুলি সন্ধান করুন (কলামগুলি "ডেডলক" এবং "ডাইভারজেন্ট" আমাদের মডেলগুলিকে উল্লেখ করে, "এমই" = সত্য মানে অ্যালগরিদমটি সঠিক, "ওভারটেকিং" = সত্য মানে এটি ন্যায্য)।

আর। মেলিক, টি। কাপাস, জেড। ব্রেজোজনিক। ACTLW - অপারেটরবিহীন একটি অ্যাকশন-ভিত্তিক গণনা ট্রি লজিক। তথ্য বিজ্ঞান, 178 (6), পৃষ্ঠা 1542-1557, 2008।

https://doi.org/10.1016/j.ins.2007.10.023

এখানে চিত্র বর্ণনা লিখুন


1

পিটারসন অ্যালগরিদমের সমালোচনামূলক বিভাগে প্রবেশের জন্য আরও কঠোর চাপ রয়েছে, যেখানে ডেকারের অ্যালগরিদম তুলনামূলকভাবে নরম এবং কম আক্রমণাত্মক। এটি আরও স্পষ্ট করার জন্য, আসুন ইরানীয় সংস্কৃতি সম্পর্কে একটি উদাহরণ পরীক্ষা করে দেখি। এই উদাহরণে আসার আগে, এটা জেনে রাখা ভাল যে ইরানীয় লোকেরা কোথাও প্রবেশ করার সময় একে অপরের সাথে সত্যিকারের নরম আচরণ করে! অনুমান করুন দুটি ইরানীয় লোক কোনও ঘরে প্রবেশ করতে চলেছেন, এবং সেই বাড়িতে প্রবেশের কেবল একটি দরজা রয়েছে।

এখন অন্য সংস্কৃতি ( জুম্বিয়ান কালচার ) এর দু'জন পুরুষকে কল্পনা করুন যা তারা কোথাও প্রবেশ করার সময় একে অপরের সম্পর্কে আসলে বেশি চিন্তা করে না ( কাউকে সে প্রবেশ করতে চায় কিনা তা জিজ্ঞাসা করা শ্রদ্ধার বিষয় )।

সমস্যা সম্পর্কে তথ্য স্পষ্ট করার জন্য আমরা এটি বলতে পারি:

  • দুই ইরানিয়ান = ডেকার অ্যালগরিদম ব্যবহার করে দুটি প্রক্রিয়া
  • দুটি জোম্বিয়ান = পিটারসন অ্যালগরিদম ব্যবহার করে দুটি প্রক্রিয়া

সুতরাং আসুন প্রতিটি অ্যালগোরিদম ( সংস্কৃতি ) এ কী ঘটেছে তা সন্ধান করি । নিম্নলিখিত মন্তব্যগুলি প্রথম ইরানী লোকটির জন্য যিনি ডেকার অ্যালগরিদম ব্যবহার করার সময় ঘরে প্রবেশ করতে চলেছেন :

p0:
   wants_to_enter[0] ← true // Goes through the house entrance
   while wants_to_enter[1] { // If the other man wants to enter too
      if turn ≠ 0 { // Then see if it is your turn or not
         wants_to_enter[0] ← false // If it is not your turn don't go furthur
         while turn ≠ 0 { // and wait until it is your turn
           // busy wait
         }
         wants_to_enter[0] ← true // when it is your turn go through the door
      }
   }

   // critical section
   ...
   turn ← 1
   wants_to_enter[0] ← false // Set the turn for the other man
   // remainder section

আমাদের দু'জন জম্বিয়ান রয়েছে যারা পিটারসন অ্যালগরিদম ব্যবহার করে ঘরে প্রবেশ করতে চলেছে । এটি নিম্নলিখিত হিসাবে যায়:

P0:     
  flag[0] = true; // Goes through the house entrance
  turn = 1; // Set the turn for himself
  while (flag[1] && turn == 1) // Wait until the other one is going in
  {
   // busy wait
  }
   // critical section
      ...
   // end of critical section
  flag[0] = false; // Done going inside

এটি উল্লেখ করা জরুরী যে অন্য দু'জন ভিতরে যাচ্ছেন না যখন অন্যজন এটি করছেন ( মিউচুয়াল এক্সক্লুশন ) তবে, ইরানী লোকেরা আরও বেশি নরম।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.