تحقیق درباره هماهنگ سازی task و thread ها و Ada

راهنمای سایت

سایت اقدام پژوهی -  گزارش تخصصی و فایل های مورد نیاز فرهنگیان

1 -با اطمینان خرید کنید ، پشتیبان سایت همیشه در خدمت شما می باشد .فایل ها بعد از خرید بصورت ورد و قابل ویرایش به دست شما خواهد رسید. پشتیبانی : بااسمس و واتساپ: 09159886819  -  صارمی

2- شما با هر کارت بانکی عضو شتاب (همه کارت های عضو شتاب ) و داشتن رمز دوم کارت خود و cvv2  و تاریخ انقاضاکارت ، می توانید بصورت آنلاین از سامانه پرداخت بانکی  (که کاملا مطمئن و محافظت شده می باشد ) خرید نمائید .

3 - درهنگام خرید اگر ایمیل ندارید ، در قسمت ایمیل ، ایمیل http://up.asemankafinet.ir/view/2488784/email.png  را بنویسید.

http://up.asemankafinet.ir/view/2518890/%D8%B1%D8%A7%D9%87%D9%86%D9%85%D8%A7%DB%8C%20%D8%AE%D8%B1%DB%8C%D8%AF%20%D8%A2%D9%86%D9%84%D8%A7%DB%8C%D9%86.jpghttp://up.asemankafinet.ir/view/2518891/%D8%B1%D8%A7%D9%87%D9%86%D9%85%D8%A7%DB%8C%20%D8%AE%D8%B1%DB%8C%D8%AF%20%DA%A9%D8%A7%D8%B1%D8%AA%20%D8%A8%D9%87%20%DA%A9%D8%A7%D8%B1%D8%AA.jpg

لیست گزارش تخصصی   لیست اقدام پژوهی     لیست کلیه طرح درس ها

پشتیبانی سایت

در صورت هر گونه مشکل در دریافت فایل بعد از خرید به شماره 09159886819 در شاد ، تلگرام و یا نرم افزار ایتا  پیام بدهید
آیدی ما در نرم افزار شاد : @asemankafinet

تحقیق درباره هماهنگ سازی task و thread ها و Ada

بازديد: 237

تحقیق درباره هماهنگ سازی 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 ای از قبل نداند که چه مقدار زمان برای اجرا نیاز دارد این سیستم جوابگو  نخواهد بود.

اما سیستم زمان دهی پویا که بسیار سنگین تر و پیچیده تر می باشد در هر لحظه اجرای task ها از آن ها توسط massage گزارش تهیه می کند و از این که یک task خاص چه مقدار زمان برای ادامه کار خود لازم دارد مطلع می شود و توسط زیر الگوریتم های  مربوط به خود shairing را انجام می دهد. اما هر task چه قسمت هایی دارد؟ ما برای دانستن عمل هماهنگ سازی باید با قسمت های مختلف یک task آشنا شويم


همزماني و مناطق بحراني

موثر واقع شدن يك هسته مركزي بازدخولي نياز به استفاده از همزماني دارد: اگر يك مسيركنترل هسته مركزي در حاليكه روي يك ساختمان داده هسته مركزي فعاليت مي كند، متوقف شود، هيچ مسيركنترل هسته مركزي ديگري اجازه نخواهد داشت تا بر روي همان ساختمان داده فعاليت كند مگر آنكه به يك وضعيت ثابت و پايدار بازگردد. بعلاوه برخورد دومسيركنترل مي تواند منجر به تخريب اطلاعات ذخيره شده بشود. بعنوان مثال، چنين تصور كنيم كه يك V متغيرجهاني شامل تعدادي از موارد (items) قابل استفاده بعضي اجزا سيستم است. اولين مسيركنترل هسته مركزي (A) متغير را ميخواند و تعيين مي كند كه فقط يك مورد ( آيتم) قابل استفاده وجود دارد. در اين نقطه، مسيركنترل هسته مركزي ديگر (B) فعال شده و همان متغير را مي خواند كه هنوز داراي ارزش 1 مي باشد. بنابراين V , B را كاهش داده و شرع به استفاده از آیتم مي كند. سپس A فعاليت رادوباره آغاز مي كند زيرا تقريبا ارزش V محتوي 1ـ مي شود و دو راه كنترل هسته مركزي از يك آيتم با اثرات تخريبي پتانسيلي استفاده مي كنند؛ مي گوئيم كه "شرايط مسابقه" موجود است.

