Memory management (operating systems)
آپریٹنگ سسٹمز میں، میموری مینجمنٹ وہ فنکشن ہے جو کمپیوٹر کی بنیادی میموری کے انتظام کے لیے ذمہ دار ہے۔ میموری مینجمنٹ فنکشن ہر میموری لوکیشن کی حیثیت کا سراغ لگاتا ہے، یا تو مختص یا مفت۔ یہ اس بات کا تعین کرتا ہے کہ مسابقتی عمل کے درمیان میموری کو کس طرح مختص کیا جاتا ہے، یہ فیصلہ کرتے ہوئے کہ کس کو میموری ملتی ہے، وہ اسے کب وصول کرتے ہیں، اور ان کی کتنی اجازت ہے۔ جب میموری مختص کی جاتی ہے تو یہ طے کرتا ہے کہ میموری کے کون سے مقامات تفویض کیے جائیں گے۔ یہ اس وقت ٹریک کرتا ہے جب میموری کو آزاد یا غیر مختص کیا جاتا ہے اور اسٹیٹس کو اپ ڈیٹ کرتا ہے۔ یہ ایپلیکیشن میموری مینجمنٹ سے الگ ہے، جس طرح سے ایک عمل آپریٹنگ سسٹم کے ذریعہ اس کو تفویض کردہ میموری کا انتظام کرتا ہے۔ میموری مینجمنٹ تکنیک سنگل ملحقہ الاٹمنٹ سنگل الاٹمنٹ میموری مینجمنٹ کی سب سے آسان تکنیک ہے۔ کمپیوٹر کی تمام میموری، عام طور پر آپریٹنگ سسٹم کے لیے مخصوص ایک چھوٹے حصے کو چھوڑ کر، ایک ہی ایپلی کیشن کے لیے دستیاب ہوتی ہے۔ ایم ایس-ڈاس ایک ایسے نظام کی مثال ہے جو میموری کو اس طرح مختص کرتا ہے۔ ایک واحد ایپلی کیشن چلانے والا سرایت شدہ نظام بھی اس تکنیک کو استعمال کر سکتا ہے۔ واحد ملحقہ الاٹمنٹ استعمال کرنے والا نظام اب بھی صارفین کے درمیان تبدیل کرنے کے لیے میموری کے مواد کو تبدیل کر کے ملٹی ٹاسک کر سکتا ہے۔ میوزک آپریٹنگ سسٹم کے ابتدائی ورژن میں اس تکنیک کا استعمال کیا گیا۔ پارٹیشنڈ الاٹمنٹ پرائمری میموری کو متعدد میموری پارٹیشنوں میں تقسیم کرتا ہے، عام طور پر میموری کے متصل علاقوں میں۔ ہر پارٹیشن میں کسی مخصوص کام یا کام کے لیے تمام معلومات ہو سکتی ہیں۔ میموری مینجمنٹ کام شروع ہونے پر پارٹیشن کو مختص کرنے اور کام ختم ہونے پر اسے غیر مختص کرنے پر مشتمل ہوتا ہے۔ تقسیم شدہ الاٹمنٹ میں عام طور پر کچھ ہارڈ ویئر سپورٹ کی ضرورت ہوتی ہے تاکہ نوکریوں کو ایک دوسرے کے ساتھ یا آپریٹنگ سسٹم کے ساتھ مداخلت کرنے سے روکا جا سکے۔ آئی بی ایم سسٹم/360 نے لاک اینڈ کی تکنیک کا استعمال کیا۔ دوسرے نظاموں نے بیس اور باؤنڈ رجسٹر استعمال کیے جن میں پارٹیشن کی حدود شامل تھیں اور غلط رسائی کو نشان زد کیا گیا تھا۔ یو این آئی وی اے سی 1108 اسٹوریج لمیٹس رجسٹر میں ہدایات اور ڈیٹا کے لیے الگ بیس/باؤنڈ سیٹ تھے۔ سسٹم نے میموری انٹرلیونگ کا فائدہ اٹھایا تاکہ آئی بینک اور ڈی بینک کو علیحدہ میموری ماڈیولز میں رکھا جا سکے۔ پارٹیشنز یا تو جامد ہو سکتی ہیں، جس کی وضاحت ابتدائی پروگرام لوڈ (آئی پی ایل) یا بوٹ ٹائم میں کی جاتی ہے، یا کمپیوٹر آپریٹر کے ذریعہ، یا متحرک، یعنی خود بخود کسی مخصوص کام کے لیے بنائی جاتی ہے۔ فکسڈ نمبر آف ٹاسکس (ایم ایف ٹی) کے ساتھ آئی بی ایم سسٹم/360 آپریٹنگ سسٹم ملٹی پروگرامنگ جامد پارٹیشننگ کی ایک مثال ہے، اور متغیر نمبر آف ٹاسکس (ایم وی ٹی) کے ساتھ ملٹی پروگرامنگ متحرک کی ایک مثال ہے۔ ایم وی ٹی اور جانشین دوسرے نظاموں میں متحرک پارٹیشنوں کو جامد پارٹیشنوں سے ممتاز کرنے کے لیے ریجن کی اصطلاح استعمال کرتے ہیں۔ پارٹیشنز ہارڈ ویئر ٹائپ شدہ میموری کا استعمال کرتے ہوئے منتقل کی جا سکتی ہیں، جیسے بروس کارپوریشن B5500، یا بیس اور باؤنڈ رجسٹر جیسے PDP-10 یا GE-635۔ متصل فزیکل میموری کے بڑے حصے فراہم کرنے کے لیے منتقل شدہ پارٹیشنز کو کمپیکٹ کیا جا سکتا ہے۔ کمپکشن میموری کے "ان یوز" علاقوں کو "ہولز" یا میموری کے غیر استعمال شدہ علاقوں کو ختم کرنے کے لیے منتقل کرتا ہے جو عمل کے خاتمے کی وجہ سے ہوتے ہیں تاکہ بڑے ملحقہ آزاد علاقے بنائے جا سکیں۔ کچھ نظام اضافی میموری کو آزاد کرنے کے لیے پارٹیشنز کو ثانوی اسٹوریج میں تبدیل کرنے کی اجازت دیتے ہیں۔ آئی بی ایم کے ٹائم شیئرنگ آپشن (ٹی ایس او) کے ابتدائی ورژن نے صارفین کو ٹائم شیئرنگ پارٹیشنز کے اندر اور باہر تبدیل کیا۔ پیجڈ میموری مینجمنٹ پیجڈ الاٹمنٹ کمپیوٹر کی بنیادی میموری کو مقررہ سائز کی اکائیوں میں تقسیم کرتا ہے جسے پیج فریم کہتے ہیں، اور پروگرام کی ورچوئل ایڈریس کی جگہ کو اسی سائز کے صفحات میں تقسیم کرتا ہے۔ ہارڈ ویئر میموری مینجمنٹ یونٹ صفحات کو فریموں میں نقشہ بناتا ہے۔ فزیکل میموری کو صفحہ کی بنیاد پر مختص کیا جا سکتا ہے جبکہ ایڈریس کی جگہ متصل دکھائی دیتی ہے۔ عام طور پر، پیجڈ میموری مینجمنٹ کے ساتھ، ہر کام اپنے ایڈریس اسپیس میں چلتا ہے۔ تاہم، کچھ سنگل ایڈریس اسپیس آپریٹنگ سسٹم ہیں جو تمام عمل کو ایک ہی ایڈریس اسپیس کے اندر چلاتے ہیں، جیسے کہ آئی بی ایم آئی، جو تمام عمل کو ایک بڑی ایڈریس اسپیس کے اندر چلاتا ہے، اور آئی بی ایم او ایس/وی ایس 2 (ایس وی ایس)، جو تمام کاموں کو ایک ہی 16 ایم آئی بی ورچوئل ایڈریس اسپیس میں چلاتا ہے۔ پیجڈ میموری کو ڈیمانڈ پیج کیا جا سکتا ہے جب سسٹم بنیادی اور ثانوی میموری کے درمیان ضرورت کے مطابق صفحات منتقل کر سکتا ہے۔ سیگمنٹڈ میموری مینجمنٹ سیگمنٹڈ میموری واحد میموری مینجمنٹ تکنیک ہے جو صارف کے پروگرام کو "لکیری اور ملحقہ ایڈریس اسپیس" فراہم نہیں کرتی ہے۔ سیگمنٹ میموری کے وہ حصے ہیں جو عام طور پر معلومات کی منطقی گروہ بندی جیسے کوڈ کے طریقہ کار یا ڈیٹا سرنی سے مطابقت رکھتے ہیں۔ حصوں کو سیگمنٹ ٹیبل کی شکل میں ہارڈ ویئر سپورٹ کی ضرورت ہوتی ہے جس میں عام طور پر میموری میں حصے کا فزیکل ایڈریس، اس کا سائز، اور دیگر ڈیٹا جیسے رسائی کے تحفظ کے بٹس اور اسٹیٹس (تبدیل شدہ، تبدیل شدہ، وغیرہ) ہوتے ہیں۔ سیگمنٹشن دیگر اسکیموں کے مقابلے میں رسائی کے بہتر تحفظ کی اجازت دیتا ہے کیونکہ میموری کے حوالہ جات ایک مخصوص حصے سے متعلق ہوتے ہیں اور ہارڈ ویئر ایپلی کیشن کو میموری کا حوالہ دینے کی اجازت نہیں دے گا جو اس حصے کے لیے متعین نہیں ہے۔ پیجنگ کے ساتھ یا اس کے بغیر تقسیم کو نافذ کرنا ممکن ہے۔ پیجنگ سپورٹ کے بغیر سیگمنٹ وہ فزیکل یونٹ ہے جسے ضرورت پڑنے پر میموری کے اندر اور باہر تبدیل کیا جاتا ہے۔ پیجنگ سپورٹ کے ساتھ صفحات عام طور پر تبادلے کی اکائی ہوتے ہیں اور تقسیم صرف سیکیورٹی کی ایک اضافی سطح کا اضافہ کرتی ہے۔ سیگمنٹڈ سسٹم میں پتے عام طور پر سیگمنٹ آئی ڈی اور سیگمنٹ بیس ایڈریس سے متعلق ایک آفسیٹ پر مشتمل ہوتے ہیں، جس کی تعریف آفسیٹ صفر ہوتی ہے۔ انٹیل آئی اے-32 (x86) فن تعمیر ایک عمل کو 4 جی آئی بی تک کے 16,383 حصوں تک رکھنے کی اجازت دیتا ہے۔ آئی اے-32 حصے کمپیوٹر کے لکیری ایڈریس اسپیس کے ذیلی حصے ہیں، جو پیجنگ ہارڈ ویئر کے ذریعہ فراہم کردہ ورچوئل ایڈریس اسپیس ہے۔ ملٹیکس آپریٹنگ سسٹم شاید سب سے مشہور نظام ہے جو سیگمنٹڈ میموری کو لاگو کرتا ہے۔ ملٹیکس سیگمنٹ 256 صفحات تک کی کمپیوٹر کی فزیکل میموری کے ذیلی حصے ہیں، ہر صفحہ سائز میں 1K 36 بٹ الفاظ کا ہوتا ہے، جس کے نتیجے میں زیادہ سے زیادہ حصے کا سائز 1MiB ہوتا ہے (9 بٹ بائٹس کے ساتھ، جیسا کہ ملٹیکس میں استعمال ہوتا ہے)۔ ایک عمل میں 4046 حصے ہو سکتے ہیں۔ رول آؤٹ/رول آؤٹ/رول ان (آر او/آر آئی) ایک کمپیوٹر آپریٹنگ سسٹم میموری مینجمنٹ تکنیک ہے جہاں ایک رننگ پروگرام کے پورے غیر مشترکہ کوڈ اور ڈیٹا کو معاون میموری (ڈسک یا ڈرم) میں تبدیل کر دیا جاتا ہے تاکہ کسی دوسرے کام کے لیے مین اسٹوریج کو آزاد کیا جا سکے۔ پروگراموں کو "ڈیمانڈ اینڈ or.when کے ذریعے کسی طویل ایونٹ کے انتظار میں" شروع کیا جا سکتا ہے۔ رول آؤٹ/رول ان عام طور پر ٹائم شیئرنگ سسٹمز میں استعمال ہوتا تھا، جہاں صارف کا "تھنک ٹائم" تبادلہ کرنے کے وقت کے مقابلے میں نسبتا لمبا ہوتا تھا۔ ورچوئل اسٹوریج-پیجنگ یا سیگمنٹشن کے برعکس، رول آؤٹ/رول ان کے لیے کسی خاص میموری مینجمنٹ ہارڈ ویئر کی ضرورت نہیں ہوتی ؛ تاہم، جب تک کہ سسٹم میں میموری میپ یا بیس اینڈ باؤنڈ رجسٹر جیسے نقل مکانی ہارڈ ویئر نہ ہوں، پروگرام کو اس کے اصل میموری مقامات پر واپس لانا ہوگا۔ رول آؤٹ/رول ان کو بڑی حد تک ورچوئل میموری نے ختم کر دیا ہے۔ رول آؤٹ/رول ان او ایس/360 ملٹی پروگرامنگ کی ایک اختیاری خصوصیت تھی جس میں متغیر تعداد میں کام (ایم وی ٹی) رول آؤٹ/رول ان کسی خاص کام کو اس کے اصل مخصوص علاقے سے باہر عارضی، متحرک توسیع کی اجازت دیتا ہے۔ جب کسی نوکری کو زیادہ جگہ کی ضرورت ہوتی ہے، تو رول آؤٹ/رول ان نوکری کے استعمال کے لیے غیر تفویض شدہ اسٹوریج حاصل کرنے کی کوشش کرتا ہے۔ اگر اس طرح کا کوئی غیر تفویض شدہ اسٹوریج نہیں ہے، تو دوسرا کام شروع کیا جاتا ہے-یعنی، معاون اسٹوریج میں منتقل کیا جاتا ہے-تاکہ اس کے علاقے کو پہلے کام کے ذریعے استعمال کیا جا سکے۔ جب پہلے کام کے ذریعہ جاری کیا جاتا ہے، تو یہ اضافی اسٹوریج دوبارہ دستیاب ہوتا ہے، یا تو (1) غیر تفویض شدہ اسٹوریج کے طور پر، اگر یہ اس کا منبع تھا، یا (2) کام وصول کرنے کے لیے جسے مرکزی اسٹوریج (رولڈ ان) میں واپس منتقل کیا جائے۔ او ایس/360 میں، رول آؤٹ/رول ان کا استعمال صرف بیچ کے کاموں کے لیے کیا جاتا تھا، اور رول ان اس وقت تک نہیں ہوتا جب تک کہ خطہ سے قرض لینے والا جاب اسٹیپ ختم نہ ہو جائے۔ میموری اوورکمٹیمنٹ میموری پروٹیکشن x86 میموری سیگمنٹشن نوٹ حوالہ جات آپریٹنگ سسٹم بھی دیکھیں۔