How memory Works

How Memory Works

میموری کے استعمال کو سمجھیں

جدید آپریٹنگ سسٹم جہاں زیادہ سہولیات کے حامل ہوتے ہیں، وہیں انہیں یہ سہولیات صارفین تک بہتر انداز میں پہنچانے کے لئے اچھے ہارڈویئر کی ضرورت پڑتی ہے۔ ایک زمانہ وہ بھی تھا کہ چند میگا بائٹس کی ریم والے کمپیوٹر پر قدیم ونڈوز آپریٹنگ سسٹم ہنسی خوشی چلا کرتے تھے۔ لیکن اب صورت حال مختلف ہے۔ جدید مائیکروسافٹ ونڈوز آپریٹنگ سسٹم کو اچھے سے چلنے کے لئے درکار میموری میگا بائٹس کی حد سے نکل کر گیگا بائٹس میں پہنچ چکی ہے۔

جب آپریٹنگ سسٹم کی شاہ خرچیاں بڑھیں تو باقی ایپلی کیشن سافٹ ویئر کیوں پیچھے رہتے؟ ہمارے روز مرہ استعمال کے بعض سافٹ ویئر میموری کے معاملے میں اس قدرے بھوکے ہوتے ہیں کہ آپریٹنگ سسٹم سے بھی زیادہ میموری کھا جاتے ہیں۔ ایسے سافٹ ویئر کی ایک مثال نئے ویب براؤزر ہیں جو بعض حالات میں گیگا بائٹس میموری استعمال کررہے ہوتے ہیں۔

(جاری ہے)


اگر کوئی سافٹ ویئر کمپیوٹر میں دستیاب میموری کا بے دردی سے استعمال کررہا ہوں اور آپریٹنگ سسٹم یا دیگر سافٹ ویئر کے استعمال کے لئے میموری نہ بچے تو آپریٹنگ سسٹم کی مجموعی کارکردگی پر انتہائی برے اثرات مرتب ہوتے ہیں اور وہ انتہائی سست رفتار ہوجاتا ہے۔


اگرچہ ریم کی قیمت وقت کے ساتھ ساتھ انتہائی کم ہو کر چند ہزار روپے فی گیگا بائٹس تک آپہنچی ہے اور لوگ زیادہ سے زیادہ ریم خرید کر کمپیوٹر میں نصب کرلیتے ہیں۔ لیکن ایسا ہر بار ممکن نہیں ہوتا۔32 بٹ کمپیوٹر میں 4 گیگا بائٹس سے زیادہ ریم نہیں لگائی جاسکتی۔ جبکہ 64بٹ کمپیوٹر جس پرونڈوز کا 32 بٹ ورژن نصب ہو، بھی 4 گیگا بائٹس سے زیادہ ریم استعمال نہیں کرسکتا۔

