PDA

View Full Version : کسی واسه RoundRobin برنامه نوشته؟



Developer Programmer
جمعه 09 اردیبهشت 1384, 20:05 عصر
واسه درس آزمایشگاه سیستم عامل می خوام RoundRobin رو شبیه سازی کنم
یه جورهایی گیر کردم... مثلا نمیدونم حلقه رو تا کی باید ادامه بدم :oops:

مهدی
شنبه 10 اردیبهشت 1384, 14:26 عصر
خوب مسلما حلقه تا زمانی که job دیگه ای وجود داشته باشه کار میکنه و وقتی همه job ها تموم شدند تموم میشه.!


while(joblist!=empty){
foreach(job j in joblist)){
if(j.length<=t){
do j;
delete j from joblist;
}else{
give j "t" time;
}
}
}


این شبه کد رو با فرض timeslice = t نوشتم

Developer Programmer
شنبه 10 اردیبهشت 1384, 21:09 عصر
سلام و با تشکر از وقتی که به خاطر من گذاشتین
دوست عزیز
من واسه پیاده سازی یک رکورد تعریف کرده ام به اسم Tprocess که مشخصاتی مثل نام و زمان ورود و زمان سرویس رو نگه میداره و یک آرایه از نوع Tprocess به نام ReadyQueue که درواقع همان صف فرایندها رو شبیه سازی میکنه... وقتی قراره یه فرایند از صف آماده ها حذف بشه .. نام فرایند رو با مقدار Null بازنویسی میکنم :wink: ... تا اینجا رو داشته باشین

while(joblist!=empty){

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

مهدی
شنبه 10 اردیبهشت 1384, 22:34 عصر
باور کنین به حرف راحته ... وقتی پیاده سازی میکنم بعضی جاها واقعا به بن بست میرسم
:embr:
دلیلش اینه که فکر کیکنی باید حتما یه کد عجیب غریب باشه! به قول معروف سعی کن که فکرتو محدود نکنی! هرچی راهش به فکرت نرسید سعی کن قضیه رو یه جور دیگه نگاه کنی! think outside the box!"

مثلا راهی که من همین الان به فکرم میرسه اینه که یه شمارنده بگیر که اول کار تعداد job ها توش باشه. هر job که تموم شد یکی کمش کن: counter = counter - 1

هر وقت شمارنده صفر شده یعنی کار تمومه.

اگر فکر میکنی راه خوبی نیست بگو تا بازم روش فکر کنم.