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