Memory segmentation
میموری سیگمنٹشن ایک آپریٹنگ سسٹم میموری مینجمنٹ تکنیک ہے جو کمپیوٹر کی بنیادی میموری کو حصوں یا حصوں میں تقسیم کرتی ہے۔ سیگمنٹشن کا استعمال کرتے ہوئے کمپیوٹر سسٹم میں، میموری لوکیشن کے حوالے میں ایک ویلیو شامل ہوتی ہے جو اس حصے کے اندر کسی حصے اور آفسیٹ (میموری لوکیشن) کی شناخت کرتی ہے۔ حصوں یا حصوں کو مرتب کردہ پروگراموں کی آبجیکٹ فائلوں میں بھی استعمال کیا جاتا ہے جب وہ پروگرام کی تصویر میں ایک ساتھ منسلک ہوتے ہیں اور جب تصویر کو میموری میں لوڈ کیا جاتا ہے۔ حصے عام طور پر کسی پروگرام کی قدرتی تقسیم جیسے انفرادی معمولات یا ڈیٹا ٹیبل سے مطابقت رکھتے ہیں لہذا تقسیم عام طور پر پروگرامر کو اکیلے پیج کرنے سے زیادہ نظر آتی ہے۔ سیگمنٹ پروگرام ماڈیولز، یا میموری کے استعمال کی کلاسوں جیسے کوڈ سیگمنٹ اور ڈیٹا سیگمنٹ کے لیے بنائے جا سکتے ہیں۔ کچھ حصوں کو پروگراموں کے درمیان تقسیم کیا جا سکتا ہے۔ سیگمنٹشن اصل میں ایک ایسے طریقہ کے طور پر ایجاد کیا گیا تھا جس کے ذریعے سسٹم سافٹ ویئر سافٹ ویئر کے عمل (کاموں) اور ڈیٹا کو الگ کر سکتا ہے جو وہ استعمال کر رہے ہیں۔ اس کا مقصد بیک وقت متعدد عمل چلانے والے نظاموں کی وشوسنییتا میں اضافہ کرنا تھا۔ ہارڈ ویئر کا نفاذ سیگمنٹشن استعمال کرنے والے سسٹم میں، کمپیوٹر میموری ایڈریس ایک سیگمنٹ آئی ڈی اور سیگمنٹ کے اندر ایک آفسیٹ پر مشتمل ہوتا ہے۔ ہارڈ ویئر میموری مینجمنٹ یونٹ (ایم ایم یو) اس حصے کا ترجمہ کرنے اور فزیکل ایڈریس میں آفسیٹ کرنے، اور چیک انجام دینے کے لیے ذمہ دار ہے تاکہ یہ یقینی بنایا جا سکے کہ ترجمہ کیا جا سکتا ہے اور اس حصے اور آفسیٹ کے حوالے کی اجازت ہے۔ ہر حصے میں اس سے وابستہ اجازتوں کی لمبائی اور سیٹ (مثال کے طور پر، پڑھنا، لکھنا، انجام دینا) ہوتا ہے۔ کسی عمل کو کسی حصے میں حوالہ دینے کی اجازت صرف اس صورت میں دی جاتی ہے جب اجازتوں کے ذریعہ حوالہ کی قسم کی اجازت ہو، اور اگر حصے کے اندر آفسیٹ حصے کی لمبائی کے مطابق مخصوص حد کے اندر ہو۔ بصورت دیگر، ہارڈ ویئر کی رعایت جیسے کہ سیگمنٹشن فالٹ کو اٹھایا جاتا ہے۔ حصوں کو ورچوئل میموری کو نافذ کرنے کے لیے بھی استعمال کیا جا سکتا ہے۔ اس صورت میں ہر حصے میں ایک متعلقہ جھنڈا ہوتا ہے جس سے یہ ظاہر ہوتا ہے کہ یہ مین میموری میں موجود ہے یا نہیں۔ اگر کسی حصے تک رسائی حاصل کی جاتی ہے جو مرکزی میموری میں موجود نہیں ہے، تو ایک رعایت اٹھائی جاتی ہے، اور آپریٹنگ سسٹم اس حصے کو ثانوی اسٹوریج سے میموری میں پڑھ لے گا۔ سیگمنٹشن میموری پروٹیکشن کو لاگو کرنے کا ایک طریقہ ہے۔ پیجنگ ایک اور ہے، اور انہیں جوڑا جا سکتا ہے۔ میموری کے حصے کا سائز عام طور پر طے نہیں ہوتا ہے اور یہ ایک بائٹ جتنا چھوٹا ہو سکتا ہے۔ پیجنگ کے ساتھ یا اس کے بغیر مختلف ہارڈ ویئر پر سیگمنٹشن کو کئی طریقوں سے نافذ کیا گیا ہے۔ انٹیل x86 میموری کی تقسیم کسی بھی ماڈل کے مطابق نہیں ہے اور اس پر ذیل میں الگ سے بحث کی گئی ہے، اور ایک علیحدہ مضمون میں مزید تفصیل سے بھی۔ ہر حصے کے ساتھ منسلک پیجنگ کے بغیر سیگمنٹشن وہ معلومات ہے جو اس بات کی نشاندہی کرتی ہے کہ وہ حصہ میموری میں کہاں واقع ہے-سیگمنٹ بیس۔ جب کوئی پروگرام میموری کے مقام کا حوالہ دیتا ہے، تو آفسیٹ کو فزیکل میموری ایڈریس تیار کرنے کے لیے سیگمنٹ بیس میں شامل کیا جاتا ہے۔ پیجنگ کے بغیر سیگمنٹشن کا استعمال کرتے ہوئے کسی سسٹم پر ورچوئل میموری کے نفاذ کے لیے ضروری ہے کہ پورے حصوں کو مین میموری اور سیکنڈری اسٹوریج کے درمیان آگے پیچھے تبدیل کیا جائے۔ جب کسی حصے کو تبدیل کیا جاتا ہے، تو آپریٹنگ سسٹم کو پورے حصے کو برقرار رکھنے کے لیے کافی متصل مفت میموری مختص کرنی پڑتی ہے۔ اکثر میموری کے ٹکڑے ٹکڑے ہونے کا نتیجہ اس صورت میں نکلتا ہے جب کافی متصل میموری نہ ہو حالانکہ مجموعی طور پر کافی ہو سکتی ہے۔ میموری لوکیشن کے بجائے پیجنگ کے ساتھ سیگمنٹشن، سیگمنٹ کی معلومات میں سیگمنٹ کے لیے پیج ٹیبل کا پتہ شامل ہوتا ہے۔ جب کوئی پروگرام میموری کے مقام کا حوالہ دیتا ہے تو آفسیٹ کا ترجمہ پیج ٹیبل کا استعمال کرتے ہوئے میموری ایڈریس میں کیا جاتا ہے۔ کسی حصے کو دوسرا میموری پیج مختص کرکے اور اسے حصے کے پیج ٹیبل میں شامل کرکے بڑھایا جا سکتا ہے۔ پیجنگ کے ساتھ سیگمنٹشن کا استعمال کرتے ہوئے کسی سسٹم پر ورچوئل میموری کا نفاذ عام طور پر صرف انفرادی صفحات کو مرکزی میموری اور ثانوی اسٹوریج کے درمیان آگے پیچھے منتقل کرتا ہے، جو کہ پیجڈ نان سیگمنٹڈ سسٹم کی طرح ہوتا ہے۔ حصے کے صفحات مرکزی میموری میں کہیں بھی واقع ہو سکتے ہیں اور انہیں متصل ہونے کی ضرورت نہیں ہے۔ اس کے نتیجے میں عام طور پر پرائمری اور سیکنڈری اسٹوریج کے درمیان ان پٹ/آؤٹ پٹ کی مقدار میں کمی اور میموری کے ٹکڑے ٹکڑے میں کمی واقع ہوتی ہے۔ بوروز کارپوریشن B5000 کمپیوٹر تقسیم کو نافذ کرنے والے پہلے کمپیوٹر میں سے ایک تھا، اور تقسیم پر مبنی "شاید ورچوئل میموری فراہم کرنے والا پہلا تجارتی کمپیوٹر" تھا۔ بعد کے B6500 کمپیوٹر نے بھی تقسیم کو نافذ کیا۔ اس کے فن تعمیر کا ایک ورژن آج بھی یونیسیس کلیئر پتھ لبرا سرورز پر استعمال میں ہے۔ GE-645 کمپیوٹر، تقسیم اور پیجنگ سپورٹ کے ساتھ GE-635 کی ایک ترمیم، ملٹیکس کی حمایت کے لیے 1964 میں ڈیزائن کیا گیا تھا۔ انٹیل آئی اے پی ایکس 432، جو 1975 میں شروع ہوا، نے مائکرو پروسیسر پر میموری پروٹیکشن کے ساتھ ایک حقیقی سیگمنٹڈ فن تعمیر کو نافذ کرنے کی کوشش کی۔ انٹیل آئی 960 پروسیسرز کے 960 ایم ایکس ورژن نے لوڈ اور اسٹور ہدایات کی حمایت کی جس میں ماخذ یا منزل کسی آبجیکٹ کے لیے "رسائی وضاحتی" ہوتی ہے، اور آبجیکٹ میں ایک آفسیٹ ہوتا ہے، جس میں رسائی وضاحتی 32 بٹ رجسٹر میں ہوتا ہے اور اگلے رجسٹر میں بیس آفسیٹ سے اور اضافی آفسیٹ سے اور اختیاری طور پر، ہدایات میں مخصوص انڈیکس رجسٹر سے آفسیٹ کا حساب لگایا جاتا ہے۔ ایک رسائی کی وضاحت کرنے والا اجازت بٹس اور 26 بٹ آبجیکٹ انڈیکس پر مشتمل ہوتا ہے۔ آبجیکٹ انڈیکس آبجیکٹ کی وضاحت کرنے والوں کی میز میں ایک انڈیکس ہے، جو آبجیکٹ کی قسم، آبجیکٹ کی لمبائی، اور آبجیکٹ کے ڈیٹا کے لیے ایک فزیکل ایڈریس، آبجیکٹ کے لیے پیج ٹیبل، یا آبجیکٹ کی قسم کے لحاظ سے آبجیکٹ کے لیے دو سطحی پیج ٹیبل کے لیے ٹاپ لیول پیج ٹیبل دیتا ہے۔ پرائم، اسٹراٹس، اپولو، آئی بی ایم سسٹم/38، اور آئی بی ایم اے ایس/400 (بشمول آئی بی ایم آئی) کمپیوٹرز میموری سیگمنٹشن کا استعمال کرتے ہیں۔ ایس/370 فن تعمیر کی مثالیں ورچوئل اسٹوریج (ڈی اے ٹی) اور 24 بٹ پتے والے آئی بی ایم سسٹم/370 ماڈلز میں، کنٹرول رجسٹر 0 64 کی بی یا 1 ایم آئی بی کے حصے کے سائز اور 2 کی بی یا 4 کی بی کے صفحے کے سائز کی وضاحت کرتا ہے۔ کنٹرول رجسٹر 1 میں سیگمنٹ ٹیبل ڈیزائنر (ایس ٹی ڈی) ہوتا ہے، جو سیگمنٹ ٹیبل کی لمبائی اور حقیقی پتہ کی وضاحت کرتا ہے۔ ہر سیگمنٹ ٹیبل انٹری میں پیج ٹیبل کا مقام، پیج ٹیبل کی لمبائی اور ایک غلط بٹ ہوتا ہے۔ آئی بی ایم نے بعد میں ایڈریس سائز کو 31 بٹس تک بڑھایا اور سیگمنٹ ٹیبل اندراجات میں دو بٹس شامل کیے: سیگمنٹ پروٹیکشن بٹ سیگمنٹ صرف پڑھنے کے لیے عام سیگمنٹ بٹ ہے یہ طبقہ ایڈریس خالی جگہوں کے درمیان شیئر کیا گیا ہے۔ یہ بٹ ٹی ایل بی کے استعمال کو بہتر بنانے کے لیے سیٹ کیا گیا ہے۔ آئی بی ایم کے ڈی اے ٹی نفاذ میں سے ہر ایک میں ٹرانسلیشن کیش شامل ہے، جسے آئی بی ایم نے ٹرانسلیشن لک سائیڈ بفر (ٹی ایل بی) کہا۔ اگرچہ آپریشن کے اصول عام طور پر ٹی ایل بی پر بحث کرتے ہیں، لیکن تفصیلات فن تعمیر کا حصہ نہیں ہیں اور ماڈل سے ماڈل میں مختلف ہوتی ہیں۔ 3031، 3032، اور 3033 پروسیسر کمپلیکس سے شروع کرتے ہوئے، آئی بی ایم نے ڈوئل ایڈریس اسپیس (ڈی اے ایس) نامی ایک خصوصیت پیش کی، جو ایک پروگرام کو دو ایڈریس خالی جگہوں کے لیے ٹرانسلیشن ٹیبلز کے درمیان تبدیل کرنے کی اجازت دیتی ہے، جسے پرائمری ایڈریس اسپیس (سی آر 1) اور سیکنڈری ایڈریس اسپیس (سی آر 7) کہا جاتا ہے، اور حفاظتی کلید کے تابع ایڈریس خالی جگہوں کے درمیان ڈیٹا منتقل کرنے کی اجازت دیتا ہے۔ ڈی اے ایس 16 بٹ ایڈریس اسپیس نمبر (اے ایس این) کو ایس ٹی ڈی میں تبدیل کرنے کے لیے ترجمہ ٹیبل کی حمایت کرتا ہے، جس میں ایس ٹی ڈی کو سی آر 1 (پرائمری) یا سی آر 7 (سیکنڈری) میں لوڈ کرنے کی مراعات یافتہ ہدایات ہوتی ہیں۔ x86 فن تعمیر ابتدائی x86 پروسیسرز، جو انٹیل 8086 سے شروع ہوتے ہیں، خام میموری کی تقسیم فراہم کرتے ہیں اور میموری کا کوئی تحفظ نہیں رکھتے۔ (ہر حصے کا ہر بائٹ ہمیشہ کسی بھی پروگرام کے لیے دستیاب ہوتا ہے۔) 16 بٹ سیگمنٹ رجسٹر 65,536 سیگمنٹس کی اجازت دیتے ہیں۔ ہر سیگمنٹ ایک فکسڈ آفسیٹ سے شروع ہوتا ہے جو سیگمنٹ نمبر کے 16 گنا کے برابر ہوتا ہے۔ سیگمنٹ شروع کرنے والا ایڈریس گرینولرٹی 16 بائٹس ہے۔ ہر طبقہ 64 کی بی (65,536 بائٹس) ایڈریس اسپیس تک پڑھنے لکھنے کی رسائی فراہم کرتا ہے (یہ حد 16 بٹ پی سی اور ایس پی رجسٹروں کے ذریعہ مقرر کی جاتی ہے ؛ پروسیسر چیک کرنے کی کوئی حد نہیں رکھتا ہے)۔ آف سیٹ + ایڈریس جو 0xFPFF سے زیادہ ہے 0x00000 تک لپیٹ لیتا ہے۔ ہر 64 کی بی طبقہ اگلے 4,095 حصوں کو اوورلیپ کرتا ہے ؛ ہر فزیکل ایڈریس کو 4,096 طبقہ-آف سیٹ جوڑوں سے ظاہر کیا جا سکتا ہے۔ یہ اسکیم صرف 1 ایم آئی بی (1024 کی بی) فزیکل میموری (اور میموری میپڈ آئی/او) کو ایڈریس کر سکتی ہے۔ (اختیاری توسیعی میموری ہارڈ ویئر سافٹ ویئر کنٹرول کے تحت بینک سوئچڈ میموری کو شامل کر سکتا ہے۔) انٹیل نے سابقہ طور پر ان x86 سی پی یو ماڈلز کے واحد آپریٹنگ موڈ کو "ریئل موڈ" کا نام دیا۔ انٹیل 80286 اور اس کے بعد کے پروسیسرز "286 پروٹیکٹڈ موڈ" شامل کرتے ہیں، جو 16 بٹ ایڈریسنگ کو برقرار رکھتا ہے، اور سیگمنٹشن (پیجنگ کے بغیر) اور فی سیگمنٹ میموری پروٹیکشن شامل کرتا ہے۔ پسماندہ مطابقت کے لیے، تمام x86 سی پی یوز "ریئل موڈ" میں شروع ہوتے ہیں، ایک ہی فکسڈ اوور لیپنگ 64 کی بی سیگمنٹس کے ساتھ، کوئی میموری پروٹیکشن نہیں، صرف 1 ایم آئی بی فزیکل ایڈریس اسپیس، اور کچھ ٹھیک ٹھیک فرق (ہائی میموری ایریا، غیر حقیقی موڈ)۔ اس کی مکمل 24 بٹ (16 ایم آئی بی) فزیکل ایڈریس اسپیس اور جدید ایم ایم یو خصوصیات کو استعمال کرنے کے لیے، 80286 یا اس کے بعد کے پروسیسر کو سافٹ ویئر، عام طور پر آپریٹنگ سسٹم یا ڈی او ایس ایکسٹینڈر کے ذریعے "پروٹیکٹڈ موڈ" میں تبدیل کیا جانا چاہیے۔ اگر کوئی پروگرام سیگمنٹ رجسٹرز کا استعمال نہیں کرتا ہے، یا صرف ان میں وہ اقدار ڈالتا ہے جو اسے آپریٹنگ سسٹم سے موصول ہوتی ہیں، تو یکساں کوڈ ریئل موڈ یا پروٹیکٹڈ موڈ میں چل سکتا ہے، لیکن زیادہ تر ریئل موڈ سافٹ ویئر اس مطابقت کو توڑتے ہوئے سیگمنٹ رجسٹرز کے لیے نئی اقدار کا حساب لگاتا ہے۔ انٹیل i386 اور اس کے بعد کے پروسیسرز "386 پروٹیکٹڈ موڈ" شامل کرتے ہیں، جو 32 بٹ ایڈریسنگ کا استعمال کرتا ہے، سیگمنٹشن کو برقرار رکھتا ہے، اور میموری پیجنگ کو شامل کرتا ہے۔ ان پروسیسرز میں، سیگمنٹ ٹیبل، سیگمنٹ کے لیے پیج ٹیبل کی طرف اشارہ کرنے کے بجائے، لکیری میموری میں سیگمنٹ ایڈریس پر مشتمل ہوتا ہے۔ جب پیجنگ کو فعال کیا جاتا ہے، تو لکیری میموری میں پتے کو ایک علیحدہ پیج ٹیبل کا استعمال کرتے ہوئے فزیکل پتے پر نقشہ بنایا جاتا ہے۔ زیادہ تر آپریٹنگ سسٹمز نے ممکنہ فوائد (صرف 4 جی آئی بی کے بجائے 4 x 4 جی آئی بی منطقی ایڈریس کی جگہ) کے باوجود تقسیم کی صلاحیت کا استعمال نہیں کیا، تمام سیگمنٹ رجسٹروں میں بیس ایڈریس کو ہر وقت 0 کے برابر رکھنے کا انتخاب کیا اور فی پیج میموری تحفظ فراہم کیا اور صرف پیجنگ کا استعمال کرتے ہوئے تبادلہ کیا۔ کچھ لوگ این ایکس بٹ کی کمی والے پروسیسرز پر قابل عمل جگہ کا تحفظ فراہم کرنے کے لیے سی ایس رجسٹر کا استعمال کرتے ہیں یا تھریڈ لوکل اسٹوریج تک رسائی کے لیے ایف ایس یا جی ایس رجسٹر کا استعمال کرتے ہیں۔ x 86-64 فن تعمیر "لانگ موڈ" (64 بٹ موڈ) میں تقسیم کی حمایت نہیں کرتا ہے۔ سیگمنٹ کے چار رجسٹر: سی ایس، ایس ایس، ڈی ایس، اور ای ایس کو 0 پر مجبور کیا جاتا ہے، اور حد 264 تک ہوتی ہے۔ سیگمنٹ رجسٹرڈ ایف ایس اور جی ایس میں اب بھی نان زیرو بیس ایڈریس ہو سکتا ہے۔ یہ آپریٹنگ سسٹم کو ان حصوں کو خصوصی مقاصد جیسے تھریڈ لوکل اسٹوریج کے لیے استعمال کرنے کی اجازت دیتا ہے۔ بی ایس ایس سیگمنٹ ڈیٹا سیگمنٹ فلیٹ میموری ماڈل میموری مینجمنٹ (آپریٹنگ سسٹم) سیگمنٹشن فالٹ ورچوئل ایڈریس اسپیس ورچوئل میموری x86 میموری سیگمنٹشن نوٹ حوالہ جات بیرونی لنکس آئی اے-32 انٹیل آرکیٹیکچر سافٹ ویئر ڈویلپر کا دستی حجم 3 اے: سسٹم پروگرامنگ گائیڈ بھی دیکھیں۔ http://www.intel.com/products/processor/manuals/index.htm۔ آپریٹنگ سسٹمز: اندرونی اور ڈیزائن کے اصول بذریعہ ولیم اسٹالنگ۔ ناشر: پرینٹس ہال۔ ۔ ۔ یادداشت کا انتظام