مائیکروسافٹ ونڈوز سیون 32 بٹ اسٹارٹر ورژن زیادہ سے زیادہ 2 گیگا بائٹس کی ریم استعمال کرسکتا ہے جبکہ 32 بٹ الٹی میٹ ورژن 4 گیگا بائٹس۔ اس کے مقابلے میں 64 بٹ کمپیوٹر پر نصب 64 بٹ آپریٹنگ سسٹم 192 گیگا بائٹس تک ریم استعمال کرسکتا ہے۔
کچھ معاملوں خصوصاً لیپ ٹاپس اور نو ٹ بکس میں 64 بٹ پروسیسر ہونے کے باوجود ہارڈویئر 4 یا چند گیگا بائٹس سے زیادہ ریم کی حمایت (support) نہیں کرتا۔
ایسے حالات میں جہاں زیادہ ریم لگانے کی گنجائش نہ ہو او رمحدود میموری کے ساتھ کام کرنا مجبوری ہو، اگر کوئی سافٹ ویئر میموری کا بے دریغ استعمال کررہا ہو تو بہت تکلیف ہوتی ہے۔ لہٰذا یہ جاننا کہ کون سا سافٹ ویئر ایسا کررہا ہوں اور کیوں کررہا ہوں، بہت ضروری ہے۔
مائیکروسافٹ ونڈوز سیون میں ریسورس مونیٹر میموری کے حوالے سے تفتیش کرنے کے لئے ایک بہترین ٹول ہے۔
اس سے پہلے کہ ہم ریسورس مونیٹر کے حوالے سے مزید بات کریں، بہتر ہوگا کہ ونڈوز سیون کے میموری کے انتظام کے طریقہ کار کو سمجھ لیا جائے۔
مائیکروسافٹ ونڈوز سیون کا میموری منیجر ایک مجازی میموری نظام (ورچوئل میمو ری سسٹم) بناتا ہے جس کے بنیادی جز کمپیوٹر میں نصب ریم اور ہارڈڈرائیو میں بنائی گئی پیج فائل (page file) ہوتے ہیں۔ مجازی میموری نظام کی وجہ سے سافٹ ویئر براہ راست ریم کو استعمال نہیں کرسکتے۔
بلکہ ورچوئل میموری سسٹم سافٹ ویئر کو درکار میموری فراہم کرتا ہے۔ اس کی نظام کی وجہ سے کوئی سافٹ ویئر کسی دوسرے سافٹ ویئر کے زیر استعمال میموری سے ڈیٹا پڑھ سکتا ہے نہ اس میں کوئی تبدیلی کرسکتا ہے۔ اگر ایسا نہ کیا جائے تو آپریٹنگ سسٹم پر چلنے والے سافٹ ویئر ایک دوسرے کے زیر استعمال میموری کو پڑھ لیں جو کہ سکیوریٹی کے لحاظ سے ایک خطرناک بات ہوگی۔
جبکہ اگر کوئی سافٹ ویئر کسی دوسرے سافٹ ویئر کے زیر استعمال میموری بلاک میں ڈیٹا تبدیل کردے تو سافٹ ویئر کریش ہوسکتا ہے۔
اس نظام کا ایک فائدہ یہ بھی ہے کہ آپریٹنگ سسٹم اور اس پر چلنے والے سافٹ ویئر کمپیوٹر میں نصب ریم سے زیادہ میموری کی درخواست کرسکتے ہیں۔ جسے یہ نظام ہارڈڈرائیو پر پیج فائل بنا کر پورا کرتا ہے۔
اب آئیں ریسورس مونیٹر کی بات کرتے ہیں۔
ریسورس مونیٹر کو کھولنے کے لئے اسٹارٹ مینیو کھولیں اور اس میں لکھیں:
Resource Monitor
جو ربط ظاہر ہو اس پر کلک کردیں۔ اس کے علاوہ آپ رَن باکس میں Resmon.exe لکھ کر بھی ریسورس مونیٹر کھول سکتے ہیں۔ جب ریسورس مونیٹر کھول جائے، اس میں Memory کے ٹیب پر کلک کریں۔ اس ٹیب کے تحت آپ کو میموری کے استعمال کے حوالے سے انتہائی اہم معلومات دیکھنے کو ملیں گی (ملاحظہ کیجئے تصویر نمبر 1)۔

