موضوع : بررسی ماشین های همزمانی
توضیح : این فایل به صورت ورد و آماده چاپ می باشد
– همزماني
ماشينهاي همزماني با روالهاي نرم افزاري در سطح كاربر ساخته شده اند كه آن استنادي است كه دستورات همزماني موجود در سخت افزار.
براي چند پردازنده هاي كوچكتر يا وضعيت رقابتي پايينتر،قابليت كليد سخت افزاري در يك دستور بيوفقه يا ترتيب و توالي دستور در بازيابي ذره وار(اتميك) و تغيير يك مقدار است و مكانيزم همزماني نرم افزاري اين توانايي را مي سازد در اين بخش ما روي پياده سازي عمليات همزماني،باز كردن و قفل كردن تمركز مي كنيم.
Locl وunlock مي توانند بطور مستقيم در يك ممانعت متقابل بكار روند،همچنين در بكار بردن مكانيزمهاي همزماني پيچيده تر.
در يك مقياس بزرگتر در چند پردازنده ها يا در وضعيت رقابتي بالاتر،همزماني كارائي بيشتري را دارد چون رقابتهاي بيشتر تأخيرهاي اضافي را بوجود مي آورد ما در اينجا بحث مي كنيم كه چگونه مكانيزمهاي همزماني اوليه روي تعداد،بيشتري از پردازنده گسترش مي يابد.
اسانس سخت افزار اوليه
در قابليت كليد ما مستلزميم همزماني را در يك چند پردازنده كه مجموعه اي از سخت افزارهاي اوليه با قابليت خواندن ذره وار و يك مكان يابي حافظه است را اجرا كنيم بدون چنين قابليتي هزينه ساخت همزماني اوليه خيلي بيشتر خواهد بود و تعداد پردازنده ها افزايش خواهد يافت تعدادي قاعده دستورسازي براي سخت افزار اوليه وجود دارد كه در جهت بهبود قابليت خواندن ذره وار و مكان يابي مناسب استفاده مي شود و با چند راه مي توان خواندن و نوشتن ذره وار را بيان كرد. اين سخت افزار اوليه اساس ساخت بلوكهايي است كه در انواعي از عمليات همزماني سطح كاربر استفاده مي شود و همچنين شامل قفلها و مانع هاست.
بطور كلي در اين معماري نمي توان انتظار داشت كه كاربران روي سخت افزار اوليه كار كنند اما در عوض انتظار مي رود كه از سيستمهاي برنامه نويسي براي ساخت يك كتابخانه همزماني استفاده شود كه معمولاً يك پردازش پيچيده است.
حال بحث را با يك سخت افزار اوليه و چگونگي عمليات همزماني براي آن شروع مي كنيم يكي از انواع عمليات همزماني مبادله اتمي (atomic exchanye) است كه ارزش يك رجيستر را با حافظه عوض مي كند حال ببينيم چگونه از اين عمليات همزماني استفاده كنيم. فرض مي كنيم كه مي خواهيم يك قفل ساده بسازيم و در آن با ارزش 0صفر نشان مي دهيم كه قفل آزاد است و با 1 نشان مي دهيم كه غير قابل استفاده است در رجيستر و حافظه آدرس مطابق قفل است دستور emchanye 1 را برمي گرداند اگر پردازنده قبلاً دستيابي شده و در غير اينصورت 5 را برمي گرداند. در حالت ديگر آن مقدار با 1 تغيير مي كند و با حصول0 صفر از هر تغييري جلوگيري مي كند. بطور مثال فرض مي كنيم دو پردازنده داريم كه هر يك تلاش مي كند همزماني را عوض كند اين رقابت وقتي تمام مي شود . كه يكي از پردازنده ها تغيير را انجام مي دهد و 0 را برگرداند و در اينصورت پردازنده دوم 1 را باز خواهد گرداند آن كليد از مبادله اوليه براي اجدا كردن همزماني در عمليات اتميك استفاده مي كند. آن مبادله غيرقابل تقسيم است و دو مبادله همزمان با نوشتن مكانيزمهاي پشت سرهم (سريالي ) مرتب مي شود.
تعداد ديگر از اتميك هاي اوليه وجود دارد كه در انجام همزماني بكار برده مي شود و همه آنها قابليت خواندن و update كردن حافظه دارند و همچنين وضعيتي كه مي گويد آيا دو عمليات به صورت ذره وا انجام مي شود يا نه.
فهرست مطالب– همزماني 1
اسانس سخت افزار اوليه 1
اجراي قفلهاي به هم پيوسته 5
مدلهايي از حافظه هاي پايدار 8
ديدگاه برنامه نويس 10
مدل پايداري آرميده 11
آخرين تبصره در مدلهاي پايداري 12