الگوریتم زمانبندی RR به زبان C همراه سورس کد

  • دوشنبه ۷ بهمن ۱۳۹۲
  • بازدید 2,432 نفر
  • 1 امتیاز2 امتیاز3 امتیاز4 امتیاز5 امتیاز (384 امتیاز از 105 رای)
    Loading...

Editor c الگوریتم زمانبندی RR به زبان C همراه سورس کدRR C4 الگوریتم زمانبندی RR به زبان C همراه سورس کد

الگوریتم زمانبندی RR به زبان C همراه سورس کد

در این پست شما می توانید  سورس الگوریتم زمانبندی RR به زبان C سی را از ما دریافت کنید.

زمانبندی نوبت چرخشی RR مخفف Round-robin Scheduling یکی دیگر از الگوریتم‌ هایی می باشد که با فرایندها و زمان بندی شبکه کار می‌ کند. پارامتر هایی که اکثرا مورد استفاده می گیرند، قطعات زمانی هستند که به هر فرایند بخش یکسان و به صورت ترتیب چرخشی انتساب داده می‌ شود، تمام فرایندها بدون اولویت در نظر گرفته می‌ شوند. الگوریتم زمانبندی RR ساده، پیاده سازی آسان و بدون قحطی است. این زمان بندی هم چنین می‌تواند برای مسائل زمان بندی دیگر مثل زمان بندی بسته داده در شبکه‌های کامپیوتری بکار برده شود. این خط مشی سیستم عامل است.

الگوریتم زمانبندی RR به صورت منصفانه‌ است، یک زمانبند RR بیشتر اشتراک زمانی را در نظر می‌گیرد. به هر کار یک قطعه زمانی یا کوانتوم (توسط cpu اجازه داده می‌شود) داده می‌شود، اگر یک کار تمام نشده باشد به وسیله آن وقفه داده می‌شود و آن کار دوباره در زمان بعدی یک قطعه زمانی به فرایند اختصاص میدهد. اگر اشتراک زمانی نباشد یا کوانتوم‌ها بزرگتر از سایز کارها باشند، یک فرایندی که کارهای بزرگ را تولید کرده‌ است نسبت به فرایندهای دیگر مورد توجه قرار خواهد گرفت.

مثلاً اگر قطعه زمانی ۱۰۰ میلی ثانیه باشد و کار شماره یک، جمعا ۲۵۰ میلی ثانیه زمان می برد تا تکمیل شود، زمانبند RR، کار را ۱۰۰ میلی ثانیه به عقب می‌ اندازد و به دیگر فرایندها زمانشان را روی cpu میدهد. در اجرای اول کارهای دیگر سهم یکسانشان را دارند؛ (۱۰۰ میلی ثانیه) کار شماره یک تخصیص دیگری از زمان cpu را خواهد گرفت و چرخه ادامه پیدا خواهد کرد. این فرایندها تا زمانی که کارها تمام شود و احتیاجی به زمان بیشتری روی cpu نباشد. ادامه پیدا می کند.

در ادامه می توانید قسمت های از کد برنامه الگوریتم زمانبندی RR با زبان C سی را ملاحظه کنید.

تکه کد الگوریتم زمانبندی RR به زبان C سی:

