এটি আপনি যে ধরণের অ্যাপ্লিকেশনটি চালান তার উপর নির্ভর করে। যদি আপনি এমন অ্যাপ্লিকেশন পেয়ে থাকেন যা খুব ট্রিগার-হ্যাপি ডাব্লুআরটি সিস্টেমে থাকে তবে আপনি উচ্চ পরিমাণে প্রসঙ্গের স্যুইচিংয়ের আশা করতে পারেন। যদি আপনার বেশিরভাগ অ্যাপ্লিকেশনগুলি অলস অবস্থায় থাকে এবং কেবল কোনও সকেটে জিনিস হয় এমন সময়ে জেগে থাকে, আপনি কম প্রসঙ্গে স্যুইচ রেট দেখার আশা করতে পারেন।
সিস্টেম কল
সিস্টেম কলগুলি তাদের নিজস্ব প্রকৃতির দ্বারা প্রসঙ্গের স্যুইচগুলির কারণ হয়। যখন কোনও প্রক্রিয়া কোনও সিস্টেম কল করে, এটি মূলত কার্নেলটিকে সময় এবং মেমরির বর্তমান পয়েন্টটি গ্রহণ করার জন্য বলে যে প্রক্রিয়াটি করার সুযোগ পাচ্ছে না, এবং সম্পন্ন হওয়ার পরে একই জায়গায় ফিরে আসবে।
আমরা যখন লিনাক্স থেকে লেখার (2) সিস্কেল এর সংজ্ঞাটি দেখি তখন এটি খুব স্পষ্ট হয়:
NAME এর
লিখুন - একটি ফাইল বর্ণনাকারী লিখুন
সংক্ষিপ্তসার
# অন্তর্ভুক্ত
ssize_t Writ (int fd, const void * buf, আকার_t গণনা);
বর্ণনা
লিখুন () ফাইলটিতে বাফার পয়েন্ট বুফ থেকে বাইটস গণনা করতে লিখুন
ফাইল বিবরণী এফডি দ্বারা উল্লেখ করা হয়। [..]
ফেরত মূল্য
সাফল্যে, লিখিত বাইট সংখ্যা ফিরে আসে (শূন্য নির্দেশ করে)
কিছুই লেখা হয়নি)। ত্রুটিতে, -1 ফিরিয়ে দেওয়া হয়েছে, এবং এর্নো সেট করা আছে
উপযুক্তভাবে।
[..]
এটি মূলত কার্নেলটিকে প্রক্রিয়াটি থেকে অপারেশন গ্রহণ করতে, count
বাইটগুলিতে সরে যেতে , বর্তমান প্রক্রিয়াটির *buf
বর্ণনাকারী ফাইল করার জন্য নির্দেশিত মেমরি ঠিকানা থেকে শুরু করে fd
প্রক্রিয়াটিতে ফিরে ফিরে আসে এবং এটি কীভাবে চলে যায় তা তাকে বলে।
এটি দেখানোর একটি দুর্দান্ত উদাহরণ হ'ল ভালভ উত্স ভিত্তিক গেমস, hlds এর ডেডিকেটেড গেম সার্ভার । http://nopaste.narf.at/f1b22dbc9 গেম সার্ভারের কোনও একক দৃষ্টিকোণ দ্বারা সম্পন্ন এক সেকেন্ডের মূল্যবান সিস্টেমে দেখায় যার কোনও খেলোয়াড় নেই। এই প্রসেসটি ব্যয়বহুল হওয়ার জন্য আপনাকে কেবল একটি অনুভূতি দেওয়ার জন্য একটি Xeon X3220 (2.4Ghz) এ প্রায় 3% সিপিইউ সময় নেয়।
একাধিক-কার্য
কনটেক্সট স্যুইচিংয়ের আরেকটি উত্স হতে পারে এমন প্রক্রিয়াগুলি যা সিস্কলগুলি না করে, তবে অন্য প্রক্রিয়াগুলির জন্য জায়গা তৈরি করার জন্য একটি প্রদত্ত সিপিইউ বন্ধ করে দেওয়া দরকার।
এটি কল্পনা করার একটি দুর্দান্ত উপায় হ'ল সিপুবার্ন । সিপবার্ন নিজে নিজে কোনও স্কাইককল করে না, এটি কেবল নিজের মেমরির উপরে পুনরাবৃত্তি করে, সুতরাং এটি কোনও প্রসঙ্গে স্যুইচিংয়ের কারণ হবে না।
একটি অলস মেশিন নিন, vmstat শুরু করুন এবং তারপরে সিস্টেমের প্রতিটি সিপিইউ কোরের জন্য বার্ন এমএমএক্স (বা সিপবার্ন প্যাকেজ থেকে কোনও পৃথক পরীক্ষা) চালান। ততক্ষণে আপনার সম্পূর্ণ সিস্টেমের ব্যবহার থাকতে হবে তবে খুব কমই প্রসঙ্গের পরিবর্তন বেড়ে গেছে। তারপরে আরও কয়েকটি প্রক্রিয়া শুরু করার চেষ্টা করুন। আপনি দেখতে পাবেন যে প্রসেসগুলি সিপিইউ কোরগুলির সাথে প্রতিযোগিতা শুরু করার সাথে সাথে প্রসঙ্গের স্যুইচিং হার বৃদ্ধি পায়। স্যুইচিংয়ের পরিমাণ আপনার কার্নেলের প্রসেস / কোর অনুপাত এবং মাল্টিটাস্কিং রেজোলিউশনের উপর নির্ভর করে।
আরও পড়া
linfo.org প্রসঙ্গের স্যুইচ এবং সিস্টেম কলগুলি কী তা নিয়ে একটি দুর্দান্ত লিখনআপ রয়েছে । উইকিপিডিয়ায় জেনেরিক তথ্য এবং সিস্টেম কলগুলিতে একটি দুর্দান্ত লিঙ্ক সংগ্রহ রয়েছে।