میموری ٹیب کے تحت دستیاب معلومات دو حصوں میں منقسم ہیں۔ پہلے حصے میں Processes کا جدول ہے جبکہ اس حصے کے نیچے موجود دوسرے حصے میں کمپیوٹر میں نصب میموری کی تفصیل گراف کی شکل میں دکھائی گئی ہے۔ دائیں طرف کچھ براہ راست گراف نظر آرہے ہوتے ہیں۔
پروسسز کے جدول میں موجود معلومات بہت اہم ہے۔ اس جدول میں چھ کالم ہوتے ہیں جن کے بارے میں جاننا ضروری ہے۔
پہلا کالم Image کا ہے۔ تکنیکی زبان میں Image کسی پروسس کی ایگزی کیوٹ ایبل فائل کو کہتے ہیں۔ امیج کے کالم میں آپ کو جو پروسس نظر آرہے ہوتے ہیں، ان کے ناموں سے آپ بہ آسانی شناخت کرسکتے ہیں کہ ان کا تعلق کس سافٹ ویئر سے ہے۔ مثلاً اگر آپ کو امیج کے کالم میں excel.exe لکھا نظر آرہا ہے تو آپ آسانی سے بتا سکتے ہیں کہ اس پروسس کا تعلق مائیکروسافٹ ایکسل سے ہے۔
پروسسز کی اس فہرست میں ایک بڑی تعداد آپریٹنگ سسٹم کے پروسسز کی ہوتی ہے۔ان میں ایک بڑی تعداد svchost.exe امیج کی ہوتی ہے۔ یہ امیج ونڈوز کی مختلف سروسز چلانے کے لئے استعمال ہوتی ہے اور آپ svchost.exe کے ہر پروسس کے ساتھ قوسین میں سروس کا نام کا بھی دیکھ سکتےہیں۔
اگلا کالم PID کا ہے۔ یہ پروسس آئی ڈی ہے جو کہ ہر پروسس کے لئے منفرد ہوتی ہے۔
دو مختلف پروسسز کے پروسس آئی ڈی ایک جیسے نہیں ہوسکتے۔
Commit کالم میں ورچوئل میموری کی وہ مقدار بتائی جارہی ہوتی ہے جو پروسس کے زیر استعمال ہے۔ اس ورچوئل میموری میںطبعی میموری یا ریم اور ورچوئل ریم دونوں شامل ہوتے ہیں۔
Working Set کالم میں میموری کی صرف وہ مقدار ظاہر ہورہی ہوتی ہے جو کہ پروسس نے طبعی (فیزیکل) میموری میں اپنے زیر استعمال رکھی ہوئی ہے۔
ورکنگ سیٹ میموری کو مزید دو حصوں میں تقسیم کیا جاتا ہے۔ یہ Shareable اور Private میموری ہے۔
شیئر ایبل میموری کسی پروسس کے زیر استعمال میموری کا وہ حصہ ہوتا ہے جو وہ دوسرے کسی پروسس کے ساتھ مل بانٹ کر استعمال کرتا ہے۔ اس حصے میں عموماً وہ ڈیٹا محفوظ کیا جاتا ہے کہ جو مختلف پروسسز کو درکار ہوسکتا ہے۔ اس سے میموری کا استعمال کم ہوجاتا ہے۔
مثال کے طور پر Kernel32 ڈائنامک لنک لائبریری بہت سے پروسسز کو درکار ہوتی ہے۔ اس لئے اسے شیئر ایبل میموری میں محفوظ کیا جاتا ہے تاکہ سب پروسسز اسے استعمال کرسکیں۔
پرائیوٹ میموری کے نام سے ہی ظاہر ہے کہ کسی پروسس کے زیر استعمال میموری کا وہ حصہ ہوتا ہے جسے صرف وہ پروسس ہی استعمال کرسکتا ہے اور کوئی نہیں۔ پرائیوٹ میموری کے کالم میں نظر آنے والی میموری کی مقدار بتاتی ہے کہ کوئی ایپلی کیشن دراصل کس قدر میموری استعمال کررہی ہے۔

جب کوئی پروسس طبعی طور پر دستیاب میموری سے زیادہ میموری استعمال کرنے کی کوشش کرتا ہے تو ورچوئل میموری نظام میموری میں سے کچھ ڈیٹا ہارڈڈرائیو پر ورچوئل میموری یا پیج فائل میں محفوظ کردیتا ہے۔ پھر جب پروسس ایسے ڈیٹا کی درخواست کرتا ہے جو کہ پیج فائل میں محفوظ ہے تو اسے Hard Fault کہا جاتا ہے۔ Hard Faults/Sec کے کالم میں یہی بتایا جارہا ہوتا ہے کہ کسی پروسس نے ایک سیکنڈ میں اوسطاً کتنی بار ہارڈڈرائیو پر محفوظ پیج فائل سے ڈیٹا حاصل کرنے کی درخواست کی۔