بطوركلي، دسترسي امن به متغير سراسری با استفاده از "عمليات اتميك" فراهم ميشود. در مثال قبل، اگر دومسيركنترل متغير را بخوانند و V را با يك عمل بدون تداخل و تنها كاهش دهند، تخريب داده، امكان پذیر نخواهد بود. با اينحال هسته هاي مركزي شامل ساختمان داده هاي بسياري هستند كه نمي توانند با يك عمل تنها قابل دسترسي باشند. براي مثال، معمولا جابجائي عنصر کليد از يك ليست پيوندي تنها با يك عمل ممكن نيست، زيرا هسته مركزي حداقل به دو نقطه دسترسي در آن واحد نياز دارد. هربخشي از كد كه بايد توسط پردازش به پايان برسد، قبل از اينكه يك پردازش ديگر بتواند وارد شود ناحيه بحراني است. اين مشكلات نه تنها در ميان مسیرهای كنترل هسته مركزي بلكه در ميان پردازشهائي كه از داده هاي مشتركي استفاده مي كنند نيز رخ ميدهد. تكنيكهاي هم زماني متعددي شکل گرفته اند. بخش بعدي به بررسي چگونگي هم زمان كردن و راههاي كنترل هسته مركزي مي پردازد.

 

هسته های مرکزی انحصاری

در جستجوي راه حل ساده اي براي حل مشکلات هم زمانی، اكثر هسته هاي مركزي يونيكس هاي ابتدائي انحصاري هستند : وقتي پردازشي در وضعيت هسته مركزي اجرا مي شود، نمي تواند بطور اختياري متوقف شده و يا با پردازش ديگري جايگزين شود . بنابراين در يك سيستم تك پردازشي تمام ساختمان داده هاي هسته مركزي كه توسط پاسخگوي وقفه (interrupts) و استثناءها(exception update) به روز نشده اند براي دسترسي به هسته مركزي امن و مطمئن هستند. در واقع، يك پردازش در وضعيت هسته مركزي مي تواند بصورت اختياري از CPU صرف نظر كند، اما در اين مورد بايد اطمنيان حاصل كند كه تمامي ساختمان داده هاي قابل دسترسي قبلي را كه مي توانسته اند تغيير كنند را بايد دوباره چك كند. انحصاري بودن در سيستمهاي چند پردازنده اي بي تاثير است زيرا دو مسيركنترل هسته مركزي كه در CPU هاي متفاوت در حال اجرا هستند مي توانند با هم به ساختمان داده يكساني دسترسي پيدا كنند.

 

غیر فعال کردن وقفه ها

مكانيسم ديگر همزماني در سيستمهاي تك پردازشي عبارتست از غيرفعال كردن تمامي وقفه های سخت افزاري قبل از ورود به منطقه بحراني و فعال كردن مجدد انها دقيقا بعد از ترك منطقه بحراني . اين مكانيسم با وجود سادگي از نقطه اپتيمال بسيار دور است. اگر منطقه بحران وسيع باشد، وقفه ها براي زمان نسبتا طولاني غيرفعال باقي مي مانند و تمامي فعاليتهاي سخت افزار را منجر به فريز مي كنند. علاوه براين، در يك سيستم چند پردازنده اي اين مكانيسم كارگر نيست . هيچ راهي براي اطيمنان از عدم دسترسي CPU ديگری، به ساختمان داده هاي مشابهي كه در منطقه حفاظت شده بحراني update شده اند، وجود ندارد.

 

 Semaphores

