http://night-skin.com/template/09/logo.gif محدثه ترابی (دانشجوی کارشناسی ارشد نرم افزار)

خلاصه

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


5   |  2 امتياز: 5 | نظر شما: 1 2 3 4 5
برچسب ها: خلاصه,
[ چهارشنبه 16 شهريور 1390 ] [ 20:24 ] [ محدثه ترابی ]

چکیده

نخ ها ساده ترین واحد نرم افزاری هستند که سیستم عامل به منظور زمان بندی پردازنده با آن درگیر خواهد شد.از نخ ها برای انجام کارهای موازی استفاده می شود.در حالت کلی نخ ها در دو سطح پیاده سازی می شوند.نخ های سطح هسته که تمام کار مدیریت نخ ها توسط هسته انجام می شود و نخ های سطح کاربر که تمام کار مدیریت نخ ها توسط کاربر انجام می گردد.نخ های سطح کاربر دارای معایبی هستند از جمله اینکه سیستم قادر به استفاده از چندین پردازشگر نیست واگر یک نخ مسدود شود،تمام نخ های موجود در آن فرآیند  مسدود می شوند ،حتی اگر آنها قابل اجرا باشند.نخ های سطح هسته نیز دارای معایبی هستند از جمله اینکه انتقال کنترل از یک نخ به نخ دیگر در داخل فرآیند واحد نیز  نیازمند تغییر به حالت هسته است.همچنین هرکدام از نخ های سطح هسته و نخ های سطح کاربر دارای مزایایی هستند،scheduler activation به عنوان راه حلی ترکیبی برای رفع این مشکلات توسط آندرسون و غیره عنوان شده است.در این مقاله به معرفی انواع مدل های پیاده سازی نخ ها می پردازیم.البته بحث اصلی ما روی scheduler activation و مقایسه آن با روشهای دیگر است.

 

 


5   |  0 امتياز: 5 | نظر شما: 1 2 3 4 5
برچسب ها: چکیده,
[ سه شنبه 8 شهريور 1390 ] [ 21:18 ] [ محدثه ترابی ]


کارهایی که در کنار scheduler activation انجام گرفت


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


3   |  0 امتياز: 5 | نظر شما: 1 2 3 4 5
برچسب ها: کارهایی که در کنار scheduler activation انجام گرفت,
[ سه شنبه 8 شهريور 1390 ] [ 21:12 ] [ محدثه ترابی ]

انواع فراخوانی مورد نیاز

فراخوانی جدید :این فراخوانی به برنامه کاربر اطلاع می دهد که یک فعالسازی جدیدی در حال ساخت است و برنامه کاربری میتواند از این فعالسازی برای اجرای کدی که مورد نیاز است ،استفاده کند.

فراخوانی بلاک شده:زمانی که فعالسازی بلاک می شود،هسته به برنامه کاربر اطلاع می دهد که فعالسازی بلاک شده است.

فراخوانی غیر بلاک کننده:این فراخوانی به برنامه کاربر اطلاع می دهد که یکی از فعالسازی های آن از حالت بلاک در آمده است.

 


3   |  0 امتياز: 5 | نظر شما: 1 2 3 4 5
برچسب ها: انواع فراخوانی مورد نیاز,
[ سه شنبه 15 شهريور 1390 ] [ 23:22 ] [ محدثه ترابی ]

 چکیده

مقدمه

مدل های پیاده سازی نخ ها

 

مثالهایی از پیاده سازی ها

 

scheduler activation

 

انواع فراخوانی های مورد نیاز

 

کارهایی که در کنار scheduler activation انجام گرفت


2   |  0 امتياز: 4.8 | نظر شما: 1 2 3 4 5
برچسب ها: ,
[ سه شنبه 8 شهريور 1390 ] [ 21:22 ] [ محدثه ترابی ]

 

موضوع مقاله من در مورد scheduler activation

برخی اوقات ممکن است برنامه ها مجبور به انجام کارهایی باشند که نیاز به زمان طولانی دارند.در یک برنامه ساده پردازش کارها به صورت همزمان(synchronous) انجام می گیرد به این صورت که در هر لحظه فقط یک کار پردازش می شود و پس از اتمام آن پردازش کار بعدی آغاز شده و این کار تکرار می شود.اکر UI منتظر اتمام یک کار طولانی باشد ممکن است با مشکلات زیادی مواجه شویم که یک راه حل برای این مشکل استفاده از پردازش کارها به صورت غیر همزمان(asynchronous) می باشد که در اصطلاح multithreading نامیده می شود

thread نامی برای جریان اجرای یک عملیات خاص می باشد.انواع مختلف پیاده سازی نخ ها وجود دارد که بعد از بررسی مزایا و معایب آن به scheduler activation به عنواد راه حلی برای حل این مشکلات می رسیم.

scheduler activation توسط آندرسون و همکارانش مطرح شده است.آندرسون این مکانیسم را روی نخ ها در سیستم توپاز انجام دادند.این مکانیسم با معرفی یکی از فراخوانی های سیستمی به نام upcall انجام می شود .در کنار این روش ،روش های دیگری نیز توسط تاکر و اینهورا ارایه شده است که در ادامه شرح می دهم.