اگر آپ کسی سافٹ ویئر کے میموری کے استعمال پر نظر رکھنا چاہتے ہیں تو ہارڈ فالٹس کو سمجھنا اور ان پر نظر رکھنا بے حد ضروری ہے۔ جب آپ کوئی نئی ایپلی کیشن یا فائل کھولتے ہیں تو آپریٹنگ سسٹم کا میموری منیجر پہلے سے چلنے والے مختلف پروسسز کے ورکنگ سیٹ اور نئی ایپلی کیشن کی جانب سے کی گئی میموری کی درخواست کا تجزیہ کرتا ہے۔ جیسے جیسے کسی پروسس کا ورکنگ سیٹ بڑھتا جاتا ہے، میموری منیجر اس پروسس کی جانب سے کی گئی مزید میموری کی درخواست اور دیگر پروسسز کی درخواستوں کے درمیان توازن قائم کرتا ہے۔
جب پروسسز کی جانب سے میموری کی درخواست کردہ مقدار ضرورت سے زیادہ بڑھنے لگے تو میموری منیجر ہر پروسس کے ورکنگ سیٹ میں کمی کرکے اس کا کچھ حصہ پیج فائل میں منتقل کردیتا ہے۔ آسان زبان میں بات کی جائے تو میموری کا کچھ حصہ ہارڈڈسک پر محفوظ کردیا جاتا ہے۔
جب پروسس کو میموری کا ایسا حصہ درکار ہوتا ہے جو کہ ڈسک پر لکھا ہوا ہے ، میموری منیجر ڈسک پر سے ڈیٹا پڑھ کر پروسس کے حوالے کردیتا ہے۔
اسے ہارڈفالٹ کہا جاتا ہے۔ ہارڈفالٹ کا واقع ہونا معمولی بات ہے۔ لیکن اگر کوئی سافٹ ویئر بہت زیادہ ہارڈ فالٹ پیدا کررہا ہے تو اس کا مطلب ہے کہ اسے درکار میموری کا ایک بڑا حصہ پیج فائل میں محفوظ ہے۔
یاد رکھیں کہ ریم کی رفتار ہارڈڈسک کی رفتار سے کافی زیادہ ہوتی ہے۔ ریم سے یا ورکنگ سیٹ سے ڈیٹا حاصل کرنا کسی پروسس کے لئے برق رفتاری کا عمل ہے لیکن ہارڈ فالٹ کی صورت میں میموری منیجر کو ڈسک سے ڈیٹا حاصل کرنا ہوتا ہے جو کہ ریم کے مقابلے میں کئی گنا سست رفتار ہے۔
لہٰذا جب کوئی سافٹ ویئر ہارڈ فالٹ پیدا کرتا ہے تو وہ خود بھی سست رفتار ہوجاتا ہے۔ ہارڈ فالٹس اور سافٹ ویئر کی کارکردگی کا آپس میں براہ راست تعلق ہے۔ اس کی ایک مثال یوںبھی دی جاسکتی ہے کہ جب آپ کسی کمپیوٹر کو ہائبرنیٹ کرتے ہیں تو میموری کا تمام تر مواد ہارڈڈسک پر ایک فائل محفوظ کردیا جاتا ہے اور جب آپ کمپیوٹر کو ہائبرنیشن سے جگاتے ہیں تو آپریٹنگ سسٹم ہارڈڈسک سے میموری کا تمام ڈیٹا دوبارہ میموری میں بحال کردیتا ہے۔
اس دوران آپریٹنگ سسٹم انتہائی سست رفتاری کا مظاہرہ کررہا ہوتا ہے اور اس پر چلنے والی ایپلی کیشنز بھی سست رفتاری سے کام کرتی ہے۔ وجہ وہی ہے کہ ہارڈڈسک سے ڈیٹا پڑھنے کی رفتار ریم کے مقابلے میں بہت کم ہوتی ہے۔
اگر کوئی پروسس زیادہ ہارڈ فالٹس پیدا کرتا ہے تو اس کا ایک مطلب یہ بھی لیا جاسکتا ہے کہ آپ کے کمپیوٹر میں نصب ریم کافی نہیں اور اس میں اضافے کی ضرورت ہے۔
ہارڈ فالٹس کم کرنے کا عارضی حل یہ ہے کہ چلنے والے باقی پروسس بند کردیئے جائیں تاکہ دستیاب ورکنگ سیٹ (طبعی میموری ) میں اضافہ ہوسکے۔
فیزیکل میموری ٹیبل
ریسورس مونیٹر میں پروسسز کے جدول کے نیچے ایک رنگین گراف نظر آرہا ہوتا ہے۔ یہ گراف تصویری شکل میں بتاتا ہے کہ ریم کس طرح استعمال ہورہی ہے۔ اسی گراف کے نیچے ہر رنگ کا مطلب بھی لگا ہوتا ہے۔