انيسم ديگري كه به وسعت استفاده شده و در هر دو سيستم چند پردازنده و تك پردازنده موثر است. برپايه استفاه از Semaphores مي باشد . Semaphores به زبان ساده يك محاسبه گر وابسته به ساختمان داده مي باشد. Semaphores توسط تمامي نخهاي هسته مركزي قبل از اينكه اين نخ ها به ساختمان داده دسترسي پيدا كنند چك مي شود. هر Semaphore ممكنست بصورت بخشي تشكيل يافته از موارد زير مشاهده شود: يك متغير صحیح (integer) ليستي از پردازشهايي كه در انتظار اجرا هستند. دو تابع خودكار : () down () up تابع (پائين) down ارزش Semaphore را كاهش مي دهد. اگر ارزش جديد كمتر از O باشد. اين تابع پردازشهاي در حال اجرا را به ليست Semaphore اضافه كرده و سپس بلوكه مي شود ( مثلا درخواست ریز برنامه). تابع (بالا) up ارزش Semaphore را افزايش ميد هد و اگر ارزش جديد بيشتر يا مساوي صفر باشد. يك يا چند پردازش در ليست Semaphore را مجددا فعال مي كند. هر ساختمان داده براي محفاظت Semaphore خودش را داراست كه با 1 شروع مي شود. وقتي مسيركنترل هسته مركزي مي خواهد به ساختمان داده دسترسي پيدا كند. تابع ( ) down را در Semaphore مناسب اجرا مي كند اگر ارزش Semaphore جديد منفي نباشد، دسترسي به ساختمان داده فراهم مي شود. ازطرفي پردازشي كه مسيركنترل هسته مركزي را اجرا مي كند به ليست Semaphore اضافه شده و بلوكه مي شود. وقتي پردازش ديگري تابع () up را در آن Semaphore اجرا مي كند، به يكي از پردازشهائي كه در ليست Semaphore قرارداد اجازه پيشرفت مي دهد.

 

قفل چرخشی

در سيستمهاي چند پردازنده ای ، Semaphore ها هميشه بهترين راه حل براي مشکل همزمانی نمي باشند. بعضی ساختمانهای داده باید از دسترسی همزمان توسط مسیرهای کنترل هسته مرکزی واقع بر چند پردازنده ی متفاوت در امان باشند . در اين مورد اگر زمان مورد نياز براي update كردن ساختمان داده كوتاه باشد، يك Semaphore ممكنست هيچ ارزشي نداشته باشد. براي چك کردن Semaphore ، هسته مركزي بايد يك پردازش را در ليست Semaphore قرار دارد. و سپس آنرا متوقف كند. از آنجا كه هر دو عمل در زماني كه براي كامل شدن آنها بطول مي انجامد، پرهزينه و گران هستند، مسيركنترل هسته مركزي ديگر بايد از Semaphore آزاد شود. در اين موارد سيستم عاملهاي چند پردازشي از قفلهاي چرخشی استفاده مي كنند.

يك قفل چرخشی بسيار مشابه Semaphore مي باشد اما ليست پردازش ندارد . وقتي پردازشي به قفلي برخورد مي كند كه توسط پردازش ديگري بسته شده است در اطراف قفل "تنيده مي شود" يك حلقه را اجرا مي كند تا زمانيكه قفل باز شود. در حقيقت، قفلهاي چرخشی در محيط هاي تك پردازنده بي فايده اند. وقتي يك مسيركنترل هسته مركزي تلاش مي كند كه به يك ساختمان داده قفل شده دسترسي پيدا كند، اجراي يك حلقه بي انتها را آغاز مي كند. بنابراين، مسيركترل هسته مركزي كه در حال update كردن ساختمان داده محافظت شده مي باشد، شانسي براي ادامه اجراي فعاليت و آزاد كردن قفل چرخشی نخواهد داشت و نتيجه نهائي به hang كردن سيستم منتهي مي شود.

 

اجتناب از بن بست

پردازشها يا راههاي كنترل هسته مركزي كه با ديگر راههاي كنترل هم زمان شده اند ممكن است به راحتي وارد مرحله بن بست شوند. ساده ترين مورد بن بست وقتي اتفاق مي افتد كه پرداش P1 به ساختمان داده a و پردازش P2 به ساختمان داده b دسترسي پيدا كند ول ي P1 بر b و P2 براي a منتظر بمانمد. انتظارهاي چرخه اي ، پيچيده تري هم ممكنست در بين گروههاي پردازش ها اتفاق بیافتد . در واقع يك شرط بن بست فريز كامل پردازشها و مسیرهای کنترل هسته مركزي متاثر را ايجاد مي كند. در آنجا كه طراحي هسته مركزي مورد توجه واقع باشد افزايش تعداد Semaphore هاي هسته مركزي به يک مسئله در مورد بروز بن بست تبديل مي شود. چرا که در اين حالت اطمينان از اينكه هيچ شرط بن بستی در طول مسیر کنترل بوقوع نمی پیوندد مشکل می شود . سيستم عاملهاي متعددي از جمله ليناكس، با معرفي تعداد بسيار محدود انواع Semaphore و با درخواست Semaphore ها به صورت صعودي از اين امر (تعدد سمافور) اجتناب مي كنند.

 

