بخشی از پاورپوینت
راهكارهاي همزماني در ويندوز
ويندوزها ، همگام سازي بين نخ هاي را به عنوان بخشي از معماري شيء فراهم مي كند
دو روش مهم همگام سازي عبارتند : از اشياي همگام سازي و اشياي بخش بحراني .
اشياي همگام سازي از توابع انتظار استفاده مي كنند .
ابتدا توابع انتظار را توصيف مي كنيم و سپس به اين دو نوع شيء مي پردازيم .
توابع انتظار
توابع انتظار به نخ اجاره مي دهند اجرايش را مسدود كند . توابع انتظار خاتمه نمي يابد تا معياري برآورده شود .
نوع تابع انتظار مجموعه اي از معيارهاي مورد استفاده را نشان مي دهد . وقتي تابه انتظار فراخواني مي شود،بررسي مي كند آيا معيار انتظار برآورده شده است تا خير؟ اگر معيار انتظار برآورده نشود .
نخ فراخوان وارد حالت انتظار مي شود . در حالي كه منتظر برآورده شدن معياري است، زمان پردازنده را مصرف نمي كند .
ساده ترين نوع تابع انتظار،بر روي يك شيء منتظر مي ماند
اشياي همگام سازي
راهكار مورد استفاده مجري ويندوز براي پياده سازي امكانات
همگام سازي ، خانواده اشياي همگام سازي است
هر نمونه از شيء همگام سازي مي تواند در حالت سيگنال داده
شده يا سيگنال داده نشده باشد .
نخ مي تواند بر روي شيء اي در حالت سيگنال داده نشده معلق
بماند . وقتي شيء به حالت سيگنال داده شده مي رود ، نخ آزاد
مي گردد . اين راهكار ساده است :
نخ درخواست انتظار را با استفاده از، دستگيره شيء همگام سازي
به مجري ويندوز مي فرستد . وقتي شيء وارد حالت سيگنال داده مي شود .
مجري ويندوز تمام اشياي نخي را كه روي آن شيء همگام سازي منتظر هستند آزاد مي سازد .
شيء رويداد
براي ارسال سيگنال به يك نخ به كار مي رود تا نشان دهد كه رويداد خاصي داده است .
به عنوان مثال ،
در ورودي و خروجي همپوشاني شده ، وقتي عمليات همپوشانبي به اتمام مي رسد.سيستم
يك شيء رويداد
خاص را در حالت سيگنال داده شده قرار مي دهد شيء mutex را ارائه مي كند موجب اعمال
انحصار متقابل دستيابي به منابع مي شود . به طوري كه در هر زمان فقط يك شيء نخ اجازه دستيابي دارد .
به اين ترتيب مثل يك سمافور دودويي عمل مي كند . وقتي شيء به حالت سيگنال داده شده مي رود ،
فقط يكي ازنخ هايي كه روي شيء منتظر هستند آزاد مي شود
Mutex ها مي توانند براي همگام سازي نخ هايي به كار روند كه فرآيندهاي مختلفي در حال اجرا هستند .
همانند Mutex ها ، اشياي سمافور نيز ممكن است بين نخ هايي در چند فرآيند ، مشترك باشند .
سمافور ويندوز ، سمافور شمارشي است . در اصل ،
شيء تايمر قابل انتظار ، در فواصل زماني و يا
در زمان خالصي سيگنال مي دهد .