Burroughs large systems descriptors
تفصیل بورو کے بڑے نظاموں کی ایک تعمیراتی خصوصیت ہے، جس میں موجودہ (2006 تک) یونیسیس کلیئرپاتھ/ایم سی پی نظام شامل ہیں۔ اسٹیک اور ٹیگ پر مبنی ہونے کے علاوہ، ان نظاموں کی ایک قابل ذکر تعمیراتی خصوصیت یہ ہے کہ یہ وضاحتی پر مبنی ہے۔ وضاحتیں وہ ڈیٹا رکھنے کا ذریعہ ہیں جو اسٹیک پر نہیں رہتا ہے جیسا کہ صفوں اور اشیاء کے لیے ہوتا ہے۔ وضاحتیں سٹرنگ ڈیٹا کے لیے بھی استعمال ہوتی ہیں جیسا کہ مرتب کرنے والوں اور تجارتی ایپلی کیشنز میں ہوتا ہے۔ تفصیلات بیان کرنے والے اسٹوریج کے علاقوں، I/O درخواستوں اور I/O نتائج کی وضاحت کرتے ہیں۔ ان میں اشارہ کرنے والے فیلڈز ہوتے ہیں، مثال کے طور پر۔ ڈسکرپٹر کی قسم، پتہ، لمبائی، آیا ڈیٹا اسٹوریج میں موجود ہے۔ تفصیلات پروڈکٹ لائن اور ڈسکرپٹر کی قسم کے لحاظ سے مختلف ہوتی ہیں۔ بوروز دستاویزات کے مطابق، درج ذیل متن میں سب سے بائیں (سب سے اہم) بٹ کو 0 کے طور پر شمار کیا گیا ہے۔ پروگرام اور ڈیٹا ڈسکرپٹرز میں ایک بٹ ہوتا ہے جسے "پریزنس بٹ" یا "پی-بٹ" کہا جاتا ہے۔ یہ اس بات کی نشاندہی کرتا ہے کہ ڈسکرپٹر کے ذریعے حوالہ دیا گیا آبجیکٹ فی الحال میموری میں ہے یا سیکنڈری اسٹوریج میں۔ یہ بٹ ورچوئل میموری کو لاگو کرنے کے لیے استعمال ہوتا ہے۔ ورچوئل میموری اصل میں 1950 کی دہائی کے آخر میں مانچسٹر یونیورسٹی میں اٹلس پروجیکٹ کے لیے تیار کی گئی تھی۔ تجارتی ایپلی کیشنز میں اس کا استعمال دیکھنے کے خواہاں، انہوں نے کئی کمپیوٹر کمپنیوں کے انجینئروں کو ایک سیمینار میں مدعو کیا، جن میں بروس اور آئی بی ایم کے انجینئر بھی شامل تھے۔ B5000، جو 1961 میں جاری کیا گیا، ورچوئل میموری فراہم کرنے والا پہلا تجارتی کمپیوٹر تھا۔ 1960 کی دہائی کے وسط میں، آئی بی ایم، آر سی اے، اور جنرل الیکٹرک سمیت دیگر دکانداروں نے ایسی مشینیں تیار کیں جو ورچوئل میموری کی حمایت کرتی تھیں، جس میں آپریٹنگ سسٹم ٹائم شیئرنگ کی طرف مبنی تھے۔ آئی بی ایم نے 1972 تک عام ڈیٹا پروسیسنگ کے استعمال کے لیے بنائی گئی مشینوں میں ورچوئل میموری کی حمایت نہیں کی تھی۔ جب ایک وضاحتی کا حوالہ دیا جاتا ہے، تو ہارڈ ویئر پی بٹ کو چیک کرتا ہے۔ اگر یہ 1 ہے، تو ڈیٹا ایڈریس فیلڈ میں بتائے گئے مقام پر میموری میں موجود ہے۔ اگر پی-بٹ 0 ہے، تو ڈیٹا بلاک موجود نہیں ہے اور ایک رکاوٹ (پی-بٹ رکاوٹ) اٹھائی جاتی ہے اور بلاک کو موجود کرنے کے لیے ایم سی پی کوڈ درج کیا جاتا ہے۔ اس صورت میں، اگر ایڈریس فیلڈ 0 ہے، تو ڈیٹا بلاک مختص نہیں کیا گیا ہے (init p-bit) اور ایم سی پی ایک مفت بلاک کی تلاش کرتا ہے جس کا سائز لمبائی فیلڈ میں دیا گیا ہے۔ آخری پی بٹ منظر نامہ تب ہوتا ہے جب پی بٹ 0 ہوتا ہے، جس سے یہ ظاہر ہوتا ہے کہ ڈیٹا میموری میں نہیں ہے، لیکن ایڈریس غیر صفر ہے، جس سے یہ ظاہر ہوتا ہے کہ ڈیٹا مختص کیا گیا ہے اور اس صورت میں ایڈریس ڈسک پر ورچوئل میموری ایریا میں ڈسک ایڈریس کی نمائندگی کرتا ہے۔ اس صورت میں ایک پی-بٹ انٹرپٹ اٹھایا جاتا ہے اور اسے "دیگر" پی-بٹ کے طور پر نوٹ کیا جاتا ہے۔ B5000، B5500 اور B5700 B5000 پہلا وضاحتی کمپیوٹر تھا۔ ہر ڈسکریپٹر میں 1 کا فلیگ (بٹ 0) ہوتا ہے۔ ڈیٹا ڈسکرپٹرز میں 15 بٹ اسٹوریج ایڈریس اور 10 بٹ سائز ہوتا ہے، جیسا کہ زیادہ تر I/O ڈسکرپٹرز کرتے ہیں۔ پروگرام کی وضاحت کرنے والوں اور بیرونی نتائج کی وضاحت کرنے والوں کا 15 بٹ ایڈریس ہوتا ہے لیکن کوئی سائز کا فیلڈ نہیں ہوتا ہے۔ B5x00 پروگرام ڈسکرپٹر پروگرام ڈسکرپٹر پروگرام کے حصوں کی وضاحت کے لیے استعمال ہوتے ہیں۔ یا تو آپریڈ کال یا ڈسکریپٹر کال جو پروگرام ڈسکریپٹر کا حوالہ دیتی ہے، اگر پریزنس بٹ 1 ہے تو سبروٹین کال کا سبب بنے گی، بصورت دیگر یہ پریزنس میں رکاوٹ کا سبب بنے گی۔ ڈیٹا ڈسکرپٹر یا تو میموری میں موجود ڈیٹا کے ایک بلاک (P = 1) یا ڈیٹا کے ایک بلاک کا حوالہ دیتے ہیں جسے میموری میں پڑھنا ضروری ہے (P = 0)، موجودگی بٹ کی قیمت پر منحصر ہے۔ یا تو ایک آپریڈ کال یا ایک ڈسکرپٹر کال جو ڈیٹا ڈسکرپٹر سے مراد ہے، موجودگی بٹ اور سائز کے فیلڈ کی جانچ کرے گی۔ اگر موجودگی بٹ 0 ہے تو موجودگی میں رکاوٹ پیدا ہوگی۔ اگر سائز کا فیلڈ غیر صفر ہے تو اسٹیک پر دوسرا لفظ رینج کے اندر ہونا چاہیے یا انڈیکس میں رکاوٹ پیدا ہوگی۔ I/O ڈسکرپٹر بیرونی نتیجہ ڈسکرپٹر ایک بیرونی نتیجہ ڈسکرپٹر میں I/O ڈسکرپٹر ہوتا ہے جو کچھ فیلڈز کو تبدیل کرکے آپریشن شروع کرنے کے لیے استعمال ہوتا ہے۔ B6500، B7500 اور جانشین وضاحتیں ڈیٹا بلاکس کی وضاحت کرتی ہیں۔ ہر ڈسکریپٹر میں 20 بٹ ایڈریس فیلڈ ہوتا ہے جو ڈیٹا بلاک کا حوالہ دیتا ہے۔ ہر بلاک کی لمبائی ہوتی ہے جو ڈسکرپٹر میں محفوظ ہوتی ہے، 20 بٹس بھی۔ ڈیٹا کا سائز بھی دیا گیا ہے، جو کہ تھری بٹ فیلڈ میں 4 -، 6 -، 8-یا 48 بٹ ڈیٹا ہے۔ اس فن تعمیر والا پہلا کمپیوٹر B6500 تھا۔ اس عمل درآمد میں، مختلف اسٹیٹس بٹس کے معنی یہ تھے: بٹ 47-پریزنس بٹ (پی-بٹ) بٹ 46-کاپی بٹ 45-انڈیکسڈ بٹ 44-سیگمنٹڈ بٹ 43-صرف پڑھنے والا بٹ۔ بعد کے نفاذ میں یہ اسٹیٹس بٹس میموری کے بڑھتے ہوئے سائز کے مطابق تیار ہوئے اور بصیرت حاصل کی۔ مرتب کرنے والوں میں استعمال ALGOL میں، صف کی حدود مکمل طور پر متحرک ہوتی ہیں، جنہیں رن ٹائم پر شمار کردہ اقدار سے لیا جا سکتا ہے، پاسکل کے برعکس جہاں صفوں کا سائز مرتب کرنے کے وقت طے کیا جاتا ہے۔ یہ پاسکل کی بنیادی کمزوری ہے جیسا کہ اس کے معیار میں بیان کیا گیا ہے، لیکن جسے پاسکل کے بہت سے تجارتی نفاذ میں ہٹا دیا گیا ہے، خاص طور پر بروس کے نفاذ (آرتھر سیل اور رائے فریک کے ذریعہ یونیورسٹی آف تسمانیا ورژن، اور میٹ ملر اور دیگر کے ذریعہ بروس سلائس پر عمل درآمد)۔ بروس ماحول میں کسی پروگرام میں، ایک صف کو اس وقت مختص نہیں کیا جاتا جب اسے اعلان کیا جاتا ہے، لیکن صرف اس وقت جب اسے پہلی بار چھوا جاتا ہے-اس طرح صفوں کا اعلان کیا جا سکتا ہے اور اگر ان کا استعمال نہ کیا جائے تو انہیں مختص کرنے سے گریز کیا جا سکتا ہے۔ نیز، کم سطح کے میموری الاٹمنٹ سسٹم کالز جیسے کہ سی اور یونکس کی کالز کی میلوک کلاس کی ضرورت نہیں ہے-صفوں کو استعمال کے مطابق خود بخود مختص کیا جاتا ہے۔ یہ پروگرامر کو میموری مینجمنٹ کی غلطی کے شکار سرگرمی کے ساتھ پروگراموں کو بھرنے کا بڑا بوجھ بچاتا ہے، جو مین فریم ایپلی کیشنز میں اہم ہے۔ سی جیسی نچلی سطح کی زبانوں میں پروگراموں کو پورٹ کرتے وقت، سی میموری ڈھانچے کو ایک بڑے مختص کردہ B5000 بلاک کے اندر اپنی میموری مختص کرکے نمٹا جاتا ہے-اس طرح باقی B5000 سسٹم کی سلامتی کو غلط C پروگراموں سے سمجھوتہ نہیں کیا جا سکتا۔ در حقیقت، بظاہر دوسری صورت میں صحیح طریقے سے چلنے والے سی پروگراموں میں بہت سے بفر اوور رن B5000 فن تعمیر میں پورٹ کیے جانے پر پکڑے گئے ہیں۔ سی، پاسکل کی طرح، سلائس کمپائلر سسٹم کا استعمال کرتے ہوئے بھی نافذ کیا گیا تھا (جو، ایل ایل وی ایم کی طرح، تمام زبانوں کے لیے ایک مشترکہ کوڈ جنریٹر اور آپٹیمائزر استعمال کرتا ہے)۔ سی مرتب، رن ٹائم سسٹم، پوزیکس انٹرفیس کے ساتھ ساتھ بہت سے یونکس ٹولز کی بندرگاہ اسٹیو بارٹیلز نے کی تھی۔ سلائس کا استعمال کرتے ہوئے ایک ایفل مرتب بھی تیار کیا گیا تھا۔ آبجیکٹ پر مبنی پروگراموں کے لیے جن میں B5000 فن تعمیر کے مقابلے میں اشیاء کی زیادہ متحرک تخلیق کی ضرورت ہوتی ہے، اشیاء کو ایک ہی B5000 بلاک کے اندر مختص کیا جاتا ہے۔ اس طرح کی اشیاء کی تقسیم سی کے میلوک سے زیادہ اعلی سطح کی ہوتی ہے اور اسے جدید موثر کچرا جمع کرنے والے کے ساتھ بہترین طریقے سے لاگو کیا جاتا ہے۔ میموری فن تعمیر میں انضمام B5000 میں ایڈریس فیلڈ صرف 15 بٹس ہے، جس کا مطلب ہے کہ صرف 32K الفاظ (192KB) میموری کو ڈسکرپٹرز کے ذریعے خطاب کیا جا سکتا ہے۔ B6500 نے اسے 20 بٹس یا 1 میگا الفاظ (6MB) تک بڑھا دیا۔ ستر کی دہائی کے وسط تک یہ اب بھی فن تعمیر کی ایک اہم پابندی تھی۔ اس پر قابو پانے کے لیے، دو حل نافذ کیے گئے: سویپر-یہ حل دراصل میموری مینجمنٹ کے اوپر ایک اور پرت کو نافذ کرتا ہے، جو متعلقہ ڈیٹا کے بڑے کلسٹرز کو میموری کے اندر اور باہر ایک ساتھ منتقل کرتا ہے۔ اے ایس این-یہ حل جسمانی طور پر زیادہ میموری کو سسٹم میں ترتیب دینے کی اجازت دیتا ہے، جسے علیحدہ ایڈریس ایبل حصوں میں تقسیم کیا جاتا ہے۔ یہ فن تعمیر اے ایس این (ایڈریس اسپیس نمبر) میموری کے نام سے مشہور ہوا۔ میموری کو منطقی طور پر دو شعبوں میں تقسیم کیا گیا ہے، آپریٹنگ سسٹم کے لیے گلوبل ایڈریس کی جگہ پر کم میموری پتے مختص کرنا اور انفرادی پروگراموں کے لیے کئی متوازی مقامی ایڈریس کی جگہوں پر سافٹ ویئر اور ہائی میموری پتے کی حمایت کرنا۔ ایڈریس خالی جگہوں کو نمبر دیا گیا ہے، صفر گلوبل کی طرف اشارہ کرتا ہے، 1. n مقامی ایڈریس خالی جگہوں کی طرف اشارہ کرتا ہے۔ ڈیٹا کا اشتراک کرنے والے پروگرام خود بخود اسی ایڈریس کی جگہ پر رکھے جاتے ہیں۔ ان خصوصیات کو استعمال کرنے کے لیے پروگرام کوڈ میں ترمیم کی ضرورت نہیں تھی۔ دونوں حلوں کو یکجا بھی کیا جا سکتا ہے، لیکن آخر کار ایم سی پی میموری کی ضروریات اور پروگرام ڈیٹا شیئرنگ کی ضروریات نے ایڈریس خالی جگہوں کے زیادہ سے زیادہ سائز کو پیچھے چھوڑ دیا۔ 1980 کی دہائی کے اوائل میں اے سیریز کی آمد کے ساتھ، اس فیلڈ کے معنی کو ماسٹر ڈسکرپٹر کا پتہ رکھنے کے لیے تبدیل کر دیا گیا، جس کا مطلب ہے کہ 1 میگا بائٹ ڈیٹا بلاکس مختص کیے جا سکتے ہیں، لیکن یہ کہ مشین کی میموری کو گیگا بائٹس یا شاید ٹیرابائٹس تک بڑھایا جا سکتا ہے۔ اس فن تعمیر کو اے ایس ڈی (ایڈوانسڈ سیگمنٹ ڈسکرپٹرز) میموری کا نام دیا گیا تھا۔ اس کے لیے ایک نئے عام مائیکرو کوڈ کی وضاحت کی ضرورت تھی، جسے بیٹا کہا جاتا ہے۔ اے ایس ڈی میموری کے پیچھے اہم بصیرت جان میک کلینٹاک ہے۔ بعد میں 3 بٹ میموری ٹیگ کو 4 بٹ تفصیلات تک بڑھا دیا گیا، جس سے سیگمنٹ ڈسکرپٹر سائز میں 20 سے 23 بٹس تک بڑھ سکتا ہے، جس سے بیک وقت مزید میموری کو ایڈریس کیا جا سکتا ہے۔ یہ مائیکرو کوڈ کی تفصیلات لیول گاما کے نام سے مشہور ہوئیں۔ میموری مینجمنٹ ورچوئل میموری کے لیے ایک اور اہم فائدہ حاصل ہوا۔ B5000 ڈیزائن میں، اگر ڈیٹا بلاک تیار کیا گیا تھا، تو اس بلاک کا حوالہ دینے والے تمام وضاحتیں موجود بٹ اور ایڈریس کو اپ ڈیٹ کرنے کے لیے تلاش کرنے کی ضرورت تھی۔ ماسٹر ڈسکریپٹر کے ساتھ، صرف ماسٹر ڈسکریپٹر میں موجود بٹ کو تبدیل کرنے کی ضرورت ہوتی ہے۔ اس کے علاوہ ایم سی پی کمپکشن کے لیے میموری میں بلاکس کو منتقل کر سکتا ہے اور اسے صرف ماسٹر ڈسکرپٹر میں ایڈریس تبدیل کرنے کی ضرورت ہوتی ہے۔ B5000 اور زیادہ تر دوسرے نظاموں کے درمیان فرق یہ ہے کہ دوسرے نظام بنیادی طور پر پیجڈ ورچوئل میموری کا استعمال کرتے ہیں، یعنی صفحات کو ان میں موجود معلومات کی ساخت سے قطع نظر مقررہ سائز کے حصوں میں تبدیل کیا جاتا ہے۔ B5000 ورچوئل میموری مختلف سائز کے حصوں کے ساتھ کام کرتی ہے جیسا کہ وضاحتیں بیان کرتی ہیں۔ جب میموری کو ایک مخصوص صلاحیت تک بھرا جاتا ہے، تو "ورکنگ سیٹ شیرف" نامی ایک او ایس عمل کو یا تو کمپیکٹ میموری کے لیے استعمال کیا جاتا ہے یا حصوں کو میموری سے باہر منتقل کرنا شروع کر دیا جاتا ہے۔ یہ پہلے کوڈ کے حصوں کا انتخاب کرتا ہے، کیونکہ یہ تبدیل نہیں ہو سکتے اور کوڈ فائل میں اصل سے دوبارہ لوڈ کیے جا سکتے ہیں، اس لیے لکھنے کی ضرورت نہیں ہے، اور پھر ڈیٹا کے حصے جو ورچوئل میموری فائل میں لکھے جاتے ہیں۔ پی-بٹ انٹرپٹس نظام کی کارکردگی کی پیمائش کے لیے بھی مفید ہیں۔ پہلی بار مختص کرنے کے لیے، 'init p-bits' کسی پروگرام میں ممکنہ کارکردگی کے مسئلے کی نشاندہی کرتا ہے، مثال کے طور پر اگر کسی صف کو مختص کرنے کے طریقہ کار کو مسلسل کال کیا جاتا ہے۔ ڈسک پر ورچوئل میموری سے بلاکس کو دوبارہ لوڈ کرنا سسٹم کی کارکردگی کو نمایاں طور پر خراب کر سکتا ہے اور یہ کسی مخصوص کام کی غلطی نہیں ہے۔ یہی وجہ ہے کہ آج کے بہت سے کمپیوٹر میموری کو شامل کرکے سسٹم کی کارکردگی میں اضافہ کر سکتے ہیں۔ B5000 مشینوں پر، 'دیگر p-بٹس' سسٹم کے مسئلے کی نشاندہی کرتے ہیں، جسے یا تو دن بھر کمپیوٹنگ کے بوجھ کو بہتر طریقے سے متوازن کرکے، یا مزید میموری شامل کرکے حل کیا جا سکتا ہے۔ اس طرح بروس کے بڑے نظاموں کا فن تعمیر انفرادی کاموں اور مجموعی طور پر نظام دونوں کو بہتر بنانے میں مدد کرتا ہے۔ بفر اوور فلو پروٹیکشن ڈسکرپٹرز کے بارے میں نوٹ کرنے کے لیے آخری اور شاید سب سے اہم نقطہ یہ ہے کہ وہ سسٹم سیکیورٹی اور پروگرام کی درستگی کے تکمیلی تصورات کو کس طرح متاثر کرتے ہیں۔ آج کے آپریٹنگ سسٹم سے سمجھوتہ کرنے کے لیے ہیکر کے بہترین ٹولز میں سے ایک بفر اوور فلو ہے۔ سی، خاص طور پر، سٹرنگ کے اختتام کو نشان زد کرنے کے لیے سب سے قدیم اور غلطی کا شکار طریقہ استعمال کرتا ہے، ڈیٹا اسٹریم میں ہی اینڈ آف سٹرنگ سینٹینل کے طور پر نیل بائٹ کا استعمال کرتا ہے۔ اشاریہ بند وضاحتیں کے ذریعے B5000 پر اشارے نافذ کیے جاتے ہیں۔ انڈیکسنگ آپریشنز کے دوران، ہر انکریمنٹ پر پوائنٹروں کی جانچ پڑتال کی جاتی ہے تاکہ یہ یقینی بنایا جا سکے کہ نہ تو ماخذ اور نہ ہی منزل کے بلاکس حد سے باہر ہیں۔ اسکین یا ریپلیس آپریشن کے دوران، میموری کے بڑے بلاکس کو پڑھنے یا کاپی کرنے کے لیے استعمال ہونے والے میکانزم، ماخذ اور منزل دونوں کو ایک درست میموری ٹیگ کے لیے ہر لفظ کے اضافے پر چیک کیا جاتا ہے۔ میموری کا ہر حصہ ٹیگ 3 الفاظ سے جڑا ہوا ہے، جو اس طرح کے آپریشن کو ناکام بنا دے گا۔ انٹیگریٹی حساس ڈیٹا پر مشتمل میموری کا ہر حصہ، جیسے پروگرام کوڈ، ٹیگ 3 الفاظ میں محفوظ کیا جاتا ہے، جس سے ایک بے قابو پڑھنے-ترمیم کی بات ہی چھوڑ دیں-ناممکن ہو جاتا ہے۔ اس طرح سافٹ ویئر کی تیاری شروع ہونے سے پہلے ہی پروگرام کی غلطیوں کے ایک اہم ذریعہ کا پتہ لگایا جا سکتا ہے، اور سسٹم کی سلامتی پر زیادہ اہم قسم کے حملے ممکن نہیں ہیں۔ حوالہ جات بوروز کے مین فریم کمپیوٹرز