Return reject
Else { Get the max[retnewi j , SDi j ] in PotentialScheduleList
IF (max(retnewi j ) <=expInvRetnewi j ) THEN
Return accept
Else
Return reject
}
chedule() { Get the [retnewmax, SDmax] in maxRet(PotentialScheduleList)
IF (SDmax is initiateNewVM) THEN
initiateNewVM in rpj
Schedule the unew in VMmax in rpmax according to SDmax
}
}

شکل ۴-۱۷: الگوریتم ProfminVM ]27[.
الگوریتم ماکزیمم­سازی سود بوسیله زمانبندی مجدد (ProfRS): در الگوریتم قبلی درخواست جدید اولویتی نسبت به هیچ یک از درخواست­های پذیرفته شده قبلی نداشت. این عدم انعطاف­پذیری روی سود تاثیر می­ گذارد، زیرا بسیاری درخواست­ها با بودجه بالاتر و درخواست­های ضروری رد می­شوند، بنابراین در این الگوریتم درخواست­های پذیرفته­شده قبلی، مجدد زمانبندی می­شوند تا بتوان درخواست­های فوری و یا با بودجه بالا را پذیرفت. مزیت این الگوریتم این است که فراهم­کننده SaaS کاربران بیشتری را با بکارگیری سودمند VMهای شروع­شده می­پذیرد و سود بیشتری بدست می ­آورد. در این الگوریتم در فاز کنترل ورودی ابتدا بررسی می­ شود که آیا درخواست جدید می ­تواند پذیرفته شود یا نه (ابتدا در مرحله ۳ با بهره گرفتن از الگوریتم canWait() بررسی می­ شود که آیا درخواست می ­تواند منتظر تکمیل درخواست­های قبلی شود یا نه و اگر نمی­توانست با استراتژی Insert بررسی می­ شود که آیا درخواست جدید می ­تواند قبل از درخواست از قبل پذیرفته­شده در یک VM شروع­شده فعلی قرار بگیرد (مرحله ۴) و اگر نتواند در مرحله ۵ بررسی می­ شود که آیا درخواست با شروع VM جدید می ­تواند پذیرفته شود یا نه (الگوریتم canInitiateNewVM())). اگر فراهم­کننده SaaS نتواند از این طریق سودی بدست آورد درخواست رد می­ شود (مرحله ۱۰ و ۱۱) ولی اگر سودی بدست آید الگوریتم حداکثر سود بازگشتی برگردانده می­ شود (مرحله ۱۵). بقیه مراحل مثل الگوریتم قبل است. شکل ۴-۱۸این الگوریتم را نشان می­دهد.

( اینجا فقط تکه ای از متن فایل پایان نامه درج شده است. برای خرید متن کامل پایان نامه با فرمت ورد می توانید به سایت feko.ir مراجعه نمایید و کلمه کلیدی مورد نظرتان را جستجو نمایید. )

Algorithm 2: Pseudo-code for ProfRS algorithm

Input: New user’s request parameters (unew), expInvRetnewi j
Output: Boolean
Functions:admissionControl()
{ IF (there is any initiated VM) THEN
{ For each vmi in each resource provider rp j DO
{ IF (! canWait(unew, vmi)) THEN
{ IF (! canInsert(unew, vmi)) THEN
{ IF (! canInitiateNew(unew, rpj)) THEN
Continue
}
}
Else IF (! canInitiateNew(unew, rp j)) THEN
Return reject
IF (PotentialScheduleList is empty) THEN
Return reject
Else{ Get the max[retnewi j , SDi j ] in PotentialScheduleList
IF (max(retnewi j ) <=expInvRetnewi j ) THEN
Return accept
Else
Return reject
}
}
{
}
schedule() {Get the [retnewmax, SDmax] in maxRet(PotentialScheduleList)
IF (SDmax is initiateNewVM) THEN
initiateNewVM in rpj

موضوعات: بدون موضوع  لینک ثابت


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