4   |  0 امتياز: 4.9 | نظر شما: 1 2 3 4 5
برچسب ها: ,
[ پنجشنبه 3 شهريور 1390 ] [ 16:40 ] [ محدثه ترابی ]

مدل های پیاده سازی نخ ها

مدل "1:1"(نخ های سطح هسته)

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

مزیت مدل "1:1"

فراخوانی سیستمی بلاک کننده و نقص صفحه به درستی اداره می شوند.موازی سازی چندین پردازنده قابل استخراج است.این مدل به آسانی پیاده سازی می شوند.ایجاد نخ های هسته ارزان است.

عیب مدل "1:1"

هزینه این روش به علت تعویض متن شامل عبور کردن از مرز حفاظت به/از هسته بالاست.مصرف حافظه و زمان آنها زیاد است.

در این روش نمی توان به راحتی سیاست زمان بندی داشته باشیم بنابراین غیر قابل انعطاف است.

مدل "N:1"(نخ های سطح کاربر)

این مدل حاکی از آن است که تمام نخ های برنامه کاربری روی یک منبع تک هسته ای اجرا می شود.در این روش هسته اطلاعی از نخ های برنامه کاربری ندارد و تمام عملیات نخ ها و دستکاری آنها به طور خصوصی در پردازنده است.

مزیت مدل "N:1"

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

عیب مدل "N:1"

این مدل را نمی توان بر روی پردازنده های چند نخی و یا چند پردازنده ای استفاده کنیم.در این مدل هیچ اطلاعی در مورد تعداد CPU های در دسترس برای آدرس دهی فضا وجود ندارد و زمانی که یک نخ بلاک می شود اطلاعی در مورد آن موجود نیست.در این مدل یک خطای صفحه باعث می شو که تمام نخ های صفحه بلاک شوند.یک فراخوانی سیستمی بلاک کننده باعث بلاک شدن تمام نخ های سطح کاربر می گردد.بسته های سطح کاربر در سراسر این مشکل می توانند با متوقف کردن تماس های سیستم توسط برنامه کاربر و جایگزینی آنها با انواع غیرمسدود کردن و فراخوانی زمان بندی نخ ها کار کنند.اما این راه حل ها به طورکل موثر نیستند و باعث می شوند که پیچیدگی به سیستم اضافه شود.

مدل "M:N"(نخ های ترکیبی)

در این مدل N تعداد نخ های کاربری و M تعداد موجودیت های هسته یا پردازنده های مجازی است.مدل M:N”" یک روش ترکیبی از مدل "1:1" و مدل "N:1" است و یک تعادل از مزایا و معایب این دو مدل ارائه می کند.به طور کلی،پیاده سازی های متفاوتی از نخ های سیستمی "N:M" وجود دارد که ویژگی های عملکردی متفاوتی دارند.در پیاده سازی "M:N" ،نخ های کتابخانه ای مسئول زمان بندی نخ های کاربری روی موجودیت های قابل زمان بندی در دسترس هستند.مدل scheduler activation که توسط آندرسون و غیره گذاشته شده است ،راهی است برای اداره نگاشت "N:M" ،در حالیکه همزمانی نخ های "1:1" حفظ می شود.

مزیت مدل "M:N"

به دلیل اینکه نخ های کتابخانه ای مسئول زمان بندی نخ های کاربری هستند،بنابراین تعویض متن نخ ها به سرعت انجام می گیرد.

عیب مدل "M:N"

 

توسعه و اشکال زدایی و استفاده موثر از آن مشکل است.این مدل نسبت به دو مدل قبل پیچیدگی را افزایش می دهد و در این مدل احتمال وارونگی اولویت ها وجود دارد.


7   |  0 امتياز: 4.8 | نظر شما: 1 2 3 4 5
برچسب ها: مدل های پیاده سازی نخ ها,
[ سه شنبه 15 شهريور 1390 ] [ 23:25 ] [ محدثه ترابی ]

مثال هایی از پیاده سازی ها

-پیاده سازی نخ های هسته:

لینوکس ، IRIX ،ویندوز NT از این نوع مدل نخ سیستمی استفاده می کنند.

- پیاده سازی نخ های کاربری:

FSU PTHREAD ، Gnu portabl thread

--پیاده سازی ترکیبی:

سولاریس وAIX به طور پیش فرض از این مدل استفاده می کنند.فعالسازی زمان بندی که در Net BSD استفاده شده است مثالی از این نوع پیاده سازی هستند.


5   |  0 امتياز: 4.7 | نظر شما: 1 2 3 4 5
برچسب ها: مثال هایی از پیاده سازی ها,
[ سه شنبه 15 شهريور 1390 ] [ 23:28 ] [ محدثه ترابی ]

scheduler activation

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

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


ادامه مطلب

5   |  0 امتياز: 4.7 | نظر شما: 1 2 3 4 5
برچسب ها: scheduler activation,
[ سه شنبه 15 شهريور 1390 ] [ 23:30 ] [ محدثه ترابی ]
درباره وبلاگ

scheduler activation
امکانات وب