شناسه پست: 15358
بازدید: 368

Task Synchronization
فهرست مطالب
هماهنگ سازی task  و thread ها و Ada  : 1
زمان دهی پویا و زمان دهی ایستا static semantic , dynamic semantic : 2
همزماني و مناطق بحراني 4
هسته های مرکزی انحصاری 5
غیر فعال کردن وقفه ها 6
Semaphores 7
قفل چرخشی 8
اجتناب از بن بست 9
توليد اطلاعات به صورت استاتيک و مسائل امنيتي آن 10
سيگنالها و ارتباطات ميان پردازشي 15
مديريت پردازش 18
هماهنگ سازی task  و thread ها و Ada  :
اجرای یک برنامه تحت Ada دربرگیرنده  اجرای یک یا چند task  می باشد.هر task ، یک يا چند thread  جداگانه برای کنترل مستقل یا همزمان در نقاطی که با سایر task ها تداخل دارد ایجاد می کند. شکل های مختلف این هماهنگ سازی و اثر متقابل بین task ها در این چند برگ توضیح داده می شود. این شکل ها به دسته بندی کلی زیر تقسیم می شوند :
1-  فعال سازی و نابود سازی یک task
2-  صدا زدن یک برنامه خاص که هماهنگ سازی را بر عهده بگیرد وداده ها و بخش های اشتراکی را مدیریت کند.
3- یک برنامه  وقفه ای  که شامل یک سری delay ها باشد. یا شامل یک سری برنامه های زمان بندی که به هر کدام از task زمان خاصی را بدهد.
4- یک سیستم خاتمه دهنده که به یک task اجهزه خاصی برای از بین بردن و از کار انداختن task دیگر می دهد.
 زمان دهی پویا و زمان دهی ایستا static semantic , dynamic semantic :
در طول یک دوره یک task غیر فعال  می تا زمانی که به فعالیت بازگردد. زمانی که یک task آماده شروع  فعالیت گردید باید بخش ها و داده های مورد نیاز کامپیوتر به آن اختصاص داده شود. هر چند که این اجرا ممکن است روي  یک سیستمmulti proccessorاجرا شود اما باز هم در چنین سیستم هایی اوقاتی پیش می آید که از دید task سیستم single proccess است و یا حتی روی هر یک از proccessor ها چندین task شروع به فعالیت می کنند. در این حالت به طور کلی دو نوع الگوریتم شروع به تقسیم بندی منابع سخت افزاری می نمایند که به نام های زمان دهی پویا و زمان دهی ایستا معروف هستند. هر چند هرکدام از این دو الگوریتم خود به الگوریتم های فراوان هماهنگ سازی دیگر تقسیم می شوند.
سیستم زمان دهی ایستا به این شکل عمل می کند که قبل از شروع به فعالیت task مشخصات آن را خوانده و به آن زمان می دهد. در صورتی که task ای از قبل نداند که چه مقدار زمان برای اجرا نیاز دارد این سیستم جوابگو  نخواهد بود.