توليد اطلاعات به صورت استاتيک و مسائل امنيتي آن

معمولترين نوع دسترسي به اطلاعات در اينترنت استفاده از صفحات HTML است. هنوز هم بسياري از متخصصين، اين روش در دسترس گذاري اطلاعات (Web Publishing) را به روشهاي ديگر ترجيح ميدهند. البته دلايل اصلي آنها بيشتر مربوط به سادگي و قابليت انعطاف اين روش است.

درين روش اطلاعات يک بار توليد ميشود. توليد اطلاعات (صفحات HTML) ميتواند به صورت دستي يا به صورت اتوماتيک توسط برنامه هاي معمولي Client-Server انجام شود. پس از انجام اين فاز کليه اطلاعات بر روي سايت و سرور اصلي قرار ميگيرد (Upload).

امنيت اين روش به سادگي تامين ميشود. کافيست که اشخاص نام فايلهاي HTML را ندانند، درين صورت هرگز به آنها دسترسي نخواهند داشت. اينکار با استفاده از مکانيزم ساده اي صورت ميگيرد. عموم وب سرورها براي دايرکتوريهاي مختلف حق دسترسي تعريف ميکنند که يکي ازين حقوق دسترسي حق مشاهده محتويات يک دايرکتوري است. در صورتي که کاربري اين حق را نداشته باشد از اسامي فايلها بي خبر خواهد بود و در نتيجه قادر به مشاهده آنها نيست.

استفاده ازين روش مزايا و معايب خاص خود را دارد. مزيت آن امنيت بالاست. در واقع درينجا هيچ ارتباز اکيتيوي با سرور پايگاه داده وجود ندارد. اطلاعات به صورت برون خط (Offline) بر روي سرور وب بارگذاري ميشوند و پس ازان هيچ ارتباطي مابين کاربر عادي و چپايگاه داده وجود نخواهد داشت. بدين ترتيب خطر حملات به پايگاه داده کاهش چشمگيري مي يابد. اما از ديگر سو مديريت حجم انبوه اطلاعات با استفاده ازين روش بسيار دشوار ميباشد . ضمن اينکه قابليت انعطاف روش نيز بسيار محدود است. در واقع زماني که ازين روش استفاده ميکنيم هدف اصلي خدمت رساني و سهولت استفاده را قرباني امنيت کرده ايم.

 

. توليد اطلاعات به صورت ديناميک

اين روش متداول ترين شيوه ايست که امروزه جهت ارائه خدمات بر بستر وب مورد استفاده قرار ميگيرد. درين روش صفحات موجود بر روي سرور وب عملا داراي هيچ اطلاعاتي نميباشند يا داراي حداقل اطلاعات هستند. تمامي اطلاعات در پايگاه داده است. به محض دريافت هر تقاضايي توسط سرور وب ، صفحات مورد درخواست او به صورت ديناميک از طريق جستجوي (Query) مناسب در پايگاه داده توليد ميشود.

براي پياده سازي اين روش طيف وسيعي از تکنولوژيها وجود دارد. ASP،JSP،PHP،CGI،ISAPI... و چندين روش ديگري که عم٥ما حول همين توليد يناميک اطلاعات إر محيط ب طراحي شده اند. نيت هريک ازين زبانها و روشها خود موضوع مفصل و جداگانه است اما از ديد بح حاضر چند نکته مرا با مد نظر داشت:

طي بخش گذشته عموما توجه ما معطوف به اين مطلب بود که چگونه جلوي دستيابي افراد غير مجاز به سيستم و اطلاعات گرفته شود. اما هيچ گاه به اين مطلب اشاره نکرديم که مجاز يا غير مجاز بودن افراد را چگونه تشخيص ميدهيم. در واقع روش شناسايي افراد در يک سيستم امن چگونه ميتواند باشد.

ابتدايي ترين روشي که درين زمينه ميتوان در نظر گرفت تصديق اعتبار ساده بر حسب نام کاربري و کلمه عبور است. گرچه پياده سازي اين روش سنتي بسيار ساده است اما امنيتي هم که تامين ميکند حداقل امنيت ممکن است. درين روش کاربر يکبار در سيستم شناسايي ميشود و پس ازان اطلاعات به صورت عادي بر روي شبکه جريان مي يابد. مشکلات اين روش را ميتوان به صورت زير خلاصه کرد:

 

 

 TLS

