Working set
ورکنگ سیٹ کمپیوٹر سائنس میں ایک تصور ہے جو میموری کی مقدار کی وضاحت کرتا ہے جو ایک مقررہ وقت کے وقفے میں ایک عمل کی ضرورت ہوتی ہے۔ تعریف پیٹر ڈیننگ (1968) "عمل کے وقفے کے دوران عمل کے ذریعے حوالہ کردہ معلومات کا مجموعہ ہونے کے لیے وقت پر کسی عمل کی معلومات کے کام کرنے والے سیٹ" کی وضاحت کرتا ہے۔ عام طور پر زیر بحث معلومات کی اکائیوں کو میموری پیجز سمجھا جاتا ہے۔ یہ تجویز کیا گیا ہے کہ یہ ان صفحات کے سیٹ کا تخمینہ ہے جن تک عمل مستقبل میں رسائی حاصل کرے گا (جیسے کہ اگلی بار یونٹوں کے دوران)، اور زیادہ خاص طور پر اس بات کا اشارہ ہونے کی تجویز کی گئی ہے کہ کون سے صفحات کو مین میموری میں رکھا جانا چاہیے تاکہ اس عمل کو انجام دینے میں زیادہ تر پیش رفت کی جا سکے۔ مین میموری میں کون سے صفحات رکھے جائیں اس کے انتخاب کا اثر (جو کہ معاون اسٹوریج میں پیج کیے جانے سے الگ ہے) اہم ہے: اگر کسی عمل کے بہت سے صفحات کو مین میموری میں رکھا جائے تو کسی بھی وقت کم دیگر عمل تیار ہو سکتے ہیں۔ اگر کسی عمل کے بہت کم صفحات کو مین میموری میں رکھا جاتا ہے، تو اس کے پیج فالٹ فریکوئنسی میں بہت اضافہ ہوتا ہے اور اس وقت سسٹم میں چلنے والے فعال (غیر معطل) عمل کی تعداد صفر تک پہنچ جاتی ہے۔ ورکنگ سیٹ ماڈل میں کہا گیا ہے کہ کوئی عمل رام میں ہو سکتا ہے اگر اور صرف اس صورت میں جب اس وقت استعمال ہونے والے تمام صفحات (اکثر حال ہی میں استعمال ہونے والے صفحات کے مطابق) رام میں ہو سکتے ہیں۔ ماڈل ایک آل یا نٹھنگ ماڈل ہے، جس کا مطلب ہے کہ اگر اسے استعمال کرنے کے لیے درکار صفحات میں اضافہ ہوتا ہے، اور رام میں کوئی گنجائش نہیں ہے، تو اس عمل کو میموری سے تبدیل کر دیا جاتا ہے تاکہ میموری کو دوسرے عمل کے استعمال کے لیے آزاد کیا جا سکے۔ اکثر بھاری بھرکم کمپیوٹر میں اتنے سارے عمل ہوتے ہیں کہ، اگر تمام عمل کو ایک شیڈولنگ ٹائم سلائس کے لیے چلانے کی اجازت دی جاتی ہے، تو وہ رام سے زیادہ صفحات کا حوالہ دیتے ہیں، جس کی وجہ سے کمپیوٹر "تھریش" ہوتا ہے۔ میموری سے کچھ عمل کو تبدیل کرنے سے، نتیجہ یہ ہوتا ہے کہ عمل-یہاں تک کہ وہ عمل جو میموری سے عارضی طور پر ہٹا دیے گئے تھے-بہت جلد ختم ہو جاتے ہیں اگر کمپیوٹر ان سب کو ایک ساتھ چلانے کی کوشش کرتا ہے۔ یہ عمل اس کے مقابلے میں بہت جلد ختم ہو جاتے ہیں اگر کمپیوٹر ایک وقت میں صرف ایک عمل کو مکمل کرنے کے لیے چلاتا ہے کیونکہ یہ دوسرے عمل کو چلانے اور اس وقت کے دوران ترقی کرنے کی اجازت دیتا ہے جب ایک عمل ہارڈ ڈرائیو یا کسی دوسرے عالمی وسائل پر انتظار کر رہا ہو۔ دوسرے لفظوں میں، ورکنگ سیٹ کی حکمت عملی ملٹی پروگرامنگ کی ڈگری کو زیادہ سے زیادہ رکھتے ہوئے تھراشنگ کو روکتی ہے۔ اس طرح یہ سی پی یو کے استعمال اور تھرو پٹ کو بہتر بناتا ہے۔ عمل درآمد ورکنگ سیٹ ماڈل کو نافذ کرنے میں اہم رکاوٹ ورکنگ سیٹ پر نظر رکھنا ہے۔ ورکنگ سیٹ ونڈو ایک حرکت پذیر ونڈو ہے۔ ہر میموری حوالہ پر ایک سرے پر ایک نیا حوالہ ظاہر ہوتا ہے اور سب سے قدیم حوالہ دوسرے سرے سے نکل جاتا ہے۔ ایک صفحہ ورکنگ سیٹ میں ہے اگر اسے ورکنگ سیٹ ونڈو میں حوالہ دیا گیا ہے۔ آخری k حوالہ شدہ صفحات کی فہرست رکھنے کے اوور ہیڈ سے بچنے کے لیے، ورکنگ سیٹ کو اکثر آخری حوالہ کے وقت t پر نظر رکھتے ہوئے نافذ کیا جاتا ہے، اور ورکنگ سیٹ کو ایک مخصوص مدت کے اندر حوالہ شدہ تمام صفحات سمجھا جاتا ہے۔ ورکنگ سیٹ پیج ریپلیسمنٹ الگورتھم نہیں ہے، لیکن پیج ریپلیسمنٹ الگورتھم کو صرف ان صفحات کو ہٹانے کے لیے ڈیزائن کیا جا سکتا ہے جو کسی خاص عمل کے لیے ورکنگ سیٹ میں نہیں ہیں۔ ایک مثال کلاک الگورتھم کا ایک ترمیم شدہ ورژن ہے جسے ڈبلیو ایس سی کلاک کہا جاتا ہے۔ متغیرات ورکنگ سیٹ کو کوڈ ورکنگ سیٹ اور ڈیٹا ورکنگ سیٹ میں تقسیم کیا جا سکتا ہے۔ یہ فرق اس وقت اہم ہوتا ہے جب کوڈ اور ڈیٹا میموری کی درجہ بندی کی متعلقہ سطح پر الگ ہوتے ہیں، گویا کہ کوئی بھی ورکنگ سیٹ درجہ بندی کی اس سطح پر فٹ نہیں ہوتا ہے، تھراشنگ ہوگی۔ کوڈ اور خود ڈیٹا کے علاوہ، ورچوئل میموری والے سسٹمز پر، عمل کو مؤثر طریقے سے آگے بڑھانے کے لیے ورکنگ سیٹ کے صفحات کے میموری میپ (ورچوئل میموری سے فزیکل میموری) اندراجات کو ٹرانسلیشن لک سائیڈ بفر (ٹی ایل بی) میں کیش کیا جانا چاہیے۔ یہ فرق موجود ہے کیونکہ کوڈ اور ڈیٹا کو چھوٹے بلاکس (کیش لائنز) میں کیش کیا جاتا ہے، پورے صفحات میں نہیں، بلکہ ایڈریس کی تلاش صفحہ کی سطح پر کی جاتی ہے۔ اس طرح اگر کوڈ اور ڈیٹا ورکنگ سیٹ کیش میں فٹ ہو جاتے ہیں، اگر ورکنگ سیٹ بہت سے صفحات میں تقسیم ہو جاتے ہیں، تو ورچوئل ایڈریس ورکنگ سیٹ TLB میں فٹ نہیں ہو سکتا ہے، جس کی وجہ سے TLB کو دھچکا لگتا ہے۔ دیگر محدود وسائل، خاص طور پر عمل کے لیے ورکنگ سیٹ کے اینالاگ موجود ہیں۔ اگر عمل کے ایک سیٹ کے لیے متعدد عمل کے درمیان بار بار تعامل کی ضرورت ہوتی ہے، تو اس میں ایک ایسا عمل ہوتا ہے جسے آگے بڑھنے کے لیے شیڈول کیا جانا چاہیے: اگر عمل بیک وقت شیڈول نہیں ہوتے ہیں-مثال کے طور پر، اگر دو عمل ہیں لیکن صرف ایک کور ہے جس پر انہیں انجام دینا ہے-تو عمل صرف ایک تعامل فی وقت کے ٹکڑے کی شرح سے آگے بڑھ سکتے ہیں۔ دیگر وسائل میں فائل ہینڈل یا نیٹ ورک ساکٹ شامل ہیں-مثال کے طور پر، ایک فائل کو دوسرے میں کاپی کرنا زیادہ تر دو فائل ہینڈلز کے ساتھ کیا جاتا ہے: ایک ان پٹ کے لیے، ایک آؤٹ پٹ کے لیے، اور اس طرح "فائل ہینڈل ورکنگ سیٹ" کا سائز دو ہوتا ہے۔ اگر صرف ایک فائل ہینڈل دستیاب ہے، تب بھی کاپی کی جا سکتی ہے، لیکن اس کے لیے ان پٹ کے لیے فائل ہینڈل حاصل کرنا، اس سے پڑھنا (جیسے بفر میں)، اسے جاری کرنا، پھر آؤٹ پٹ کے لیے فائل ہینڈل حاصل کرنا، اس پر لکھنا، اسے جاری کرنا، پھر ان پٹ فائل ہینڈل کو دوبارہ حاصل کرنا اور دہرانا ضروری ہے۔ اسی طرح ایک سرور کو بہت سے ساکٹوں کی ضرورت پڑ سکتی ہے، اور اگر یہ محدود ہے تو بار بار ساکٹوں کو جاری کرنے اور دوبارہ حاصل کرنے کی ضرورت ہوگی۔ تھراشنگ کے بجائے، یہ وسائل عام طور پر پروگرام کے لیے درکار ہوتے ہیں، اور اگر یہ کافی وسائل حاصل نہیں کر پاتا ہے، تو یہ آسانی سے ناکام ہو جاتا ہے۔ لوکلٹی آف ریفرنس ریذیڈنٹ سیٹ سائز ورکنگ سیٹ سائز حوالہ جات مزید پڑھنا ٹینن بوم، اینڈریو (2009) بھی دیکھیں۔ جدید آپریٹنگ سسٹم تیسرا ایڈیشن۔ پی پی۔ 209-210 ڈیننگ، پی۔ جے۔ (1980)۔ کام کرنا ماضی اور حال کا تعین کرتا ہے۔ سافٹ ویئر انجینئرنگ پر IEEE ٹرانزیکشنز، 1/1980، جلد SE-6، پی پی۔ 64-84۔ سلبرشیٹز، اے۔، گیلون، پی۔ بی۔، اور گیگن، جی۔ (2005)۔ آپریٹنگ سسٹم کے تصورات، ساتواں ایڈیشن۔ پلاٹینو: ولی۔ پی پی۔ 346۔ آپریٹنگ سسٹم ٹیکنالوجی ورچوئل میموری