ہارڈویئر ریزروڈ (Reserved) میموری سے مراد میموری کا وہ حصہ ہوتا ہے جو کمپیوٹر میں نصب مختلف ہارڈ ویئر ڈیوائسز نے اپنے لئے مخصوص کررکھا ہے۔ مثلاً اگر آپ کے کمپیوٹر میں نصب ویڈیو کارڈ ریم کو ہی بطور ویڈیو میموری استعمال کرتاہے تو اس کے لئے مخصوص میموری بھی ہارڈویئر ریزروڈ میموری میں شامل ہوگی۔ میموری کا یہ حصہ کتنا ہوگا، اس بات کا انحصار کمپیوٹر میں نصب ہارڈویئر ڈیوائسز پر ہوتا ہے۔

In Use میموری کے نام سے ہی ظاہر ہورہا ہے کہ یہ ریم کا وہ حصہ ہے جسے آپریٹنگ سسٹم اور اس پر چلنے والی ایپلی کیشنز استعمال کررہی ہیں۔
اس گراف میں Modified میموری کا حصہ نارنجی رنگ میں ظاہر کیا جاتا ہے۔ اس حصے میں وہ ڈیٹا ہوتا ہے جس میں تبدیلی کی گئی ہے لیکن اسے دوبارہ واپس حاصل کرنے کی درخواست کچھ وقت سے نہیں کی گئی۔ تکنیکی اعتبار سے موڈیفائڈ میموری زیر استعمال میموری نہیں ہوتی اور اگر کافی وقت گزر جانے کے بعد بھی اس میں محفوظ ڈیٹا حاصل کرنے کی درخواست نہ کی جائے تو ڈیٹا کو پیج فائل میں منتقل کردیا جاتا ہے۔

Standby میموری Cache میموری کی طرح کام کرتی ہے۔ یہاں وہ ڈیٹا محفوظ کیا جاتا ہے جسے پروسس نے ورکنگ سیٹ سے نکال دیا ہے مگر اس ڈیٹا کا تعلق پروسس کے ورکنگ سیٹ میں موجود دوسرے ڈیٹا سے ابھی تک باقی ہے۔ اسٹینڈ بائے میموری میں محفوظ ڈیٹا کی اس کی اہمیت کے مطابق درجہ بندی کی جاتی ہے۔ درجہ بندی میں سب سے اوپر شیئر ایبل ڈیٹا ہوتا ہے۔
Free میموری کے بارے میں آپ نے یقیناً اندازہ لگا لیا ہوگا کہ یہ ریم کا وہ حصہ ہے جس پر ابھی کوئی ڈیٹا محفوظ نہیں یا پھر وہ حصہ جو کہ کسی پروسس کے زیر استعمال تھا لیکن اب وہ پروسس بند ہوچکا ہے۔
جب کوئی نیا پروسس شروع کیا جاتا ہے تو میموری منیجر Free میموری میں سے ہی کوئی حصہ نئے پروسس کے لئے مخصوص کرتا ہے۔
فری میموری کی قابل ذکر مقدار کا دستیاب ہونا اس بات کی نشانی ہے کہ آپ کے کمپیوٹر میں مناسب میموری نصب ہے اور ہارڈ فالٹس بھی کم پیدا ہونگے یعنی سافٹ ویئر بھی تیز رفتاری سے چلیں گے۔

(بشکریہ: ماہنامہ کمپیوٹنگ)

تاریخ اشاعت: 2017-03-10

More Technology Articles