সমবায় নির্ধারিত সময়সূচিগুলি যখন আই / ও অপারেশন করে তখন প্রক্রিয়াগুলি স্থগিত করে?


19

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

["আই / ও" ব্লকে "এর সাথে প্রতিস্থাপনের জন্য সম্পাদিত" একটি আই / ও অনুরোধ সম্পাদন করে যা তাত্ক্ষণিকভাবে সন্তুষ্ট হতে পারে না। "]


এই প্রশ্নগুলি অপারেটিং সিস্টেমগুলির সুনির্দিষ্ট জিজ্ঞাসা করে বলে মনে হচ্ছে, যা এখানে অফপটিক হবে। যদি এটি না হয় তবে দয়া করে আপনার প্রশ্নটিকে আরও বিমূর্ত আকারে উত্তর দিন।
রাফেল

3
আমি যখন এটি ইউনিক্স গ্রুপে পোস্ট করি তখন আমাকে বলা হয়েছিল যে এটি অনুপযুক্ত এবং এখানেই ছিল, যার সাথে আমি একমত হয়েছিলাম, কারণ এটি একটি নির্দিষ্ট অপারেটিং সিস্টেম সম্পর্কে নয়। আমি মনে করি এটি শাখার পূর্বাভাস সম্পর্কে প্রশ্নের সাথে তুলনীয়। সম্প্রদায় কী কী এবং এখানে উপযুক্ত নয় সে সম্পর্কে কী সিদ্ধান্ত নেয় তা আকর্ষণীয় হবে।
এলেন স্পার্টাস

উত্তর:


15

সত্যিকারের "সমবায়" সেটিংয়ে এবং কোনও হার্ডওয়্যার সুরক্ষা না থাকলে কোনও প্রক্রিয়া অবশ্যই I / O- এ অবরুদ্ধ হতে পারে এবং আই / ও সম্পন্ন না হওয়া অবধি নিয়ন্ত্রণ ত্যাগ করতে পারে না (বা কখনই নিয়ন্ত্রণ ত্যাগ করতে পারে না)। উদাহরণস্বরূপ, উইন্ডোজ ৩.১ এইভাবে ছিল: যদি কোনও একক ব্যবহারকারী প্রক্রিয়া পুরো কম্পিউটারটি নিয়ন্ত্রণ করতে এবং অন্য কোনও কিছুকে চলমান থেকে বাধা দিতে চায়, তবে এটি হতে পারে।

কিন্তু মাল্টিটাস্কিং সহ এমন একটি সিস্টেমে আপনি আশা করতে পারেন যে সিস্টেম এপিআই I / O কমান্ডগুলি প্রসেসরের কল করার পরে তাদের নিয়ন্ত্রণ ত্যাগ করবে। সুতরাং যখন কোনও চলমান প্রক্রিয়া আই / ও-তে অবরুদ্ধ হয়, ধরে নেওয়া হয় যে প্রক্রিয়াটি সাধারণ সিস্টেম এপিআই ব্যবহার করে, অন্যান্য প্রক্রিয়াগুলি আই / ও সম্পূর্ণ না হওয়া পর্যন্ত চলার অনুমতি দেওয়া হবে এবং অবশেষে আই / ও শেষ হয়ে গেলে মূল প্রক্রিয়াটি আবার শুরু হবে । অন্য কথায়, একটি অবরুদ্ধ আই / ও ফাংশনকে কল করা একটি উপায় যা একটি সমবায় সিস্টেমের কোনও প্রক্রিয়া স্বেচ্ছায় নিজেকে স্থগিত করতে পারে।


11

যদি কোনও চলমান প্রক্রিয়া আই / ও-তে অবরুদ্ধ থাকে

আইও-তে ব্লক করা আপনার প্রক্রিয়া স্থগিত করার সমতুল্য। লিনাক্স কার্নেলের প্রসঙ্গে, কিছু আইও সিস্টেম কল কার্যকর করা যেমন read()একটি আইও sysenterবা বিঘ্নিত হ্যান্ডলারকে এই আইও দেখাশোনা করতে ট্রিগার করবে, do_sys_read()শেষ পর্যন্ত কল করবে । এখানে, যদি বর্তমান অনুরোধটি তাত্ক্ষণিকভাবে সন্তুষ্ট না করা যায়, তবে ফাংশনটি কল করে sched()যা অন্য কোনও প্রক্রিয়া সম্পাদন করতে পারে।

একটি সমবায় সিস্টেমের প্রসঙ্গে, আমি প্রত্যাশা করব যে আপনি যখন কোনও আইও কারণে কোনও সিস্টেম কল করেন, যদি অনুরোধটি সন্তুষ্ট না করা যায় তবে কার্নেল অন্য কোনও কাজ বাছাই করে এবং এটি সম্পাদন করে। এই দস্তাবেজটি কিছু ব্যাকগ্রাউন্ড সরবরাহ করে - মূলত আপনি যদি আইও-তে অপেক্ষা করেন তবে আপনাকে এই আইওর জন্য অপেক্ষা করে চিরতরে ঝুলানো যেতে পারে। কো-অপারেটিভ শিডিয়ুলিংয়ের ধারণাটি যে আপনি sched()সিপিইউ-নিবিড় কাজগুলি করে যদি আপনি প্রায়শই কল করেন বা সমতুল্য ত্যাগ-দ্য সিপিইউ পদ্ধতিটি ত্যাগ করেন।

কার্নেল-মোড বিবেচনাগুলি আরও আকর্ষণীয় হয়ে উঠেছে। আর্কিটেকচারে যেখানে এগুলি এম্বেড হওয়া প্ল্যাটফর্মগুলির মতো উপলভ্য রয়েছে সেখানে বাধা হ্যান্ডলারগুলি এখনও হার্ডওয়্যার বা সফ্টওয়্যার বিঘ্নের প্রতিক্রিয়াতে অনুরোধ করা হবে। বিঘ্নিত হ্যান্ডলিং নিষ্ক্রিয় করা সাধারণত বাস্তবায়নের ভিত্তিতে সম্ভব হয় তবে এতেও ত্রুটি রয়েছে।


4

সমবায় cooperative multitaskingশিডিয়ুলিং (অগ্রাধিকার সহ ) মডেলটিতে, কোনও অর্থে সিডিউলারের ধারণা নেই যে প্রক্রিয়াটি কত দিন চালায় তার অপারেটিং সিস্টেমের কোনও নিয়ন্ত্রণ নেই।

সঠিকভাবে প্রোগ্রাম করা একটি অ্যাপ্লিকেশন স্বেচ্ছায় আই / ও-তে সিপিইউ ছেড়ে দেবে। তবে, খারাপভাবে লিখিত অ্যাপ্লিকেশনগুলি কেবলমাত্র I / O এর জন্য অপেক্ষা করতে পারে, যার ফলে অন্যান্য প্রক্রিয়াগুলিতে অবরুদ্ধ থাকে।

পিএস: এই পদ্ধতির পরে বেশিরভাগ ওএস পিরিপ্টিভ-শিডিয়ুলিংয়ের (যার বাহ্যিক শিডিয়ুলার ছিল) পক্ষে ছিল এবং এখন আমাদের কাছে বিভিন্ন ওএস দ্বারা ব্যবহৃত বিভিন্ন ধরণের শিডিউলিং অ্যালগরিদম রয়েছে।

সম্পাদনা: আমার উত্তরটি পূর্বরূপে (বছর আগে: পি) বর্ণিত সময়সূচির ভিত্তিতে ছিল। গিলস মন্তব্য হিসাবে কিছু সিস্টেম এখনও সমবায় সময়সূচী ব্যবহার করে। এবং একটি সময়সূচী আছে। আমি নিশ্চিত না যে এই সিস্টেমগুলি সিওএসকে তার খাঁটি এবং মূল আকারে ব্যবহার করবে কিনা।


2
অনেক এম্বেড থাকা ওএসের (আরটিওএস সহ তবে সীমাবদ্ধ নয়) সমবায় সূচি রয়েছে। এটির কোনও নির্ধারক নেই তা বলার অপেক্ষা রাখে না; শিডিয়ুলার হল কোড যা নির্ধারণ করে যে পরবর্তী কোন থ্রেডটি চালানো হবে। প্রিম্পশন চলমান কার্যের অনুরোধের বিপরীতে সিডিউলার স্বয়ংক্রিয়ভাবে প্রবেশ করা সম্পর্কে।
গিলস 'খারাপ হয়ে যাওয়া বন্ধ করুন'

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

4

সমবায় মাল্টিটাস্কিং সূচিত করে যে একটি নির্বাহকারী প্রসঙ্গটি অবশ্যই স্পষ্টভাবে তফসিলকারীটির নিয়ন্ত্রণ ছেড়ে দিতে পারে, এবং যদি এটি ইচ্ছা করে তবে প্রসঙ্গের সুইচটিকে ঘটতে বাধা দিতে পারে।

প্রসেসরের বরাদ্দের ন্যায্যতা বাড়াতে বেশিরভাগ বাস্তবায়নগুলি কোনও সিস্টেম কলের জন্য স্পষ্টভাবে একটি প্রসঙ্গ সুইচ সঞ্চালন করে যা তাৎক্ষণিকভাবে ফিরে আসে না এবং প্রায়শই তা করেও।

সাধারণত ব্যর্থ প্রক্রিয়াগুলি (বা ইচ্ছাকৃতভাবে সিস্টেমের বাকী অংশটিকে পরিষেবা অস্বীকার করা) ঘন ঘন টাস্ক-স্যুইচিং প্রতিরোধ করা সম্ভব।

গিলিসের ব্যাখ্যা অনুসারে প্রাক-সমাপ্তি হ'ল সিস্টেমের আর্কিটেকচারের সীমাবদ্ধতা যা সক্রিয় কার্যের সময়োচিত বাধা এবং বাধ্যতামূলক প্রসঙ্গের সুইচগুলিকে বাধা দেয়।

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