 بسم اللہ الرحمن الرحیم آج ہم موڈیول 163 دسکس کریں گے موڈیول 163 ہے about slim read write locks اس کو ہم انشارڈ کریں گے SRWs تو SRWs یہ ایک اور اپٹمائزیزیشن کے لیے ہے کہ ہم سنکرانیزیشن یا کنکرنسی کی وجہ سے اورہڈزیں ان کو مزید اپٹمائز کر سکیں ہم نے پریویس لیے دیکھا ہے جی کرٹکل سیکشنز جو ہے وہ بھی ایک اچھی کنسٹرکٹس ہیں اس کے اندر اورہڈز کام ہوتے ہیں اور مزید آپ سپن کونکورجسٹ کر کے اس کو مزید اپٹمائز کر سکتے ہیں اس کے لیوہ آپ slim read write locks کبھی استعمال کر سکتے ہیں slim read write locks یہ ایک بڑا useful windows کا فیچر ہے اس کو slim اس لی کا آجا رہا ہے کیونکہ lightweight ہیں بہت کم processing use کرتے ہیں few instructions use کرتے ہیں اور read write اس وجہ سے کہ اس کے اندر دو modes available ہیں ایک mode جو کے exclusive mode ہے جس کے اندر کیا آپ write کر سکتے ہیں جس کے اندر جو بھی اس کو lock کرے گا وہ اس سیکشن کے اندر دیتا کو write کر سکے گا اور دوسر mode جو ہے وہ exclusive نہیں ہے وہ share mode ہے وہ read mode ہے جب آپ نے دیتا کو read کرنا ہوتا ہے تو وہ share طریقے سے read کیا جا سکتا ہے تو اس کس کے اندر جو آپ نے سیکشن بنائے ہوئے اس کو مختلف threads at a time read کر سکیں گی تو یہاں پہ آپ کے پاس دو modes available ہیں ایک read کا mode اور ایک write کا mode جس طرح دوسرے آپ کے پاس constructs ہیں جسے کے critical section ہے یا mutex' ہیں یہ دونوں جو constructs ہیں یہ exclusive mode Provide کرتے ہیں ان کے پاس shared mode نہیں ہے share mode جو ہے وہ آپ کے پاس صرف srw's کے اندر available ہے srw's جو ہے کسی بھی mode کے اندر آپ ان کو use کر سکتے ہیں یا تو exclusive mode کے اندر یا share mode کے اندر اور once آپ ان کو اکوائر کر لیتے ہیں تو آپ mode کو upgrade یا downgrade نہیں کر سکتے ہیں یعنی exclusive ہاں تو اس کو آپ share mode میں share ہے تو اس کو آپ exclusive mode میں convert نہیں کر سکتے ہیں وہ آپ before hand decided کرنا ہے کہ آپ نے srw's کو اگر acquire کرنا ہے تو کس mode میں acquire کرنا ہے exclusive میں کرنا ہے یا share میں کرنا ہے اور یہ lightweight ہوتے ہیں کیونکہ یہ small ہوتے ہیں ان کے بہت کم processing involved ہے ان کے ساتھ جو pointer associated ہیں جو دوسرے ہمارے ہیں ان کے ساتھ جو pointer associated ہیں ان کے اندر کافی بڑی بڑی values ہوتی ہیں دوسرے constructs کے اندر لیکن اس کے اندر pointer associated ہے وہ 32 بڑی یا 64 بڑی کی اس کے اندر value بڑی ہوتی ہے کوئی kernel object جو ہے اس کے ساتھ associated نہیں ہے kernel کی کوئی آگے یہ call perform نہیں کہا رہا ہے بڑا ہی simple سا اس کا operation ہے اس کی وجہ سے مزید یہ resources کو اتنے جاتا ہے بہت minimal resources کو use کرتا ہے اس کی processing مزید جو ہے fast ہو جاتی ہے اور ایک اور چیز جو ہے جس طرح ہم نے پریویس لے دیکھا تھا critical section جو وہ recursion کو support کرتا ہے جب اب recursive call کرتے ہیں تو previous status save ہو جاتا ہے اس کے اندر recursion کو support کرنے کا mechanism نہیں ہے جس کی وجہ سے یہ اور بھی زیادہ simple ہو جاتا ہے اور faster ہو جاتا ہے spin count کی جو value ہے اس کے اندر وہ operating سسٹم اپنے لہاں سے خودی اپنے لہاں سے اس نے preset کیوی ہے اس نے مختلف experiments کے اندر دیکھا ہوا ہے کہ مختلف most of the situations کے لیے کیا spin count value جو اس کے لیے most suitable ہے اور وہ operating سسٹم نے preset کیوی ہے آپ اس کے spin count کی value کو change نہیں کر سکتے ہیں اور ایک اور فہدہ spin sour w's کا یہ ہے کہ آپ اگر ایک sour w create کرتے ہیں تو جب آپ اس کو use کرلتے ہیں تو اس کے بعد اس کو delete کرنا لازمی نہیں ہے اگر نہیں بھی delete کرتے تو اس سے بہت عادہ فرق نہیں پڑتا اور sour w's کے ساتھ جو non blocking calls ہیں جس طرح سے critical section کے ساتھ سرٹے non blocking calls ہیں جیسے try and critical section یہ value calls جو یہ associated نہیں ہے اس کے ساتھ کوئی non blocking call جو وہ اس طرح کی associated نہیں ہے تو sour w کو use کرنے کا آپ کو فہدہ یہ ہوگا کہ کم سے کم processing ہوگی آپ اس کو دو mode دور modes کے اندر اپنے resources کو استعمال کر سکیں گے exclusive mode کے اندر بھی استعمال کر سکتے ہیں اور in case کوئی ایسا resource ہے جس کو at a time کئی ساری threats نے at a time read کرنا تو اس کو آپ read mode کے اندر بھی استعمال کر سکیں گے جوکہ shared mode ہے