উত্তর:
প্রিমিপটিভ কার্নেলে, কার্নেল মোডে চলমান একটি প্রক্রিয়া কার্নেল ফাংশনের মাঝখানে থাকা অবস্থায় অন্য প্রক্রিয়া দ্বারা প্রতিস্থাপন করা যেতে পারে।
এটি কেবল কার্নেল মোডে চলমান প্রসেসগুলির ক্ষেত্রে প্রযোজ্য, ব্যবহারকারী মোডে একটি সিপিইউ এক্সিকিউটিভ প্রক্রিয়াগুলি "নিষ্ক্রিয়" হিসাবে বিবেচিত হয়। যদি কোনও ব্যবহারকারী মোড প্রক্রিয়া কার্নেল থেকে কোনও পরিষেবার জন্য অনুরোধ করতে চায় তবে তাকে একটি ব্যতিক্রম প্রকাশ করতে হবে যা কার্নেল পরিচালনা করতে পারে।
উদাহরণ হিসাবে:
প্রক্রিয়া A
একটি ব্যতিক্রম হ্যান্ডলার কার্যকর করে, B
আইআরকিউ অনুরোধের মাধ্যমে প্রক্রিয়া জাগ্রত হয়, কার্নেল প্রক্রিয়াটি (একটি জোরপূর্বক প্রক্রিয়া স্যুইচ) A
দিয়ে প্রতিস্থাপন করে B
। প্রক্রিয়া A
অসম্পূর্ণ বাকি আছে। প্রক্রিয়াটি A
সিপিইউ সময় পায় কিনা তা শিডিয়ুলার পরে সিদ্ধান্ত নেয় ।
একটি অপ্রতিরোধক কার্নেলে, প্রক্রিয়াটি A
শেষ না হওয়া অবধি বা স্বেচ্ছায় অন্য প্রক্রিয়াগুলি তাকে বাধা দেওয়ার (সিদ্ধান্তযুক্ত প্রক্রিয়া স্যুইচ) সিদ্ধান্ত নেওয়ার আগে পর্যন্ত সমস্ত প্রসেসরের সময় ব্যবহার করত।
আজকের লিনাক্স ভিত্তিক অপারেটিং সিস্টেমগুলিতে সাধারণত সম্পূর্ণ প্রিমিপটিভ কার্নেল অন্তর্ভুক্ত থাকে না, এখনও সমালোচনামূলক কাজ রয়েছে যা বাধা ছাড়াই চালাতে হয়। সুতরাং আমি মনে করি আপনি এটিকে একটি "নির্বাচিত প্রিমিপটিভ কার্নেল" বলতে পারেন।
এগুলি ছাড়াও লিনাক্স কার্নেলটি (প্রায়) সম্পূর্ণরূপে প্রাক্প্রটিভ করার পদ্ধতি রয়েছে।
পূর্বশক্তিটি -> অপারেটিং সিস্টেমের উচ্চতর অগ্রাধিকারের কার্যের পক্ষে একটি নির্ধারিত কার্যটি প্রিম্পট বা বন্ধ করার ক্ষমতা। সময়সূচী প্রক্রিয়া বা I / O সময়সূচী ইত্যাদির মধ্যে একটি হতে পারে তবে সীমাবদ্ধ নয় may
লিনাক্সের অধীনে, ব্যবহারকারী-স্পেস প্রোগ্রামগুলি সর্বদা প্রিম্পেটিবল থাকে: নিয়মিত ক্লক টিকটি ব্যবহার করে কার্নেলটি অন্যান্য থ্রেডে স্যুইচ করতে ব্যবহারকারী-স্পেস প্রোগ্রামগুলিকে বাধা দেয়। সুতরাং, কার্নেল ব্যবহারকারী-স্পেস প্রোগ্রামগুলির প্রসেসরটি স্পষ্টভাবে প্রকাশের জন্য অপেক্ষা করে না (যা সমবায় মাল্টিটাস্কিংয়ের ক্ষেত্রে)। এর অর্থ হ'ল কোনও ব্যবহারকারী-স্পেস প্রোগ্রামের একটি অসীম লুপ সিস্টেমটিকে অবরুদ্ধ করতে পারে না।
তবে, ২.6 কার্নেল না হওয়া পর্যন্ত কার্নেলটি নিজেই প্রাইমটিবল ছিল না: কার্নেলের মধ্যে একটি থ্রেড প্রবেশ করা মাত্রই এটি অন্য থ্রেডকে চালিত করতে পারে না। যাইহোক, কার্নেলে প্রিম্পশনটির এই অনুপস্থিতি বিলম্ব এবং স্কেলিবিলিটি সম্পর্কিত বেশ কয়েকটি সমস্যা সৃষ্টি করেছিল। সুতরাং, কার্নেল প্রিম্পশনটি ২.6 কার্নেলের মধ্যে প্রবর্তন করা হয়েছে এবং কেউ এটি সিএনএফআইজিপিআরইএমপিটি বিকল্পটি ব্যবহার করে সক্ষম বা অক্ষম করতে পারে। যদি CONFIG_PREEMPT সক্ষম করা থাকে, তবে কোড স্থানীয় বিঘ্ন অক্ষম না করে ব্যতীত কার্নেল কোডটি সর্বত্র প্রম্পট করা যেতে পারে। কোডটিতে একটি অসীম লুপ পুরোপুরি আর ব্লক করতে পারে না। যদি CONFIG_PREEMPT অক্ষম থাকে তবে ২.৪ টি আচরণ পুনরুদ্ধার করা হয়।
পুনঃবিযুক্ত এবং এর থেকে ফর্ম্যাট করা: http://www.linuxquestions.org/questions/linux-general-1/pre-emptive-vs-non-pre-emptive-kernel-582437/
একটি প্রিম্পিটিভ কার্নেল একটি প্রসেসকে কার্নেল মোডে চলাকালীন প্রিম্পেটিং করার অনুমতি দেয়। একটি ননপ্রিমিটিভ কার্নেল কার্নেল মোডেটোতে চলমান প্রক্রিয়াটিকে প্রিম্প্ট করার অনুমতি দেয় না; কার্নেল-মোড প্রক্রিয়া চলবে যতক্ষণ না এটি কার্নেল মোড, ব্লকগুলি বা স্বেচ্ছায় সিপিইউয়ের নিয়ন্ত্রণ না দেয় ex স্পষ্টতই, একটি ননপ্রিমিটিভ কার্নেল মূলত কার্নেলের ডেটা স্ট্রাকচারের রেস শর্ত থেকে মুক্ত, কারণ একসময় কার্নেলের মধ্যে কেবল একটি প্রক্রিয়া সক্রিয় থাকে। প্রিমিটিভ কার্নেলগুলি সম্পর্কে আমরা একই কথা বলতে পারি না, তাই ভাগ করা কার্নেল ডেটা জাতিগত অবস্থা থেকে মুক্ত কিনা তা নিশ্চিত করার জন্য তাদের অবশ্যই যত্ন সহকারে ডিজাইন করা উচিত। প্রিম্পিটিভ কার্নেলগুলি বিশেষত এসএমপি আর্কিটেকচারের জন্য নকশা করা কঠিন, কারণ এই পরিবেশে দুটি কার্নেল-মোড প্রক্রিয়া একই সাথে বিভিন্ন প্রসেসরের উপর চালানো সম্ভব। একটি প্রিম্পিটিভ কার্নেল রিয়েল-টাইম প্রোগ্রামিংয়ের জন্য আরও উপযুক্ত, কারন এটি রিয়েল-টাইম প্রক্রিয়াটিকে কার্নেলে বর্তমানে চলমান একটি প্রক্রিয়াটিকে ছাড়িয়ে দেবে। তদ্ব্যতীত, একটি প্রিপ্রিমটিভ কার্নেল আরও প্রতিক্রিয়াশীল হতে পারে যেহেতু প্রসেসরকে অপেক্ষার প্রক্রিয়া থেকে সরিয়ে দেওয়ার আগে কার্নেল-মোড প্রক্রিয়াটি নির্বিচারে দীর্ঘকাল ধরে চালিত হওয়ার ঝুঁকি কম থাকে। অবশ্যই, কার্নেল কোড ডিজাইন করে এই প্রভাবটি হ্রাস করা যায় যা এইভাবে আচরণ করে না। এই অধ্যায়টির পরে, আমরা অনুসন্ধান করেছি যে কীভাবে বিভিন্ন অপারেটিং সিস্টেমগুলি কার্নেলের মধ্যে প্রিম্পশন পরিচালনা করে। এই প্রভাবটি ব্যবহার করে না এমন কার্নেল কোড ডিজাইন করে এই প্রভাবকে হ্রাস করা যেতে পারে। এই অধ্যায়টির পরে, আমরা অনুসন্ধান করেছি যে কীভাবে বিভিন্ন অপারেটিং সিস্টেমগুলি কার্নেলের মধ্যে প্রিম্পশন পরিচালনা করে। এই প্রভাবটি ব্যবহার করে না এমন কার্নেল কোড ডিজাইন করে এই প্রভাবকে হ্রাস করা যেতে পারে। এই অধ্যায়টির পরে, আমরা অনুসন্ধান করেছি যে কীভাবে বিভিন্ন অপারেটিং সিস্টেমগুলি কার্নেলের মধ্যে প্রিম্পশন পরিচালনা করে।