Download presentation
Presentation is loading. Please wait.
Published byWaldemar Dunkle Modified over 6 years ago
1
زمانبندی پردازهها در سیستمهای توزیعشده استاد درس:
ارائه درس « سیستم عاملهای پیشرفته » استاد درس: جناب آقای دکتر جلیلی گردآورنده: رامتین باقری
2
مقدمه سیستمهای توزیع شده
تعریف زمانبندی و طبقهبندی الگوریتمهای آن در سیستمهای توزیعشده مدلهای پردازهای تقدم پردازه ارتباط پردازه پردازه منفصل سیستمهای بلادرنگ و الگوریتمهای زمانبندی در آن
3
سیستمهای توزیع شده مجموعهای از کامپیوترهای مستقل از هم که برای کاربرانش یک سیستم منفرد منسجم به نظر میآید
4
زمانبندی در سیستمهای توزیع شده
متوزان نبودن بار پردازشی پردازندهها در سیستم چند پردازنده بیکار (Idle) و دیگر پردازندهها به شدت مشغول هستند میتوان با مهاجرت کارها و اجرای از راه دور آنها کارایی سیستم را ارتقا داد زمانبندی (واگذاری) پردازهها به پردازندهها در متون معتبر، اغلب تمایز ضمنی میان زمانبندی (Scheduling) و تخصیص (Allocation) وجود دارد از نظر کاساوانت و کول هر دو مربوط به یک مساله ولی با طرز نگاههای مختلف هستند از نقطه نظر منابع، مساله این است که چطور پردازندهها به پردازهها تخصیص داده شود از نگاه کاربران، زمانبندی (واگذاری) پردازهها به پردازندهها مساله محسوب میشود!
5
ویژگیهای زمانبند خوب
عام منظوره بودن: اعمال حداقل محدودیت و مفروضات بهرهوری بالا: ارتقای کارایی کارها و حداقل سربار عدالت: سهم یکسان پردازهها از منابع پویا بودن: پاسخگو در مقابل تغییرات بار شفافیت: نبود تفاوت میان اجرای محلی یا از راه دور پردازه (از دید کاربر) هدف اصلی زمانبندی، بهبود کلی استانداردهای کارایی سیستم، از جمله زمان اجرای پردازه و بهرهوری پردازنده است.
6
تخصیص منابع پردازشی محلی میان پردازههای مقیم در یک گره
زمانبندی در سیستمهای توزیع شده سیاست زمانبندی برای سیستمهای عام منظوره از لحاظ منطقی به دو بخش تقسیم میشود: زمانبند محلی (Local Scheduler) زمانبند (سراسری) بار (Load Scheduler) تخصیص پردازههای جدید به گرهها و پخش بار در سیستم بوسیله مهاجرت پردازهها «در چه زمانی، چه پردازهای باید به کجا منتقل شود» تخصیص منابع پردازشی محلی میان پردازههای مقیم در یک گره
7
طبقهبندی الگوریتمهای زمانبندیها
تقریبی(Approximate) ← رسیدن به یک راه حل "خوب" در فضای حالت اکتشافی (Heruistic) ← استفاده از پارامترهای ویژه که روی عملکرد سیستم تاثیر غیرمستقیم میگذارد ایستا (Static) ← تخصیص پردازهها به پردازندهها در زمان کامپایل یا زودتر پویا (Dynamic) ← تخصیص پردازهها به پردازندهها در زمان شروع اجرای آنها محلی (Local) ← چگونگی تخصیص زمان یک پردازنده به پردازههای خود سراسری (Global) ← تصمیمگیری درباره محل (پردازنده) اجرای پردازه در کل سیستم Static: تصمیماشو بر اساس اطلاعات پردازه ها (مثل زمان اجرای تخمینی) و اطلاعات ایستای سیستم میگیره. مزیتش توی ساده بودنشه. موقع هایی که بار کاری سیستم به خوبی قابل توصیفه خوب عمل میکنه، ولی موقع نوسانات تو بار سیستم، نمیتونه خودشو هماهنگ کنه. Dynamic: در زمان شروع به اجرا زمان بندی میشن و این یعنی میتونن در حال اجرای یکی، زمان بندی دوباره انجام بشه. این نوع زمانبندی حالت کنونی سیستم (مثل طول صف و مقدار بار و ...) رو هم تو تصمیمش در نظر میگیره Optimal: چون اطلاعات مربوط به حالت سیستم و نیازهای پردازه ها نسبت به منابع رو داریم، میتونیم یه زمان بندی بهینه ارائه کنیم. مثلا میتونیم یه جوری کارهارو بچینیم که زمان اجرای کلی پردازه کمینه بشه، یا بهره سیستم ماکیزمم بشه. در سیستم های توزیع شده بزرگ، به خاطر سایز مساله (تعداد پردازه ها، پردازنده ها و محدودیت های ممکن) زمان بندی ایستای بهینه خیلی کار سختی میشه (چون باید همه اینارو اول کار آنالیز کنیم) و در بعضی مواقع نشدنی! برا همین به یه راه حل نیمه بهینه هم راضی میشیم! Approximate-semi-optimal: هدف رسیدن به یه راه حل "خوبه"! خوب بودن هم توسط یه سری معیار تعیین میشه، مثل زمان لازم برای ارزیابی راه حل، وجود یک مکانیزم برای هرس هوشمندانه فضای راه حل و امثال اینها Heruestic: استفاده از یه سری پارامترهای ویژه که روی عملکرد سیستم تاثیر میذاره. زمان و منابع معقولی برای اجرا لازم دارند. مثلا تخصیص پردازه هایی که با همدیگه خیلی اطلاعات رد و بدل میکنن به یه پردازنده واحد، یه مثال از راه حل heruestic عه!
8
مدل تقدم پردازه هر برنامه با یک DAG (Directed Acyclic Graph) نمایش داده میشود که هر گره در آن معرف یک task با زمان اجرای مشخص است هر لبه معرف یک رابطه تقدم و وزن آن معرف تعداد پیغامهایی است که بعد از اتمام task باید به گره (task) بعدی ارسال شود هدف اصلی ← موازیسازی حداکثری در اجرای وظایف درون برنامه پیدا کردن یک جواب برای مساله (minimum makespan) از نوع NP-Complete است. پس از الگوریتم های اکتشافی استفاده میکنیم. مفهوم مسیر بحرانی در اینجا به دردمون میخوره (طولانی ترین مسیر در DAG) که حد پایین زمان اجرای ماست. مثلا یه راه اکتشافی این میتونه باشه که تمام وظایف در یک مسیر بحرانی رو توی یه پردازنده قرار بدیم.
9
مدل تقدم پردازه (ادامه)
استراتژی Earliest Task First (ETF): نزدیکترین وظیفه قابل زمانبندی توسط پردازنده انتخاب میشود (با ملاحظه سربار ارتباطی) استراتژی Extended List Scheduling (ELS): اعمال سربار ارتباطی میان پردازهای + LS استراتژی List Scheduling (LS): هیچ پردازندهای بیکار نماند، اگر وظایفی موجود باشد که امکان پردازش داشته باشند ELS: با پاسخ بهینه خیلی فاصله داره، چون صرفا سربار ارتباطی رو اعمال کرده و تو تصمیم گیری رعایتش نکرده! ETF: اون پردازه هایی که هزینه ارتباطی شون با هم زیاده رو میندازیم توی یه پردازنده دلیل نمیشه زمانبندی بهینه روی یک بستر ارتباطی، روی یک بستر ارتباطی متفاوت دیگه هم بهینه باشه (؟؟)
10
مدل ارتباط پردازه زمانبندی پردازهها برای بسیاری از برنامههای سیستم، متفاوت از مدل تقدم است مدل ارتباط پردازه یک گراف بدون جهت G با مجموعه گرههای V و مجموعه یالهای E است که گرهها معرف پردازهها و وزن روی یالها معرف هزینه ارتباط میان دو پردازه متصل است اهداف اصلی ← بهرهوری منابع بیشینه و ارتباط کمینه میان پردازندهای پردازهها در مدل قبلی محدودیت تقدم توسط کاربران صراحتا تعیین میشد. در بعضی از سیستم ها این محدودیت وجود نداره مگر ارتباط بین پردازه های خودکفا پردازه ها زمان تکمیل مشخصی ندارن
11
مدل ارتباط پردازه (ادامه)
با کمینه کردن مقدار تابع زیر (Module Allocation) میتوان تخصیص بهینه m پردازه میان P پردازنده را پیدا کرد 𝑒 𝑗 ( 𝑝 𝑖 ) هزینه اجرای پردازه 𝑗 بر پردازنده 𝑝 𝑖 (پردازنده تخصیص یافته به آن پردازه) است 𝑐 𝑖,𝑗 ( 𝑝 𝑖 , 𝑝 𝑗 ) هزینه ارتباط میان دو پردازه 𝑗 و 𝑖 که به پردازههای مختلف 𝑝 𝑖 و 𝑝 𝑗 تخصیص داده شدهاند به طور کلی جزو مسالههای NP-Complete محسوب میشود برای 𝑃 =2 در زمان چند جملهای قابل حل است در مدل قبلی محدودیت تقدم توسط کاربران صراحتا تعیین میشد. در بعضی از سیستم ها این محدودیت وجود نداره مگر ارتباط بین پردازه های خودکفا پردازه ها زمان تکمیل مشخصی ندارن هدف ->
12
مدل ارتباط پردازه (ادامه)
راه حل اکتشافی:
13
مدل پردازهای مجزا فرض دانش قبلی راجب پردازهها، در بیشتر برنامههای توزیعشده فرض واقعگرایانهای نیست مدل پردازهای مجزا تاثیر وابستگی میان پردازهها را در نظر نمیگیرد اهداف اصلی ← بهرهوری بیشینه و برقراری عدالت میان پردازههای کاربران برداشتها از "عدالت" یکی نیست: از دید سیستم ← بار پردازشی برابر بر روی هر پردازنده (توسط انتقال پردازهها) از دید کاربر ← هرکس به اندازه مساوی از منابع بهره ببرد راه حلها بدون استفاده از کنترلر مرکزی: الگوریتمهای فرستنده-آغاز الگوریتمهای گیرنده-آغاز
14
مدل پردازهای مجزا (ادامه)
الگوریتمهای فرستنده-آغاز: فرستنده میخواهد بخشی از وظایف محاسباتی خود را بر عهده دیگری بگذارد سه تصمیم لازم است تا گرفته شود: سیاست انتقال: چه موقع یک پردازنده فرستنده میشود؟ سیاست انتخاب: چگونه فرستنده، پردازهای را برای انتقال انتخاب میکند؟ سیاست محل: گیرنده، چه پردازندهای باید باشد؟ در بار کم، سربار کمی دارد اگر تنها مشخص کننده بار کاری، اندازه صف باشه ، نمودار سیاست ها رو تعریف میکنه
15
مدل پردازهای مجزا (ادامه)
الگوریتمهای گیرنده-آغاز: گیرنده میخواهد به سایر پردازندهها کمک کند در اینجا نیز سه تصمیم لازم است تا گرفته شود: سیاست انتقال: چه موقع یک پردازنده گیرنده میشود؟ سیاست انتخاب: چگونه گیرنده، پردازهای را برای انتقال از آن انتخاب میکند؟ سیاست محل: فرستنده، چه پردازندهای باید باشد؟ به نسبت الگوریتمهای فرستنده-آغاز پایا تر است در بار سنگین بهتر عمل میکند در بار سبک، کارایی اش کمتر است سود اشتراک باید از هزینه توقف و مهاجرت پردازه بیشتر باشد، وگرنه کار بیهوده ای انجام دادیم. میتوان از الگوریتم ترکیبی نیز استفاده کرد (تشخیص بار سیستم و انتخاب الگوریتم مناسب)
16
سیستمهای بلادرنگ (RTS)
"سیستمیهایی که درستی و صحت آنها نهتنها به نتیجه منطقی محاسبات، بلکه بر روی زمانی که آن نتایج تولید میشود نیز بستگی دارد“ بلادرنگ لزوما به معنای "واقعا سریع" نیست قابل پیشبینی بودن مهمترین نیازمندی در اینگونه از سیستمها است زمان اجرای تقریبی کارها و مهلت انجام آنها مشخص است قابل پیش بینی بودن: refers to the system’s deadline in terms of relative and absolute time, For instance, it must be mathematically predictable to determine if the amount of work to be done can be completed before a given deadline J. Stankovic, "Misconceptions About Real-Time Computing," IEEE Computer, 21(10), October 1988.
17
مشخصات وظایف در RTS الگوی رسیدن کارها
"رسیدن" ← به معنی آماده بودن برای اجرا "غیرمتناوب" (و "پراکنده") هیچکدام از الگوریتمهای زمانبندی شناختهشده "غیر متناوب" بهینه نیستند "متناوب" زمان رسیدن وظایف ثابت ولی اجرای آنها شاید متغیر باشد ( به دلیل برخی محدودیتها) وابستگی میان وظیفهای وظیفه 𝑗 به مجموعه وظایف 𝑆(𝑗) وابسته است، اگر نتواند تا قبل از اتمام اجرای آنها، اجرا شود وابستگی میان وظیفهها در قالب یک DAG نمایش داده میشود غیر متناوب یعنی زمان اومدنشم ندونیم! رسیدن به معنی اجرا شدن نیست! "رسیدن" یعنی خودش میخواد که انجام شه، ولی باید اول محدودیت هایی که داریم رعایت بشه، مثل وابستگی میان وظایف زمانبندی بدون وابستگی میان کارها به وضوح راحت تره!
18
مشخصات وظایف در RTS (ادامه)
لختی مهلت انجام (Deadline Laxity) مهلت سخت (Hard) با انجام نشدن حتی یکی از کارها در مهلت انجامش، فاجعه رخ میدهد مهلت نرم (Soft) با کمتر شدن فایده نتیجه وظیفه بعد از مهلت انجام، از کیفیت خروجی میکاهد
19
طراحی الگوریتم زمانبندی در RTS
ایستا یا پویا بودن الگوریتمهای ایستا مبنی بر اولویت مبنی بر خوشهبندی مبنی بر تکرار (برای کاهش وابستگیها) الگوریتمهای پویا پاسخگو در مقابل تغییرات محیط پردازشی مناسب برای زمانبندی هر دو نوع کارهای متناوب و غیرمتناوب برقراری تعادل بین هزینه محاسبات زمانبندی و بهره ناشی از آن اولویت ثابت، به صورت ایستا به کارها نسبت داده میشه و طر زمان تغییر نمیکنه الگوریتم های پیشگیرانه باید به دقت طراحی بشن وگرنه باعث گرسنگی در سیستم میشه تخصیص اولویت میتواند به دو صورت ثابت و پویا باشد الگوریتمهای پیشگیرانه زمانبندی بهتری انجام میدهند ولی هزینه محاسباتی بیشتری را نیز طلب میکنند زمانبندی قابل اجرا، یعنی الگوریتمی که تمام مهلت اجراها را رعایت کند
20
طراحی الگوریتم زمانبندی در RTS (ادامه)
وظیفهگرا (Assignment-Oriented) یا ترتیبگرا (Sequence-Oriented) نمایش مساله زمانبندی با درخت، زمانبندی (نه لزوما قابل اجرا) در قالب مسیر از ریشه تا برگ وظیفهگرا ← پیدا کردن پردازنده برای یک پردازه در هر مرحله ترتیبگرا ← انتخاب پردازه برای یک پردازنده در هر مرحله هر دو درخت را به صورت DFS جستجو میکنند و زمان اجرا و حافظه لازم هر دوی آنها نمایی است مساله زمانبندی وظایف بر روی چند پردازنده رو میشه به عنوان یه جستجو برای زمانبندی قابل اجرا دانست فضای جستجو رو میشه با یه درخت نمایش داد که هر مسیر از ریشه به برگ یه زمانبندی (نه لزوما قابل اجرا) معلوم شده که الگوریتمهای ترتیب گرا خیلی مقیاس پذیر نیستن. چون بیشتر هدف توازن بار دارن تا تحقق مهلت اجرای کارها Assignment-Oriented Sequence-Oriented
21
الگوریتم نرخ یکنواخت (RMA)
یک الگوریتم زمانبندی ایستای پیشگیرانه مبتنی بر نرخ اجرا (معکوس دوره تناوب) به عنوان اولویت است در سال 1973 توسط Liu و Layland پیشنهاد شد برای حل مشکل زمانبندی روی پردازنده واحد ارائه شد ولی قابلیت اجرا روی سیستمهای توزیعشده را نیز دارا است هرچه نرخ اجرا بیشتر باشد، اولویت کار نیز بالاتر است اولویت دوره تناوب زمان اجرا پردازه 2 50 20 P1 1 120 37 P2
22
الگوریتم نرخ یکنواخت (RMA) (ادامه)
الگوریتم مذکور برای n پردازنده تضمین زمانبندیای قابل اجرا برای آنها میکند، اگر رابطه زیر برقرار باشد: 𝑈= 𝑖=1 𝑛 𝐶 𝑖 𝑇 𝑖 ≤𝑛( 2 1 𝑛 −1) U مصرف پردازنده، Ci زمان اجرای وظیفه i ام و Ti دوره تناوب آن وظیفه است برقرار نبودن این رابطه، لزوما بر قابل اجرا نبودن زمانبندی دلالت نمیکند
23
الگوریتم نرخ یکنواخت (RMA) (ادامه)
مصرف اولویت دوره تناوب (ms) زمان اجرا (ms) پردازه 0.24 1 50 12 a 0.25 2 40 10 b 0.33 3 30 c 𝑈=0.82≰ −1 =0.78
24
الگوریتم نرخ یکنواخت (RMA) (ادامه)
مصرف اولویت دوره تناوب (ms) زمان اجرا (ms) پردازه 0.5 1 80 a 0.25 2 40 b 3 20 5 c 𝑈=1.0≰ −1 =0.78
25
الگوریتم نرخ یکنواخت (RMA) (ادامه)
به آزمونی نیاز داریم تا بتواند مشخص کند که آیا یک مجموعه از وظایفی که در آزمون Liu و Layland ناموفق بودهاند واقعا قابل زمانبندی هستند یا خیر! تست Lehoczky ← یک مجموعه از وظایف متناوب بلادرنگ در RMA در هر فازی قابل زمانبندی هستند، اگر همه آنها اولین مهلت انجامشان را در شرایط بدون فاز، رعایت کنند Lehoczky, John, Lui Sha, and Ye Ding. "The rate monotonic scheduling algorithm: Exact characterization and average case behavior." Real Time Systems Symposium, 1989., Proceedings.. IEEE, 1989.
26
الگوریتم نرخ مهلت (DMA)
از نوع زمانبندی ایستای اولویت ثابت هرچه مهلت انجام دادن نسبی یک کار کوتاهتر باشد، اولویت آن بالاتر است مهلت انجام نسبی یعنی زمان باقیمانده تا مهلت انجام کار از لحظه ورود به زمانبند اگر مهلت انجام نسبی برابر با دوره تناوب باشد، RMA با DMA فرقی نمیکند، در غیر اینصورت DMA در مواقع بیشتری زمانبندی قابل اجرا ایجاد خواهد کرد اولویت در DMA اولویت در RMA دوره تناوب (ms) مهلت انجام (ms) زمان اجرا (ms) پردازه 2 3 50 35 10 P1 100 20 15 P2 1 200 P3 مثال بالا در RMA غیر قابل زمانبندی و در DMA قابل زمانبندی است
27
الگوریتم Deadline-Driven
با توجه به بهرهوری پایین پردازنده با الگوریتم RMA، Liu و Layland الگوریتم دیگری با نام Deadline-driven که از تخصیص اولویت پویا استفاده میکرد ارائه دادند اولویت بر اساس مهلت انجام (مطلق) درخواست کنونی، به کارها تخصیص داده میشود هرچه مهلت انجام نزدیکتر باشد، اولویت کار بالاتر است حد بالای مصرف پردازنده در این الگوریتم 1.0 است 𝑈 = 𝑖=1 𝑛 𝐶 𝑖 𝑇 𝑖 ≤1 مشکل ← در آن زمان حمایت سختافزاری برای تخصیص اولویت پویا وجود نداشت راه حل ← استفاده از مخلوطی از هر دو الگوریتم؛ RMA برای اکثر وظایف و DDA برای بقیه تسک بیشترین اولویت رو میگیره اگه مهلتش نزدیکترین باشه. تخصیص اولویت هربار که یک تسک آماده زمانبندی شدنه انجام میشه. یک الگوریتم مشابه دیگر ← زمانبندی بر اساس کمترین لَختی (Least Laxity First) لَختی = زمان اجرا در بدترین حالت - مهلت انجام مطلق
28
مدل وظیفهای انتها-به-انتها
یک وظیفه (Task) از چندین زیروظیفه (Subtask) که بر روی چندین پردازنده اجرا میشوند تشکیل شده است رخدادهای غیر محلی فراخوانی از راه دور متد محدودیتهای اولویتی مربوط به زیروظیفهها میشود وظیفه = زنجیرهای از زیروظیفهها یک وظیفه مقید به رعایت مهلت انجام انتها به انتها است به زمان پاسخ زیروظیفهاش اهمیتی نمیدهد مدل وظیفهای انتها-به-انتها موارد زیر را پوشش میدهد تخصیص وظایف (به پردازندهها) پروتکلهای همگامسازی (برای اعمال محدودیتهای اولویتی)
29
مساله همگامسازی اولویتها به زیروظیفهها در یک زنجیره وظیفه با استفاده از یک الگوریتم تخصیص اولویت ثابت، اختصاص داده شده است چطور میتوان اجرای زیروظیفهها را به گونهای زمانبندی کرد که قید تقدم میان زیروظیفهها ارضا شود مهلت انجام زیروظیفهها رعایت شود مهلت انجام انتها-به-انتها رعایت شود
30
مساله همگامسازی (ادامه)
شرایط مساله به عنوان مثال به این صورت فرض میشود اولویت ← T1 > T2,1 و T2,2 > T3 (زمان اجرا، دوره تناوب) وظیفه T3 دارای فاز 4 است (بعد از 4 واحد زمانی به زمانبند وارد میشود)
31
پروتکل Direct Synchronization
از دسته الگوریتمهای حریصانه به محض اتمام زیروظیفه، به پردازنده حاوی زیروظیفه بعدی سیگنالی ارسال میشود و زیروظیفه بعدی را آماده اجرا میکند مزایا ← پیادهسازی راحت، کمترین سربار اجرا، انجام زیروظایف در زمان کمتر معایب ← در شرایط بار کاری بالا و زنجیره وظایف طولانی، میانگین زمان اجراها را بالا میبرد (بسته به اولویت زیروظایف درون آن پردازنده تصمیم به اجرایش گرفته میشود)
32
پروتکل Phase Modification
اصرار بر اجرا شدن زیروظیفهها به صورت تناوبی بر اساس دوره تناوبهای وظایف پدرشان هر زیروظیفه فاز مربوط به خود را دارد که بر اساس رابطه تقدم تاخر زیروظیفهها تعیین میشود معایب ← نیاز به ساعت مرکزی یا همگام دقیق، از بین رفتن رابطه تقدم و تاخر در مواقع طولانی شدن وظایف یا فاصله زمانی متغیر در اجراهای بعدی زیروظیفه اول افزایش زمان اجرای انتها-به-انتهای کلی وظیفه نیاز به ساعت همگام داریم، چون زیرکارها دارن با توجه به پریود مشخص واسه خودشون اجرا میشن و از همدیگه اطلاع ندارن اگه یه کاری بیشتر از زمان تخمینی که براش در نظر گرفته شده بود طول بکشه، دیگه رابطه تقدم تاخر رعایت نمیشه - اگه اولین کار یه زنجیره دیر شروع بشه (به خاطر اولویت توی اون پردازنده ایی که توش هست)، چون کارهای بعدی بر اساس پریود دارن شروع میشن، ممکنه زیرکار دوم زودتر از اولی شروع بشه و قید تقدم زیرکارهامون به هم بخوره! R. Belttati. End-to-End Scheduling to Meet Deadlines in Distributed Systems. PhD thesis University of Illinois at Urbana Champaign, 1994.
33
پروتکل Modified Phase Modification
اصلاح شده پروتکل قبلی اضافه شدن سیگنال همگامی به پروتکل برای رفع نیاز به ساعت مرکزی ایجاد تاخیر میان اتمام کار زیروظیفه قبلی و ارسال سیگنال برای اجرای زیروظیفه بعدی در شرایط ایدهآل (ساعت همگام، کران بالای معین انجام زیروظیفه و متناوب سخت بودن زیروظیفه اول زنجیره) ← MPM = PM نیاز به ساعت همگام داریم، چون زیرکارها دارن با توجه به پریود مشخص واسه خودشون اجرا میشن و از همدیگه اطلاع ندارن اگه یه کاری بیشتر از زمان تخمینی که براش در نظر گرفته شده بود طول بکشه، دیگه رابطه تقدم تاخر رعایت نمیشه - اگه اولین کار یه زنجیره دیر شروع بشه (به خاطر اولویت توی اون پردازنده ایی که توش هست)، چون کارهای بعدی بر اساس پریود دارن شروع میشن، ممکنه زیرکار دوم زودتر از اولی شروع بشه و قید تقدم زیرکارهامون به هم بخوره!
34
پروتکل Release Guard کنترل آماده به اجرا شدن یک زیروظیفه به منظور عدم تغییر فاصله میان نمونههای آن (کمتر نشدن از دوره تناوب) تخصیص متغیر gi,j به وظیفه Ti,j (زیروظیفه j از وظیفه i ام) به ازای j >1 pi,j دوره تناوب زیروظیفه و Idle point بیکار بودن پردازنده (نبودن وظیفهای برای اجرا در پردازنده) بروزرسانی gi,j در زمان بیکاری پردازنده و رسیدن سیگنال همگامی زمان اجرای انتها-به-انتهای کمتر از MPM، ولی با jitter بیشتر از آن نیاز به ساعت همگام داریم، چون زیرکارها دارن با توجه به پریود مشخص واسه خودشون اجرا میشن و از همدیگه اطلاع ندارن اگه یه کاری بیشتر از زمان تخمینی که براش در نظر گرفته شده بود طول بکشه، دیگه رابطه تقدم تاخر رعایت نمیشه - اگه اولین کار یه زنجیره دیر شروع بشه (به خاطر اولویت توی اون پردازنده ایی که توش هست)، چون کارهای بعدی بر اساس پریود دارن شروع میشن، ممکنه زیرکار دوم زودتر از اولی شروع بشه و قید تقدم زیرکارهامون به هم بخوره! gi,j = 0 /* initialization */ If (idle point) gi,j = current_time else gi,j = current_time + pi,j Sun, Jun, and Jane Liu. "Synchronization protocols in distributed real-time systems." Distributed Computing Systems, 1996., Proceedings of the 16th International Conference on. IEEE, 1996.
35
منابع [1] T. L. Casavant and J. G. Kuhl, “Taxonomy of Scheduling in General-Purpose Distributed Computing Systems.,” IEEE Trans. Softw. Eng., vol. 14, no. 2, pp. 141– 154, 1988. [2] V. Subramonian, “Real-time Scheduling Review Main Topics for Discussion,” 2004. [3] J. Sun and J. Liu, “Synchronization protocols in distributed real-time systems,” Distrib. Comput. Syst , Proc. 16th Int. Conf., pp. 38–45, 1996. [4] A. Majumder, “Scheduling and Synchronization in Real Time Systems,” pp. 1–11. [5] Cse, “Real-Time Task Scheduling,” IIT Kharagpur. [6] A. Carzaniga and A. L. Wolf, “Scheduling Real-Time Tasks in Distributed Systems : A Survey,” System, pp. 1–13, 2002. [7] R. Jalili, “Distributed Process Scheduling (Handnotes).” [8] R. Bettati and J. W.-S. Liu, “End-to-end scheduling to meet deadlines in distributed systems,” in [1992] Proceedings of the 12th International Conference on Distributed Computing Systems, 1992, pp. 452–459. نیاز به ساعت همگام داریم، چون زیرکارها دارن با توجه به پریود مشخص واسه خودشون اجرا میشن و از همدیگه اطلاع ندارن اگه یه کاری بیشتر از زمان تخمینی که براش در نظر گرفته شده بود طول بکشه، دیگه رابطه تقدم تاخر رعایت نمیشه - اگه اولین کار یه زنجیره دیر شروع بشه (به خاطر اولویت توی اون پردازنده ایی که توش هست)، چون کارهای بعدی بر اساس پریود دارن شروع میشن، ممکنه زیرکار دوم زودتر از اولی شروع بشه و قید تقدم زیرکارهامون به هم بخوره!
36
منابع [9] J. Wang, “Distributed Process Scheduling,” pp. 1–16, 2003.
[10] D. Liang, P. Ho, and B. Liu, “Scheduling in Distributed Systems,” pp. 1–9. [11] B. Sprunt, L. Sha, and J. Lehoczky, “Aperiodic task scheduling for Hard-Real-Time systems,” Real-Time Syst. Int. J. Time-Critical Comput. Syst., vol. 1, no. 1, pp. 27–60, نیاز به ساعت همگام داریم، چون زیرکارها دارن با توجه به پریود مشخص واسه خودشون اجرا میشن و از همدیگه اطلاع ندارن اگه یه کاری بیشتر از زمان تخمینی که براش در نظر گرفته شده بود طول بکشه، دیگه رابطه تقدم تاخر رعایت نمیشه - اگه اولین کار یه زنجیره دیر شروع بشه (به خاطر اولویت توی اون پردازنده ایی که توش هست)، چون کارهای بعدی بر اساس پریود دارن شروع میشن، ممکنه زیرکار دوم زودتر از اولی شروع بشه و قید تقدم زیرکارهامون به هم بخوره!
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.