سمفورٹ اور ملٹی کے درمیان فرق
سیمفورٹ بمقابلہ Mutex
سمفورٹ میں ایک عام وسائل یا ایک اہم ذریعہ تک رسائی حاصل نہیں ہے جو اس بات کا یقین کرنے کے لئے استعمال کیا جاتا ہے کہ ایک سے زیادہ عمل ایک عام نہیں ہیں متوازی پروگرامنگ ماحول میں وسائل یا ایک ہی وقت میں ایک اہم سیکشن. مردار تالے اور دوڑ کی حالتوں سے بچنے کے لئے سیمففارم استعمال کیے جاتے ہیں. Mutex (Mutual Exclusion Object) بھی ایک ہی وقت میں مشترکہ وسائل تک رسائی سے بچنے کے لئے استعمال کیا جاتا ہے جس میں کئی مواصلاتی عمل ہوتے ہیں.
ایک سمفور کیا ہے ؟
سمفور ایک ڈیٹا ڈھانچہ ہے جس میں اہم حصوں میں باہمی جلاوطن کرنے کے لئے استعمال کیا جاتا ہے. سیمففورس بنیادی طور پر دو آپریشنز کا انتظار کرتے ہیں جو انتظار (تاریخی طور پر پی پی کے نام سے جانا جاتا ہے) اور سگنل (تاریخی طور پر V کے طور پر جانا جاتا ہے). انتظار آپریشن سمفور کھولنے تک ایک عمل کو روکتا ہے اور سگنل آپریشن ایک اور عمل (دھاگے) داخل کرنے کی اجازت دیتا ہے. ہر سیمفورڈ منتظر عمل کی قطار کے ساتھ منسلک ہے. جب تھریڈ آپریشن کو ایک دھاگے سے بلایا جاتا ہے تو، اگر سمفور کھلے ہو تو، تھریڈ جاری رہسکتا ہے. اگر سیمفارور بند ہوجاتا ہے جب تک کہ ایک تار کے ذریعہ منتقلی کا انتظار ہوتا ہے، تو دھاگے بند ہوجاتا ہے اور اسے قطار میں انتظار کرنا پڑتا ہے. سگنل آپریشن ایک سیمفارور کھولتا ہے اور اگر قطار ایک قطار ہے جو قطار میں انتظار کررہا ہے، تو اس عمل کو آگے بڑھنے کی اجازت دی جاتی ہے اور اگر قطار میں انتظار کرنے والے کوئی سلسلہ موجود نہیں تو اگلے سلسلے کے لئے سگنل یاد کیا جاتا ہے. دو قسم کے سیمفافسس ہیں جن میں mutex سیمفورس کہا جاتا ہے اور سیمفورسز کا شمار کرتے ہیں. Mutex سیمفورسز ایک وسائل تک رسائی حاصل کرنے کی اجازت دیتا ہے اور شمار کرتے ہوئے سیمفافس ایک سے زیادہ سلسلے کو وسائل تک رسائی حاصل کرنے کی اجازت دیتا ہے (جس میں کئی یونٹس موجود ہیں).
Mutex کیا ہے؟
جب ایک کمپیوٹر ایپلی کیشن شروع ہو جاتی ہے، تو یہ ایک متقابلہ بنائے گا اور اسے وسائل میں منسلک کرے گا. جب اس سلسلے کو وسائل کے ذریعہ استعمال کیا جاتا ہے، تو اسے بند کردیا جاتا ہے اور دوسرے موضوعات اس کا استعمال نہیں کرسکتے ہیں. اگر کوئی دوسرا دھاگہ اسی وسائل کا استعمال کرنا چاہتا ہے، تو اسے ایک درخواست کرنا ہوگا. پھر اس کا سلسلہ ایک قطار میں رکھا جائے گا جب تک کہ سب سے پہلے دھاگے کو وسائل سے ختم نہ ہو. جب سب سے پہلے دھاگے کو وسائل کے ساتھ ختم ہوجاتا ہے تو، تالا ہٹا دیا جاسکتا ہے اور قطار میں انتظار کرنے والی دھاگہ وسائل تک رسائی حاصل کرسکتا ہے. اگر قطار میں انتظار کر رہے ہیں تو کئی موضوعات ہیں، انہیں گھومنے والی بنیاد پر رسائی دی جاتی ہے. عملی طور پر، جب mutex کئی موضوعات کے درمیان ایک وسائل تک رسائی کا متبادل بناتا ہے، تو یہ ایک ہی وقت میں ایک ہی ذریعہ وسائل استعمال کررہا ہے جیسے یہ نظر آتا ہے. لیکن اندرونی طور پر صرف ایک ہی موضوع ایک مخصوص وقت میں وسائل تک رسائی حاصل کر رہا ہے.
سمفورٹ اور Mutex کے درمیان کیا فرق ہے؟
اگرچہ، متفرق پروگرامنگ کے ماحول میں باہمی جلاوطنی حاصل کرنے کے لئے سیمفورسز اور متفرق اشیاء دونوں استعمال ہوتے ہیں، ان میں کچھ اختلافات ہیں. ایک mutex اعتراض صرف ایک واحد موضوع کو ایک وسائل یا اہم سیکشن کو کھونے کے لئے کی اجازت دیتا ہے، جبکہ سیمفورس ایک وسائل (زیادہ سے زیادہ اجازت دہندگان کی تعداد کے تحت) تک بیک وقت تک رسائی حاصل کرنے کی اجازت دیتا ہے.mutex اشیاء کے ساتھ، دوسرے سلسلے جو وسائل تک رسائی حاصل کرنا چاہتے ہیں قطار میں انتظار کرنا پڑے گا، جب تک موجودہ سلسلہ وسائل کا استعمال نہ کریں.