থ্রেড সুরক্ষা প্রমাণ করা সম্ভব?


9

ভেরিয়েবল এবং নির্দেশাবলী সমন্বিত একটি প্রোগ্রাম দেওয়া হয়েছে যা এই ভেরিয়েবলগুলিকে সংশোধন করে এবং একটি সিঙ্ক্রোনাইজেশন আদিম (একটি মনিটর, মিটেক্স, জাভার সিঙ্ক্রোনাইজড বা সি # এর লক), এমন কোনও প্রোগ্রামটি থ্রেড নিরাপদ কিনা তা প্রমাণ করা সম্ভব?

থ্রেড সুরক্ষা বা রেসিং শর্তের মতো জিনিসগুলি বর্ণনা করার জন্য কি কোনও আনুষ্ঠানিক মডেল রয়েছে?


2
হ্যাঁ, তবে বাস্তব-বিশ্বের ভাষাগুলি গাধাটির জন্য ব্যথা হতে পারে কারণ তাদের সহজাত শব্দার্থবিদ্যা সর্বদা সুসংজ্ঞায়িত / স্থির হয় না। এছাড়াও, প্রতিটি মডেল সবকিছুই স্থির করে না। এটি একটি বিস্তৃত ক্ষেত্র; গুগল "কনকুরન્સી তত্ত্ব" একটি ধারণা পেতে impression বিশেষত, পেট্রি জালগুলির সাথে জড়িত একটি সমৃদ্ধ তত্ত্ব রয়েছে।
রাফেল

উত্তর:


9

কোনও প্রোগ্রাম "থ্রেড নিরাপদ" প্রমাণ করা শক্ত। তবে, "ডেটা রেস" শব্দটিটি দৃ concrete় ও আনুষ্ঠানিকভাবে সংজ্ঞায়িত করা সম্ভব। এবং এটি নির্ধারণ করা সম্ভব যে কোনও প্রোগ্রামের নির্দিষ্ট রানের এক্সিকিউশন ট্রেসটি ট্রেসের আকারের সাথে সমানুপাতিক সময়ে ডেটা রেস করে বা না করে। এই ধরণের বিশ্লেষণটি কমপক্ষে 1988 এ ফিরে আসে: বার্টন পি। মিলার, জং-দেওক চোই, "সমান্তরাল প্রোগ্রামগুলির দক্ষ ডিবাগিংয়ের জন্য একটি প্রক্রিয়া", কনফ। অগ্রগতি। ল্যাঙ। Dsgn। এবং ইমপ্লিট। (PLDI-1988): 135-144

একটি ফাঁসি কার্যকর করার পরে একটি ট্রেডের ইভেন্টের মধ্যে আংশিক অর্ডার হওয়ার আগে আমরা প্রথমে একটি সংঘটিত সংজ্ঞা প্রদান করি । দুটি ঘটনা দেওয়া হয়েছেএকটি এবং যে একই থ্রেড তখন ঘটে একটি< অথবা <একটি। (একই থ্রেডের ইভেন্টগুলি প্রোগ্রামিং ভাষার ক্রমগত শব্দার্থক দ্বারা প্রদত্ত মোট ক্রম গঠন করে)) সুসংগত ইভেন্টগুলি (এগুলি মিউটেক্স অর্জন এবং প্রকাশ হতে পারে, উদাহরণস্বরূপ), আংশিক ক্রমের আগে একটি অতিরিক্ত আন্ত-থ্রেড ঘটে। (যদি থ্রেডএস একটি মিটেক্স এবং পরে থ্রেড প্রকাশ করে টি সেই মুটেক্সটি অর্জন করে আমরা বলি যে মুক্তি পাওয়ার আগেই অর্জনের আগে ঘটে))

তারপরে দুটি ডেটা অ্যাক্সেস দেওয়া হয়েছে ( সিঙ্ক্রোনাইজেশন ভেরিয়েবল নয় এমন ভেরিয়েবলগুলিকে পড়া বা লেখার জন্য )একটি এবং যে একই মেমরি অবস্থান, কিন্তু বিভিন্ন থ্রেড এবং যেখানে হয় একটি অথবা একটি লিখন অপারেশন যা আমরা বলি যে এর মধ্যে একটি ডেটা-রেস রয়েছে একটি এবং যদি না হয় একটি< না <একটি