جهت دریافت کد کامل این برنامه از قسمت خرید محصول اقدام کنید
#include<stdio.h>
struct job
{
    char jid[10];
    int at;
    int bt;    
    int wt;
    int tt;
}jq[10],rq[100];
int front_jq=0,rear_jq=0;
int front_rq=0,rear_rq=0;
int rt[100];
void gantt_chart(int q)
{
    int i,k,val,j=rq[0].at;
    printf("\n\nGANTT CHART\n");
    for(i=0;i<rear_rq;i++)
    {
        for(k=0;k<rt[i];k++)
            printf("__");
        printf(" ");
    }
    printf("\n");
    for(i=0;i<rear_rq;i++)
    {
        printf("%s",rq[i].jid);
        for(k=0;k<rt[i]-1;k++)
                        printf("  ");
                printf(" ");
    }
    printf("\n");
        for(i=0;i<rear_rq;i++)
        {
                for(k=0;k<rt[i];k++)
                        printf("__");
                printf(" ");
        }
        printf("\n");    
    for(i=0;i<rear_rq;i++)
    {
        if(j<10)
            printf("0%d",j);
        else    
            printf("%d",j);
        for(k=0;k<rt[i]-1;k++)
                        printf("  ");
                printf(" ");
        j+=rt[i];
    } 
}
int main()
{
    float avg_wt=0,avg_tt=0;
    int n=0,i,j,q;
    FILE *fp;
    fp=fopen("rr.txt","r");
    fscanf(fp,"%d\n",&q);
    do
    {
        fscanf(fp,"%s\t%d\t%d\n",jq[n].jid,&jq[n].at,&jq[n].bt);
        jq[n].wt=0;
        jq[n].tt=0;
        n++;
    }
    while(!feof(fp));
    fclose(fp);
    rear_jq=n;
    rr_scheduling(q,n);

    for(i=0;i<n;i++)
        jq[i].tt=jq[i].bt+jq[i].wt;
    printf("\nSCHEDULING\n");
    for(i=0;i<rear_rq;i++)
    {
        if(i==rear_rq-1)
            printf("%s",rq[i].jid);
        else
            printf("%s --> ",rq[i].jid);
    }   
    gantt_chart(q);
    printf("\n\nJID\tAT\tBT\tWT\tTT\n");
    for(i=0;i<n;i++)
    {
        printf("%s\t%d\t%d\t%d\t%d\n",jq[i].jid,jq[i].at,jq[i].bt,jq[i].wt,jq[i].tt);
        avg_wt+=jq[i].wt;
        avg_tt+=jq[i].tt;
    }
    printf("Average Waiting Time:: %.2f\n",avg_wt/n);
    printf("Average Turnaround Time:: %.2f\n",avg_tt/n);
    return 0;
}

پروژه ها و آموزش های برنامه نویسی

پروژه ها و آموزش های برنامه نویسی

مشاهده مطالب برنامه نویسی

خوشحال خواهیم شد اگر نظر خودتون رو درباره این مطلب ثبت کنید

خطا!دکمه ریفریش را بزنید
  1. تصویر آواتار کاربر 0
    سارا عباسی پنج شنبه , ۱۴ بهمن

    سلام می تونم کمی وقتتونو بگیرم . فرق بین نرم افزار سی با سی پلاس پلاس می خواستم بدونم ؟

  2. تصویر آواتار کاربر 0
    بهزاد خادمزاده پنج شنبه , ۲۱ بهمن

    سلام من برنامه سی رو رو سیستمم نصب کردم بار اول اجرا نشد چند بار که سیستممو روشن خاموش کردم درست شد علت چیه ؟ خیلی خیلی تشکر ...

  3. تصویر آواتار کاربر 0
    بهزاد خادمزاده پنج شنبه , ۲۱ بهمن

    سلام من برنامه سی رو رو سیستمم نصب کردم بار اول اجرا نشد چند بار که سیستممو روشن خاموش کردم درست شد علتشو می خواستم بدونم . خیلی خیلی تشکر ...

لیســــــــت پــــــــروژه های انتشــــــــار نشده ( 22 موضوع )

مشاهده لیست کامل
مشاهده لیست کامل
socket programing آموزش برنامه نویسی آموزش سی شارپ بازی تحت شبکه بازی تحت شبکه برای درس مهندسی اینترنت بازی تحت شبکه به زبان سی شارپ برنامه تحت شبکه با سی شارپ برنامه نویسی ترجمه مقاله ترجمه مقاله شبکه خرید سورس بازی تحت شبکه دانلود بازی تحت شبکه دانلود رایگان پروژه های دانشجویی دانلود سورس برنامه دانلود سورس رایگان دانلود نرم افزار دانلود پروژه دانشجویی دانلود پروژه رایگان دانلود پروژه های دانشجویی دانلود کتاب دانلود کتاب آموزشی دانلود کتاب اموزشی سورس بازی با socket programing سورس رایگان سورس کد بازی تحت شبکه سورس کد بازی تحت شبکه با C# سورس کد بازی تحت شبکه چند نفره سوکت پروگرمین نحوه نوشتن برنامه تحت شبکه نحوه نوشتن برنامه تحت شبکه به زبان سی شارپ پروژه arena پروژه matlab پروژه ns2 پروژه opnet پروژه برای درس مهندسی اینترنت پروژه سیمولینک matlab پروژه مهندسی صنایع پروژه مهندسی صنایع با ارنا پروژه های آماده با OpenGL پروژه های آماده با OpenGL در سی پلاس پلاس پروژه های آماده با ارنا پروژه های آماده برای درس گرافیک کامپیوتری پروژه هوش مصنوعی پروژه پردازش تصویر matlab پروژه پردازش سیگنال matlab