এই পত্রটি সহযোগিতামূলক নির্ধারিত রানটাইম পরিবেশে ভাগ করা যোগাযোগ চ্যানেলগুলির আচরণ বিশ্লেষণ করে। গবেষণা FDR আনুষ্ঠানিক যাচাইকরণ সরঞ্জাম ব্যবহার করে ভাগ করা চ্যানেল আচরণের বিশেষণ এবং ProcessJ ভাষায় চ্যানেল বাস্তবায়নের মডেল তৈরি করেছে। ফলাফলগুলি দেখায় যে যদিও চ্যানেলের সঠিক আচরণ বাস্তবায়ন করা যায়, তবে ফলাফলগুলি সমস্ত সম্পর্কিত প্রক্রিয়াগুলি সম্পাদন করার জন্য পর্যাপ্ত সম্পদ থাকার উপর নির্ভর করে। গবেষণা এই সিদ্ধান্তে পৌঁছায় যে সমবর্তী উপাদানগুলির রানটাইম পরিবেশ মডেল করা উপাদানগুলি বাস্তব বিশ্বে বিশেষণ অনুযায়ী আচরণ করে তা নিশ্চিত করার জন্য প্রয়োজনীয়।
১. সমবর্তী সফটওয়্যার সঠিকতার গুরুত্ব: সমবর্তী সিস্টেমের সঠিক আচরণ নির্দিষ্ট শর্তে উপাদানগুলি কীভাবে চলে তা বোঝার জন্য অত্যন্ত গুরুত্বপূর্ণ। ঐতিহ্যবাহী পরীক্ষার পদ্ধতিগুলি ব্যাপকভাবে ব্যবহৃত হলেও সমস্ত সম্ভাব্য সমবর্তী ত্রুটি আবিষ্কার করতে পারে না।
२. আনুষ্ঠানিক যাচাইকরণের প্রয়োজনীয়তা: লেখকরা মঙ্গল গ্রহের অন্বেষণকারী সফটওয়্যারের উদাহরণ দিয়ে ব্যাখ্যা করেন যে একটি সাধারণ ডেডলক ত্রুটি পরীক্ষা দ্বারা আবিষ্কৃত হওয়ার জন্য ৮০ মিলিয়ন সেকেন্ড (৯০ দিনের বেশি) অপেক্ষা করতে হতে পারে ৫০% সম্ভাবনা সহ, যখন CSP এবং FDR ব্যবহার করে আনুষ্ঠানিক যাচাইকরণ এই ধরনের ত্রুটিগুলি অবিলম্বে আবিষ্কার করতে পারে।
३. রানটাইম সিস্টেম যাচাইকরণের চ্যালেঞ্জ: বিপুল সংখ্যক প্রোগ্রাম প্রোগ্রামিং ভাষার রানটাইম সিস্টেমের উপর নির্মিত হওয়ায়, রানটাইম সিস্টেম ত্রুটিমুক্ত এবং বিশেষণ অনুযায়ী আচরণ করে তা নিশ্চিত করা অত্যন্ত গুরুত্বপূর্ণ হয়ে ওঠে।
१. সম্পাদন পরিবেশ উপেক্ষা করা: চ্যানেল সিস্টেম যাচাইকরণের ঐতিহ্যবাহী পদ্ধতিগুলি রানটাইম সিস্টেম, সম্পাদন সিস্টেম, হার্ডওয়্যার ইত্যাদি মডেল করে না, এটি অনুমান করে যে প্রস্তুত ইভেন্টগুলি নির্ধারিত না হওয়া পর্যন্ত উপলব্ধ থাকবে।
२. সম্পদ স্বল্পতার অনুমান: মান মডেলিং পদ্ধতি অনুমান করে যে ইভেন্টগুলি অবিলম্বে ঘটতে পারে, যার অর্থ ইভেন্ট সম্পাদনের সময় সম্পদ উপলব্ধ, কিন্তু এই চরম অনুমান বাস্তবে সত্য নয়।
३. নির্ধারণ পরিবেশের প্রভাব: প্রক্রিয়াগুলি প্রস্তুত সারির শেষে অবস্থান করে এবং নির্ধারিত হওয়ার জন্য অপেক্ষা করতে হয়, তাদের ইভেন্টগুলি অবিলম্বে উপলব্ধ হবে না, কিন্তু ঐতিহ্যবাহী পদ্ধতিগুলি এটি বিবেচনা করে না।
ProcessJ হল একটি CSP শব্দার্থের উপর ভিত্তি করে তৈরি প্রক্রিয়া-ভিত্তিক প্রোগ্রামিং ভাষা যা সহযোগিতামূলক নির্ধারণ ব্যবহার করে এবং JVM-এ চলে। এই পত্রটি ProcessJ রানটাইমে ভাগ করা চ্যানেল বাস্তবায়নের সঠিকতা যাচাই করার লক্ষ্য রাখে, বিশেষত নির্ধারণ পরিবেশ চ্যানেল আচরণে কীভাবে প্রভাব ফেলে তার উপর ফোকাস করে।
१. ProcessJ ভাগ করা চ্যানেল বাস্তবায়নের সঠিকতা যাচাই করা: প্রমাণ করেছে যে বর্তমান সহযোগিতামূলক নির্ধারক ব্যবহার করে ProcessJ ভাগ করা চ্যানেল বাস্তবায়ন সঠিক, CSP অনুবাদ এবং সাধারণ ভাগ করা চ্যানেল মডেলের পরিমার্জন পরীক্ষার মাধ্যমে যাচাই করেছে।
२. ভাগ করা চ্যানেল বিশেষণের সম্প্রসারিত বীজগণিত প্রমাণ তৈরি করা: ভাগ করা চ্যানেল বিশেষণ প্রকৃতপক্ষে CSP ভাগ করা চ্যানেল হিসাবে কাজ করে তার আনুষ্ঠানিক প্রমাণ প্রদান করেছে।
३. সম্পদ এবং সক্রিয় প্রক্রিয়াগুলির সম্পর্ক আরও প্রমাণ করা: উপলব্ধ সম্পদ এবং সক্রিয় প্রক্রিয়াগুলির সংখ্যা বিশেষণ পূরণের সম্পর্ক আবার প্রদর্শন করেছে, প্রমাণ করেছে যে দুটি দিকে বিশেষণ এবং মডেলের মধ্যে পরিমার্জন পেতে, উপলব্ধ নির্ধারকদের সংখ্যা সিস্টেমে প্রক্রিয়াগুলির সংখ্যার সমান বা তার চেয়ে বেশি হতে হবে।
এই পত্রের মূল কাজ হল ProcessJ ভাষায় ভাগ করা চ্যানেল বাস্তবায়নের সঠিকতা যাচাই করা। এতে নির্দিষ্টভাবে অন্তর্ভুক্ত রয়েছে:
যোগাযোগকারী ক্রমিক প্রক্রিয়া (CSP) আনুষ্ঠানিক মডেলিং ভাষা হিসাবে ব্যবহার করা হয়:
SCHEDULER =
rqdequeue?p → -- একটি প্রক্রিয়া আউট-কিউ করুন
run.p → -- এটি চালান
yield.p → -- ছেড়ে দেওয়ার জন্য অপেক্ষা করুন
SCHEDULER -- পুনরাবৃত্তিমূলক
SCHEDULE_MANAGER =
schedule?pid → -- নির্ধারণ ইভেন্টের জন্য অপেক্ষা করুন
rqenqueue!pid → -- প্রক্রিয়াটি চালানোর সারিতে রাখুন
SCHEDULE_MANAGER -- পুনরাবৃত্তিমূলক
প্রতিটি প্রক্রিয়ার মনিটর, চলমান ফ্ল্যাগ এবং প্রস্তুত ফ্ল্যাগ নিরীক্ষণ করতে হবে:
PROCESS(p) =
VARIABLE(ready.p, true)
||| VARIABLE(running.p, false)
||| MONITOR(claim_process.p, release_process.p)
ঐতিহ্যবাহী পদ্ধতির বিপরীতে, এই পত্রটি যাচাইকরণ প্রক্রিয়ায় সহযোগিতামূলক নির্ধারক স্পষ্টভাবে মডেল করে, যা শুধুমাত্র নির্দিষ্ট নির্ধারণ শর্তে উপস্থিত সমস্যাগুলি আবিষ্কার করতে সক্ষম করে।
নির্ধারকদের সংখ্যা পরিবর্তন করে, গবেষণা বিভিন্ন সম্পদ কনফিগারেশনে সিস্টেম আচরণের পরিবর্তন অধ্যয়ন করেছে, সম্পদ পর্যাপ্ততা এবং সঠিকতার সম্পর্ক আবিষ্কার করেছে।
বিশ্লেষণের জন্য তিনটি শব্দার্থ মডেল ব্যবহার করা হয়েছে: १. Traces মডেল: বাহ্যিক পর্যবেক্ষণ আচরণের উপর ভিত্তি করে २. Stable Failures মডেল: প্রক্রিয়া যে ইভেন্টগুলি প্রত্যাখ্যান করতে পারে তা পরিচালনা করে ३. Failures-Divergences মডেল: সম্ভাব্য লাইভলক পরিস্থিতি পরিচালনা করে
| চ্যানেল প্রকার | প্রক্রিয়া কনফিগারেশন | মোট প্রক্রিয়া | নির্ধারকদের সংখ্যা ||||| |----------|----------|----------|--|--|--|--| | | | | १| २| ३| ४| | এক-থেকে-অনেক | १ লেখা-२ পড়া | ३ | ✓| ✓| ✗| ✗| | এক-থেকে-অনেক | १ লেখা-३ পড়া | ४ | ✓| ✓| ✓| ✗| | অনেক-থেকে-এক | २ লেখা-१ পড়া | ३ | ✓| ✓| ✗| ✗| | অনেক-থেকে-এক | ३ লেখা-१ পড়া | ४ | ✓| ✓| ✓| ✗| | অনেক-থেকে-অনেক | २ লেখা-२ পড়া | ४ | ✓| ✓| ✓| ✗|
প্রতীক ব্যাখ্যা:
१. সম্পদ পর্যাপ্ততা উপপাদ্য: যখন নির্ধারকদের সংখ্যা প্রক্রিয়াগুলির মোট সংখ্যার সমান বা বেশি হয়, তখন failures মডেলের দুটি দিকে পরিমার্জন অর্জন করা যায়।
२. সম্পদ অপর্যাপ্ততার প্রভাব:
३. নির্ধারণ সারির প্রভাব: চালানোর সারি প্রক্রিয়াগুলিতে প্রাকৃতিক ক্রম আরোপ করে, যখন নির্ধারক অপর্যাপ্ত হয়, কিছু প্রক্রিয়ার গ্রহণযোগ্য সেট সিস্টেমের সামগ্রিক গ্রহণযোগ্য সেটে অন্তর্ভুক্ত হবে না।
१. প্রথমবার নির্ধারণ পরিবেশ বিবেচনা করা: যাচাইকরণে সহযোগিতামূলক নির্ধারক স্পষ্টভাবে মডেল করা २. নির্ধারণ-সম্পর্কিত সমস্যা আবিষ্কার করা: শুধুমাত্র নির্দিষ্ট নির্ধারণ শর্তে উপস্থিত লাইভলক ইত্যাদি সনাক্ত করতে পারে ३. সম্পদ-সচেতন যাচাইকরণ: সম্পদ প্রয়োজন এবং সঠিকতার সম্পর্ক পরিমাণগত করেছে
१. বাস্তবায়ন সঠিকতা: ProcessJ এর ভাগ করা চ্যানেল বাস্তবায়ন পর্যাপ্ত নির্ধারক থাকলে সঠিক।
२. সম্পদ নির্ভরতা: সঠিক আচরণ সমস্ত সম্পর্কিত প্রক্রিয়াগুলি সম্পাদন করার জন্য পর্যাপ্ত নির্ধারণ সম্পদ থাকার উপর নির্ভর করে।
३. মডেলিং প্রয়োজনীয়তা: রানটাইম পরিবেশ মডেল করা উপাদানগুলি বাস্তব বিশ্বে বিশেষণ অনুযায়ী আচরণ করে তা নিশ্চিত করার জন্য প্রয়োজনীয়।
१. লক ব্যবহার: বর্তমান বাস্তবায়ন ব্যাপকভাবে লক/মনিটর ব্যবহার করে, যা সমবর্তিতা এবং কর্মক্ষমতা প্রভাবিত করতে পারে।
२. নির্ধারক প্রয়োজনীয়তা: প্রক্রিয়া সংখ্যার সমান নির্ধারক সংখ্যা প্রয়োজন বাস্তব অ্যাপ্লিকেশনে অবাস্তব হতে পারে।
३. যাচাইকরণ জটিলতা: প্রক্রিয়া সংখ্যা বৃদ্ধির সাথে সাথে যাচাইকরণের অবস্থা স্থান দ্রুত বৃদ্ধি পায়।
१. লক-মুক্ত বাস্তবায়ন:
२. বিশেষণ সরলীকরণ:
३. নির্ধারক অপ্টিমাইজেশন:
१. পদ্ধতি উদ্ভাবনী:
२. তাত্ত্বিক অবদান:
३. ব্যবহারিক মূল্য:
४. পরীক্ষা সম্পূর্ণতা:
१. স্কেলেবিলিটি সমস্যা:
२. কর্মক্ষমতা বিবেচনা অপর্যাপ্ত:
३. প্রয়োগযোগ্যতা পরিসীমা সীমাবদ্ধ:
१. একাডেমিক অবদান:
२. ব্যবহারিক মূল্য:
३. পুনরুৎপাদনযোগ্যতা:
१. প্রক্রিয়া-ভিত্তিক প্রোগ্রামিং ভাষা: বিশেষত CSP শব্দার্থের উপর ভিত্তি করে ভাষা রানটাইম যাচাইকরণের জন্য উপযুক্ত २. সহযোগিতামূলক নির্ধারণ সিস্টেম: অন্যান্য সহযোগিতামূলক নির্ধারণ ব্যবহার করে সমবর্তী সিস্টেমে প্রয়োগ করা যায় ३. গুরুত্বপূর্ণ সিস্টেম বিকাশ: সমবর্তী সিস্টেম বিকাশে সঠিকতার প্রয়োজনীয়তা অত্যন্ত উচ্চ
এই পত্রটি ৫१টি সম্পর্কিত সাহিত্য উদ্ধৃত করে, প্রধানত অন্তর্ভুক্ত:
१. CSP মৌলিক তত্ত্ব: Hoare এর ক্লাসিক CSP কাজ এবং সম্পর্কিত তত্ত্ব २. আনুষ্ঠানিক যাচাইকরণ সরঞ্জাম: FDR সরঞ্জাম এবং সম্পর্কিত যাচাইকরণ পদ্ধতি ३. সমবর্তী প্রোগ্রামিং ভাষা: JCSP, occam-π, Go, Erlang ইত্যাদি ভাষার সম্পর্কিত গবেষণা ४. নির্ধারণ অ্যালগরিদম: পারস্পরিক বর্জন অ্যালগরিদম এবং সমবর্তী অ্যালগরিদমের সম্পর্কিত কাজ ५. লেখকদের পূর্ববর্তী কাজ: ProcessJ রানটাইম যাচাইকরণ সম্পর্কিত সিরিজ গবেষণা
সংক্ষিপ্তসার: এই পত্রটি আনুষ্ঠানিক যাচাইকরণ ক্ষেত্রে গুরুত্বপূর্ণ অবদান রাখে, বিশেষত সম্পাদন পরিবেশ বিবেচনা করে সমবর্তী সিস্টেম যাচাইকরণে। যদিও কিছু সীমাবদ্ধতা রয়েছে, তবে এর পদ্ধতি এবং আবিষ্কারগুলি সমবর্তী সিস্টেমের নির্ভরযোগ্যতা উন্নত করার জন্য গুরুত্বপূর্ণ মূল্য রাখে।