Context switch
কন্টেক্সট সুইচ
সিপিউ শুধুমাত্র একটা থ্রেড চালাতে পারে কিন্তু বাস্তবে একটা সিপিউ অনেকগুলা প্রসেস চালাতে হয়। অনেকগুলা প্রসেস চালানোর জন্য সিপিউকে থ্রেড স্কেজিউলিং করতে হয়। মানে হচ্ছে
- একটা থ্রেড কে স্টপ করা
- সেই থ্রেডকে স্কেজিউল থেকে বাদ দেয়া
- অন্য থ্রেডকে স্কেজিউল যুক্ত করা
- এবং অন্য থ্রেডকে কে চালু করা
উপরের এই প্রসেসকে কন্টেক্সট সুইচ বলে
সমস্যা হচ্ছে সিপিউ এর জন্য ভিন্ন প্রসেস এর থ্রেডের কন্টেক্সট সুইচ ব্যায়বহুল অপারেশন। কারণ হচ্ছে প্রসেস কন্টেক্সট সুইচ এর জন্য
- প্রসেস ডাঁটা শেয়ার করে না
- পুরাণ থ্রেডের ডাঁটাকে মেমরি থেকে বাদ দিতে হয়
- মেমরিতে নতুন ডাঁটা মেমরিতে লোড করতে হয়
কিন্তু একটা প্রসেস এর মধ্যে যদি মাল্টি থ্রেডের মধ্যে কন্টেক্সট সুইচ করতে হয়, তাহলে তারা যেহেতু মেটাডাটা, কোড, হিপ শেয়ার করে তাই এটা অনেক সস্তা অপারেশন হয়।