সি ++ 11 মান একটি ভাল উদাহরণ। (অনলাইনে উপলভ্য খসড়া চশমাগুলিতে প্রাসঙ্গিক বিভাগটি 1.10।) সি ++ 11 সিঙ্ক্রোনাইজেশন অবজেক্টের (মিটেক্সেস এবং কোনও atomic<>ধরণের সাথে ঘোষিত ভেরিয়েবল ) এবং অন্যান্য সমস্ত ডেটার মধ্যে পার্থক্য করে। সি ++ ১১ টি অনুমানে বলা হয়েছে যে প্রোগ্রামারটি বহুবিধ প্রোগ্রামের একটি ট্রেসটিতে ডেটা অ্যাক্সেস সম্পর্কে যুক্তি দেখাতে পারে যেমন যদি ডেটা অ্যাক্সেসগুলি সমস্ত ডেটা রেস মুক্ত থাকে তবে এটি ক্রমান্বয়ে সামঞ্জস্যপূর্ণ ছিল।

হেলগ্রিন্ড সরঞ্জাম (ভালগ্রিন্ডের অংশ) বিভিন্ন ধরণের বাণিজ্যিক সরঞ্জাম (যেমন, ইন্টেল ইন্সপেক্টর এক্স, এক্স।) ভিত্তিতে ডেটা-রেসড সনাক্তকরণের আগে এই ধরণের ঘটনাকে সম্পাদন করে modern অবজেক্ট। আমি মনে করি ডেটা-রেস সনাক্তকরণের জন্য ভেক্টর ক্লকগুলি ব্যবহারের এই কৌশলটি মিশিগেল রনসাইয়ের নেতৃত্ব দিয়েছিল; কোয়েন ডি বোসচেয়ার: "পুনরায় খেলুন: একটি সম্পূর্ণ সমন্বিত ব্যবহারিক রেকর্ড / রিপ্লে সিস্টেম", এসিএম ট্রান্স। Comput। Syst। 17 (2): 133-152, 1999


6

বাস্তব দিক থেকে, একটি যাচাইকরণ সিস্টেম ভিসিসি রয়েছে যা সি প্রোগ্রামগুলির থ্রেড সুরক্ষা আনুষ্ঠানিকভাবে প্রমাণ করতে ব্যবহার করা যেতে পারে।

এটি ওয়েব সাইট থেকে একটি উদ্ধৃতি:

ভিসিসি সমঝোতা সমর্থন করে - আপনি মোটা দানাযুক্ত এবং সূক্ষ্ম দানাযুক্ত উভয় সম্মতিযুক্ত প্রোগ্রামগুলি যাচাই করতে আপনি ভিসিসি ব্যবহার করতে পারেন। এমনকি আপনি এটিকে আপনার একত্রীকরণ নিয়ন্ত্রণ আদিমগুলি যাচাই করতে ব্যবহার করতে পারেন। কোনও ফাংশন যাচাই করা সুস্পষ্টভাবে কোনও সুসংগত পরিবেশে এর থ্রেড সুরক্ষার গ্যারান্টি দেয় যা এর কার্যকারিতা এবং ডেটা স্ট্রাকচারের চুক্তিকে সম্মান করে।


2
এটা কিভাবে কাজ করে? অন্তর্নিহিত আনুষ্ঠানিক মডেল কি? নোট করুন যে ওপি (কেবল) কোনও সরঞ্জাম চাইবে না!
রাফেল

1

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

অন্য দুটি ফ্রেমওয়ার্ক যা ডিজাইনের নিদর্শনগুলির মাধ্যমে সমান্তরালতার নির্ভুলতার উন্নতি করার চেষ্টা করে এবং যার বেশিরভাগ মানক / জানা অ্যালগরিদম / নকশার নিদর্শন রয়েছে এই উদ্দেশ্যে:


1
এটি ভাল (প্রোগ্রামিং) পরামর্শ হতে পারে তবে এটি (সিএস) প্রশ্নের মোটেই উত্তর দেয় না।
রাফেল

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