(۳) Getstatus(DSPall)
(۴) % First level for load unbalance %
(۵) if (DSPoff == DSPall)
(۶) DSPt = minserial (DSPoff)
(۷) Turn on minserial (DSPoff)
(۸) else if (DSPfs == DSPon)
(۹) if (DSPon == DSPall)
(۱۰) go to line 21
(۱۱) else
(۱۲) DSPt = minserial (DSPoff)
(۱۳) Turn on minserial (DSPoff)
(۱۴) else if (Num(DSPon - DSPfs)==1)
(۱۵) DSPt = DSPon - DSPfs
(۱۶) else
(۱۷) go to line 21
(۱۸) Dispatch the task to DSPt.
(۱۹) end
(۲۰) % Second level for load balance%
(۲۱) if (Num(maxUniformity(DSPon))==1)
(۲۲) DSPt = maxUniformity(DSPon)
(۲۳) else if (Num(minOrder(DSPon))==1)
(۲۴) DSPt = minOrder(DSPon)
(۲۵) else if (Num(minTask(DSPon))==1)
(۲۶) DSPt = minTask(DSPon)
(۲۷) else
(۲۸) DSPt = minserial(DSPon)
(۲۹) Dispatch the task to DSPt.
(۳۰) End.شکل ۱۹شکل ۳-۱۶ شبه کد الگوریتم توزیع وظایف TLDHLB [36]
شکل ۳-۱۶ شبه کد الگوریتم توزیع وظایف TLDHLB ]36[
۳-۶-۴ الگوریتم زمانبندی پیشنهادی در مرجع ]۳۷[
در این مقاله، یک الگوریتم زمانبندی بی­درنگ برای مجموعه وظایف ترکیبی برروی مدل چند هسته­ای همگن، ارائه شده است. وظایف تناوبی براساس سیاست EDF، جزءبندی شده و زمانبندی می­شوند. وظایف غیرتناوبی نیز بصورت سراسری به هسته­های مختلف، تخصیص داده می­شوند. در ادامه به جزئیات الگوریتم می­پردازیم.
(( اینجا فقط تکه ای از متن درج شده است. برای خرید متن کامل فایل پایان نامه با فرمت ورد می توانید به سایت nefo.ir مراجعه نمایید و کلمه کلیدی مورد نظرتان را جستجو نمایید. ))
سیستم بکار رفته در این مقاله، دارای m، هسته پردازشی همگن p={p1 , p2 ,… , pm} می­باشدوظایف سیستم نیز شامل ترکیبی از وظایف تناوبی و غیرتناوبی است. مجموعه وظایف تناوبی T={T1 , T2, … , Tn}، شامل n وظیفه تناوبی انحصاری و مستقل است و مجموعه وظایف غیرتناوبی A={A1 ,A2 , …, Ak} شامل k وظیفه غیرتناوبی انحصاری می­باشد. هر وظیفه تناوبی توسط ۴ مشخصه Ai , Ci , Pi , Di که به ترتیب بیانگر زمان ورود وظیفه، بدترین حالت زمان اجرا، دوره تناوب وظیفه و سررسید متناظر آن می­باشد شناسایی می­شوند. در این مدل دوره تناوب وظایف، برابر با سررسید متناظرشان درنظر گرفته شده است. وظایف غیرتناوبی نیز شامل دو مشخصه Ei و Ai که به ترتیب بیانگر زمان ورود و بدترین حالت زمان اجرا است می­باشد. بهره­وری وظیفه تناوبی Ti بصورت Ui=Ci/Pi تعریف می­ شود و جمع بهره­وری تمامی وظایف تناوبی بصورت بهره­وری کل هر هسته درنظر گرفته می­ شود. از آنجاییکه بیشترین مقدار بهره­وری هر هسته، یک می ­تواند باشد از اینرو برای بهره­وری کل سیستم داریم : U<m که m، تعداد هسته­های پردازنده است.
الگوریتم پیشنهادی شامل نظریه جزءبندی برای وظایف تناوبی و تخصیص سراسری برای وظایف غیرتناوبی است. که نمادهای بکار رفته در این الگوریتم عبارتند از:

    • PQ : صف وظایف تناوبی
    • AQ : صف وظایف غیرتناوبی
    • JQueue = {JQ1 , JQ2 , … JQm} : مجموعه صف وظایف متناسب با هر هسته پردازنده است که این صف می ­تواند شامل ترکیبی از وظایف تناوبی و غیرتناوبی باشد که همگی آماده اجرا هستند.
    • UT : بهره­وری وظایف تناوبی
    • Vd : سررسید مجازی
    • P-id و Selected-pid : شناسه­های هسته پردازنده
    • Jobhead[i] : وظیفه تناوبی و یا غیرتناوبی در ابتدای صف JQ
    • Jobhead[P-id] : وظیفه تناوبی و یا غیرتناوبی در ابتدای صف تخصیص داده شده به هسته با شناسه P-id
    • AJobhead : وظیفه غیرتناوبی در ابتدای صف وظایف غیرتناوبی
    • Jobarrived[P-id] : وظیفه رسیده در زمان t در صف JQP-id
    • Jobnext[P-id] : وظیفه بعدی در صف JQP-id که آماده برای اجرا است.
    • JobAP : بیانگر وظایف غیرتناوبی است.
    • ورودی­های الگوریتم شامل : مجموعه وظایف تناوبی، مجموعه وظایف غیرتناوبی، و تعداد هسته­های پردازنده.
    • خروجی­های الگوریتم شامل : زمانبندی انجام شده.
  • فرضیات شامل : تمامی وظایف تناوبی مستقل بوده و همگی در زمان صفر وارد صف آماده می­شوند و وظایف غیرتناوبی در هر زمان دلخواهی می­توانند وارد شوند.
موضوعات: بدون موضوع  لینک ثابت


فرم در حال بارگذاری ...