TLS (Transport Layer Security)، جانشین SSL، برپایه SSL3.0 بنا شده است، اما به کاربران یک انتخاب کلید عمومی و الگوریتمهای Hashing می‌دهد. (الگوریتمهای Hashing فانکشن‌های یک‌طرفه‌ای برای حفظ جامعیت پیامها هستند و توسط بیشتر پروتکلها استفاده می‌شوند.) اگرچه TLS و SSL تعامل ندارند، اما چنانچه یکی از طرفین ارتباط TLS را پشتیبانی نکند، ارتباط با پروتکل SSL3.0 برقرار خواهد شد. بیشتر مزایا و معایب SSL به TLS هم منتقل می‌شود، و معمولا وجه تمایز خاصی وجود ندارد، و از همه نسخه‌ها به عنوان SSLیاد می‌شود.

 S/MIME

S/MIME ( Secure Multipurpose Internet Mail Extention) که اختصاصاً برای پیام‌رسانی ذخیره-و-ارسال طراحی شده است، بعنوان استاندارد امنیت ایمیل برتر شناخته شده است. مانند بیشتر پروتکل‌های رمزنگاری (مثلا SSL ، TLS و IPSecS/MIMEبا رمزنگاری تنها سروکار ندارد. بهرحال، علاوه بر تصدیق هویت کاربران و ایمن‌سازی جامعیت پیامها (برای مثال مانند آنچه SSL انجام می‌دهد)، S/MIMEتوسط امضای دیجیتال، رکوردهای پایداری از صحت پیامها ایجاد می‌کند (ضمانت هویت فرستنده چنانچه به محتوای پیام مشخصی مرتبط شده). این عمل باعث می‌شود فرستنده پیام نتواند ارسال آن‌را انکار کند.

*برای FT :

 سیستم‌های ایمیل رمزشده (با استفاده از S/MIME) می‌توانند برای ارسال فایل‌های کوچک استفاده شوند (محدودیت حجم فایل بخاطر داشتن محدودیت حجم فایل در بیشتر سرورهای ایمیل است)، ولی S/MIME کلاً می‌تواند برای انتقال فایل‌های بزرگتر  توسط پروتکلهای انتقال فایل استفاده شود.

SSH

SSH (Secure Shell) هم یک برنامه و یک پروتکل شبکه بمنظور وارد شدن و اجرای فرمانهایی در یک کامپیوتر دیگر است. به این منظور ایجاد شد تا یک جایگزین رمز‌شده امن برای دسترسی‌های ناامن به کامپیوترهای دیگر مثلا rloginیا telnet باشد. نسخه بعدی این پروتکل تحت نام SSH2 با قابلیتهایی برای انتقال فایل رمزشده از طریق لینک‌های SSH  منتشر شد.

*برای FT :

 SSH‌ می تواند برای پشتیبانی انتقال فایل رمزشده (به شکل SFTP) استفاده شود اما طبیعت خط فرمان بودن آن به این معنی است که بیشتر توسط مدیران سیستمها برای ارسال درون سازمان استفاده می‌شود تا برای انتقال فایل تجاری. بعلاوه استفاده از SSH نیاز به نرم‌افزار یا سیستم عاملهای سازگار با SSH در دو طرف اتصال دارد، که به این ترتیب SSH برای سرور‌به‌سرور انجام می‌گیرد

 

سيگنالها و ارتباطات ميان پردازشي

سيگنالهاي يونيكس براي اخطار دادن پردازشهاي حوادث سيستمي مكانيسمي فراهم آورده اند . هر حادثه اي شماره سيگنال مربوط به خودش را دارد كه معمولا توسط يك سمبل پايدار و دائمي از قبيل SIGTERM به حادثه موردنظر مربوط مي شود.

دو نوع حادثه سيستمي وجود دارد:

اخطارهاي غيرهمزمان ـ براي مثال، يك كاربر مي تواند سيگنال قطع كننده (مانع) SIGTERM را توسط فشار دادن كدهاي كليدي قطع كننده (معمولا^z ) در ترمينال به يك پردازش foreground بفرستد.

استثناء ها يا خطاهاي همزمان ، وقتي پردازشي به يك آدرس غيرمجاز دسترسي پيدا مي كند. هسته مركزي سيگنال SIGSEGV را به آن پردازش مي فرستد.

استانداردهاي POSIX حدود 20 سيگنال مختلف را شرح مي دهد. دو تا از آنها قابل تعریف ـ كاربر (USER - definable) هستند و ممكنست بعنوان يك مكانيسم ابتدائي براي برقراري ارتباط و همزماني ميان پردازشهاي موجود در وضعيت كاربر استفاده شوند. بطوركلي، ممكنست به يك سيگنال رسيده از دو راه ممكن عكس العمل نشان داد:
سيگنال را ناديده بگيريد ( از سيگنال چشم پوشي كرد)

بطور غيرهمزمان روش مشخص شده را اجرا كند (اجرا كننده سيگنال)

اگر پردازش از يكي از دو روش بالا عمل نكند، هسته مركزي يك (عمل پیش فرض ) default action را انجام مي دهد كه مربوط به شماره سيگنال است.

پنج default action ممكن عبارتند از :

پايان دادن به پردازش

نوشتن زمينه اجرائي و محتويات فضاي آدرس در يك فايل (Core dump) و پايان دادن پردازش

ناديده گرفتن سيگنال

متوقف كردن پردازش

آغاز كردن دوباره اجراي پردازش، در صورتيكه پردازش متوقف شده باشد.

 

تا زمانيكه تعاريف POSIX به پردازشها اجازه مي دهد كه موقتا سيگنالها را بلوكه كنند. اجراي سيگنال هسته مركزي تقريبا كامل و درست است. بعلاوه، تنها تعداد سيگنالهاي معدودي از قبيل SIGKILL نمي توانند مستقيما توسط پردازش اجرا شده و نمي توانند ناديده گرفته شوند. SYSV سيستم يونيكس AT&T روابط ميان پردازشي ديگري را هم در ميان پردازشهاي موجود در وضعيت كاربر، معرفي مي كند كه توسط، تعداد زيادي از هسته هاي مركزي يونيكس پذيرفته شده است: Semaphore ، صفهاي پيغام و حافظه اشتراکي؛اين مجموعه بعنوان SYSTEM V IPC شاخته مي شوند. هسته مركزي بر روي اين ساختمانها بعنوان ابزراهاي IPC تاثيرگذار است: يك پردازش با بكارگيري فراخوان سيستمي shmget ( ) , semget ( ) , msgget به يك resource دست مي يابد. دقيقا مانند فايلها، ابزارهاي IPC هم پايا هستند. آنها بايد بطور ضمني توسط پردازش ايجاد كننده(آفريننده)، توسط صاحب موجود و يا توسط پردازش ابر كاربر(deallocate) بازپس گرفته شوند. Semaphore ها همچنان كه پيشتر در بخش 5. 6. 1 بحث شده مشابه ابزارهاي IPC مي باشند با اين تفاوت كه آنها در وضعيت كاربر براي پردازشها رزرو شده اند. صفهاي پيغام به پردازشها اجازه ميد هد تا با اسفاده از فراخوانی هاي سيستمي msgget , msgsnd كه پيغام را در صف پيغام ويژه اي وارد كرده و يا يك پيغام را از آن خارج كنند و به جابجايي و مبادله پيغامها بپردازند. حافظه اشتراکي سريعترين راه جهت جابجائي و تقسيم داده را براي پردازشها فراهم مي كند. پردازش توسط برقراري یك فراخوان سيستمي shmget ايجاد يك حافظه اشتراکي جديد با سايز مورد نظر خواستار مي شود. بعد از بدست آوردن تعيين كننده (IPC Identifire) پردازش از تابع سيستمي shmat استفاده مي كنند كه از طريق فضاي آدرس پردازش به منقطه جديد آدرس آغاز شده باز مي گردد ( مربوط مي شود). وقتي پردازش مي خواهد از طريق فضاي آدرس خودش به حافظه تقسيم شده دست پيدا كند. از فراخوان سيستمي shmdt استفاده مي كند . موثر واقع شدن حافظه تقسيم شده بستگي به اين دارد كه هسته مركزي چگونه برفضاهاي آدرس پردازش تاثير مي گذارد.

 

مديريت پردازش

يونيكس مرز تميزي بين پردازش و برنامه هاي اجرائی برقرار مي سازد. براي رسيدن به اين هدف در حاليكه فراخوان سيستمي مشابه exec براي load برنامه جديد مورد نياز است، از تابع هاي سيستمي()exit , ()fork براي ايجاد پردازش جديد و پايان دادن به آن استفاده مي کند . بعد از اجرا شدن اينچنين فراخوان سيستمي، اجراي پردازش با يك فضاي آدرس كاملا جديد كه شامل برنامه load شده مي باشد، دوباره آغاز مي شود. پردازشي كه فراخوان سيستمي fork را برقرار مي كند "والد"است و پردازش جديد" فرزند آن مي باشد. والدين و فرزند ها يكديگر را پيدا مي كنند زيرا ساختمان داده اي كه هرپردازش را شرح مي دهد داراي، يك نشانگر به والد اوليه پردازش و چندين نشانگر به تمامي فرزند هاي اوليه مي باشد . يك تاثيرگذاري ساده fork نياز به داده و كد والد دارد تا دوبرابر(دونسخه) شده و كپي ها را به فرزند واگذار كند اين عمل كاملا وقت گيراست. هسته هاي مركزي موجود كه متكي بر واحدهاي صفحه اي سخت افزار مي باشند، از مسير copy-on-write پيروي مي كنند كه اين روش تا آخرين لحظه صفحه المثني را متمايز دارد. (تا زمانيكه لازم است والد و فرزند در يك صفحه نوشته شوند). فراخوان سيستمي exit پردازش را به پايان مي رساند. هسته مركزي با آزادكردن منابع (resources) كه متعلق به پردازش است با فرستادن سيگنال SIGCHLD كه توسط default ناديده گرفته شده به پردازش والد اين فراخوان سيستمي را برقرار مي كند.

 


فهرست مطالب

هماهنگ سازی task  و thread ها و Ada  :1

زمان دهی پویا و زمان دهی ایستا static semantic , dynamic semantic :2

همزماني و مناطق بحراني... 4

هسته های مرکزی انحصاری... 5

غیر فعال کردن وقفه ها6

Semaphores. 7

قفل چرخشی... 8

اجتناب از بن بست.... 9

توليد اطلاعات به صورت استاتيک و مسائل امنيتي آن.. 10

سيگنالها و ارتباطات ميان پردازشي... 15

مديريت پردازش.... 18

 

منبع : سايت علمی و پژوهشي آسمان -- صفحه اینستاگرام ما را دنبال کنید
اين مطلب در تاريخ: سه شنبه 12 اسفند 1393 ساعت: 11:09 منتشر شده است
برچسب ها : ,,,,,
نظرات(0)

نظرات


کد امنیتی رفرش

شبکه اجتماعی ما

   
     

موضوعات

پيوندهاي روزانه

تبلیغات در سایت

پیج اینستاگرام ما را دنبال کنید :

فرم های  ارزشیابی معلمان ۱۴۰۲

با اطمینان خرید کنید

پشتیبان سایت همیشه در خدمت شماست.

 سامانه خرید و امن این سایت از همه  لحاظ مطمئن می باشد . یکی از مزیت های این سایت دیدن بیشتر فایل های پی دی اف قبل از خرید می باشد که شما می توانید در صورت پسندیدن فایل را خریداری نمائید .تمامی فایل ها بعد از خرید مستقیما دانلود می شوند و همچنین به ایمیل شما نیز فرستاده می شود . و شما با هرکارت بانکی که رمز دوم داشته باشید می توانید از سامانه بانک سامان یا ملت خرید نمائید . و بازهم اگر بعد از خرید موفق به هردلیلی نتوانستیدفایل را دریافت کنید نام فایل را به شماره همراه   09159886819  در تلگرام ، شاد ، ایتا و یا واتساپ ارسال نمائید، در سریعترین زمان فایل برای شما  فرستاده می شود .

درباره ما

آدرس خراسان شمالی - اسفراین - سایت علمی و پژوهشی آسمان -کافی نت آسمان - هدف از راه اندازی این سایت ارائه خدمات مناسب علمی و پژوهشی و با قیمت های مناسب به فرهنگیان و دانشجویان و دانش آموزان گرامی می باشد .این سایت دارای بیشتر از 12000 تحقیق رایگان نیز می باشد .که براحتی مورد استفاده قرار می گیرد .پشتیبانی سایت : 09159886819-09338737025 - صارمی سایت علمی و پژوهشی آسمان , اقدام پژوهی, گزارش تخصصی درس پژوهی , تحقیق تجربیات دبیران , پروژه آماری و spss , طرح درس