আমি দুটি ধারণার সাথে মোটামুটি আরামদায়ক এসেছি, তবে সেগুলি সম্পর্কে আমার কাছে পরিষ্কার কিছু নয়।
কয়েকটি উত্তর পড়ার পরে, আমি মনে করি পার্থক্যটি বর্ণনা করার জন্য আমার একটি সঠিক এবং সহায়ক রূপক রয়েছে।
আপনি যদি নিজের স্বতন্ত্র কোডের লাইনগুলি পৃথক হিসাবে মনে করেন তবে কার্ড খেলেন (আমি কীভাবে পুরাতন-স্কুল পাঞ্চ কার্ডগুলি কাজ করে তা ব্যাখ্যা করছি তবে আমাকে থামান), তবে প্রতিটি পৃথক পদ্ধতির লিখিত জন্য, আপনার কাছে কার্ডের একটি অনন্য স্ট্যাক থাকবে (না অনুলিপি করুন এবং পেস্ট করুন!) এবং রান কোডটি যখন সাধারণভাবে হয় এবং সাধারণভাবে অ্যাসিঙ্ক্রোনিকভাবে আপনি কী যত্ন না করেন তার উপর নির্ভর করে তার মধ্যে পার্থক্য।
আপনি যখন কোডটি চালান, আপনি প্রসেসরে যাওয়ার জন্য আপনি ওএসকে একক ক্রিয়াকলাপের (যা আপনার সংকলক বা দোভাষী আপনার "উচ্চতর" স্তর কোডটি ভেঙে দিয়েছেন) প্রসেসরে পৌঁছে দেবেন। একটি প্রসেসরের সাথে, কোডের একটি মাত্র লাইন যে কোনও সময় কার্যকর করা যেতে পারে। সুতরাং, একই সাথে একাধিক প্রক্রিয়া চালানোর বিভ্রমটি সম্পাদন করার জন্য, ওএস এমন একটি কৌশল ব্যবহার করে যাতে এটি প্রসেসরকে একটি সময় একটি প্রদত্ত প্রক্রিয়া থেকে কেবল কয়েক লাইন প্রেরণ করে, সমস্ত প্রসেসের মধ্যে পরিবর্তন করে এটি কীভাবে দেখায় সেই অনুসারে মাপসই করা হবে। ফলাফলটি হ'ল একাধিক প্রক্রিয়া যা শেষ সময়ে একই ব্যবহারকারীর কাছে অগ্রগতি দেখায়।
আমাদের রূপকের জন্য, সম্পর্কটি হ'ল প্রসেসরে প্রেরণের আগে ওএস সর্বদা কার্ডগুলি পরিবর্তন করে। আপনার কার্ডের স্ট্যাক যদি অন্য স্ট্যাকের উপর নির্ভর করে না, আপনি লক্ষ্য করবেন না যে অন্য স্ট্যাক সক্রিয় হওয়ার সময় আপনার স্ট্যাকটি নির্বাচন করা বন্ধ হয়ে গেছে। সুতরাং আপনি যদি যত্ন না, এটা কোন ব্যাপার না।
তবে, যদি আপনি যত্ন নেন (যেমন, একাধিক প্রক্রিয়া রয়েছে - বা কার্ডের স্তুপ - যা একে অপরের উপর নির্ভর করে), তবে ওএসের বদলানো আপনার ফলাফলগুলি স্ক্রু করবে।
অ্যাসিক্রোনাস কোড লেখার জন্য আদেশটি কী শেষ হয় তা নির্বিশেষে মৃত্যুদন্ড কার্যকর করার ক্রমের মধ্যে নির্ভরতাগুলি পরিচালনা করা দরকার। এই কারণেই "কল-ব্যাক" এর মতো নির্মাণগুলি ব্যবহৃত হয়। তারা প্রসেসরকে বলে, "পরবর্তী কাজটি হ'ল আমরা যা করলাম তা অন্য স্ট্যাককে জানান"। এই জাতীয় সরঞ্জামগুলি ব্যবহার করে, আপনি আশ্বস্ত হতে পারেন যে ওএসকে এর আরও কোনও নির্দেশিকা চালানোর অনুমতি দেওয়ার আগে অন্য স্ট্যাকটি বিজ্ঞপ্তি পেয়েছে। ("যদি বলা হয়_ব্যাক == মিথ্যা: প্রেরণ করুন (no_operation)" - এটি বাস্তবায়িত হয় কীভাবে এটি নিশ্চিত কিনা তা নিশ্চিত নন তবে যৌক্তিকভাবে আমি মনে করি এটি ধারাবাহিক consistent)
সমান্তরাল প্রক্রিয়াগুলির জন্য, পার্থক্যটি হ'ল আপনার কাছে দুটি স্ট্যাক রয়েছে যা একে অপরের যত্ন নেয় না এবং দুটি শ্রমিক তাদের প্রক্রিয়া করার জন্য। দিন শেষে, আপনাকে দুটি স্ট্যাকের ফলাফলগুলি একত্রিত করার প্রয়োজন হতে পারে যা পরে সংলগ্নতার বিষয় হতে পারে তবে মৃত্যুদন্ড কার্যকর করার জন্য, আপনাকে আবার পাত্তা দেবে না।
এটি সাহায্য করে কিনা তা নিশ্চিত নয় তবে, আমি সর্বদা একাধিক ব্যাখ্যা সহায়ক বলে মনে করি। এছাড়াও, নোট করুন যে অ্যাসিনক্রোনাস এক্সিকিউশনটি কোনও পৃথক কম্পিউটার এবং এর প্রসেসরের মধ্যে সীমাবদ্ধ নয়। সাধারণভাবে বলতে গেলে এটি সময়ের সাথে সম্পর্কিত হয় বা আরও সাধারণভাবে বলা হয়) ইভেন্টগুলির অর্ডার দেয়। সুতরাং আপনি যদি নির্ভরশীল স্ট্যাক এটিকে নেটওয়ার্ক নোড এক্স এবং এর সংযুক্ত স্ট্যাক বি ওয়াইতে প্রেরণ করেন তবে সঠিক অ্যাসিনক্রোনাস কোডটি পরিস্থিতিটির জন্য অ্যাকাউন্টে সক্ষম হতে হবে যেন এটি আপনার ল্যাপটপে স্থানীয়ভাবে চলছে was