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

rr algorithm in c 7680 تصویر

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

در این بخش سورس الگوریتم زمان بندی RR به زبان C را برای شما آماده کرده ایم که در ادامه می توانید توضیحات و تصاویر مربوط به این پروژه را مشاهده کنید.

توضیحات پروژه

یکی دیگر از الگوریتم های زمان بندی که برای مدیریت فرآیندها مورد استفاده قرار می گیرد، الگوریتم RR یا همان Round Robin است که در این بخش سورس کد آن را با زبان برنامه نویسی C برای شما قرار داده ایم تا با نحوه عملکرد این الگوریتم آشنا شوید.

الگوریتم زمان بندی راند رابین (Round-Robin Scheduling) یکی از الگوریتم های ساده، عادلانه، پرکاربرد و قدیمی است که به طور ویژه برای سیستم های اشتراک زمانی طراحی شده است. در این روش همه فرآیند های موجود از اولویت یکسانی برخوردارند. یعنی هر فرآیند هنگامی که CPU را در اختیار گرفت، یک کوانتوم زمانی به آن داده می شود تا کار خود را انجام دهد. اگر زمان اجرای فرآیند بیشتر از زمان اختصاص داده شده باشد، اجرای آن قطع می شود و در چرخش بعدی دوباره به آن فرصت اجرا شدن داده می شود تا کار خود را تمام کند.

هنگامی که سورس کد این پروژه اجرا شود، برنامه از فایلی که در کنار پروژه قرار دارد (فایل rr.txt)، اطلاعات مربوط به فرآیند ها را میخواند و سپس نحوه زمان بندی شدن آن ها توسط الگوریتم RR را در خروجی نمایش می دهد. این برنامه با استفاده از برنامه Dev 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];
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;
}

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

درباره نویسنده: administrator

ممکن است دوست داشته باشید

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *