![]() |
| [ На главную ] -- [ Список участников ] -- [ Правила форума ] -- [ Зарегистрироваться ] |
| On-line: |
| |Заречный On-line| / Общий / Форумная игра - Городки |
| Страницы: << Prev 1 2 3 4 Next>> |
|
| Автор | Сообщение |
|
Sat13 Проверенный временем Группа: Участники Сообщений: 407
|
Добавлено: 03-12-2004 10:13 |
|
Киштым |
|
|
Masell Завсегдатай Группа: Участники Сообщений: 173 |
Добавлено: 05-12-2004 19:15 |
|
Мирный |
|
|
Landavshits Посетитель Группа: Участники Сообщений: 13
|
Добавлено: 06-12-2004 05:07 |
|
Йобург. |
|
|
Landavshits Посетитель Группа: Участники Сообщений: 13
|
Добавлено: 06-12-2004 05:09 |
|
And GOD said: #include<stdio.h> #include<string.h> #include<stdlib.h> struct process { int num; //a number of a process int CPUBURST; // CPU burst int starttime; struct process *next; }; struct process addlist(int a ,int b, int c, struct process *last) { struct process *p, *next; p=malloc(sizeof(struct process)); p->num=a; p->CPUBURST=b; p->starttime=c; p->next=NULL; last->next=p; last=p; }; struct process plan_FCFS(struct process *first) { int i, proccounter=1; struct process *p, *q, *temp; p=first; while(p!=NULL) {proccounter++; p=p->next;} for (i=1;i++;i<=proccounter) {p=first, temp=first; while(p!=NULL) {q=p->next; if(p->starttime>q->starttime) {temp->num=p->num; temp->CPUBURST=p->CPUBURST; temp->starttime=p->starttime; p->num=q->num; p->CPUBURST=q->CPUBURST; p->starttime=q->starttime; q->num=temp->num; q->CPUBURST=temp->CPUBURST; q->starttime=temp->starttime;} p=q;} } //The cykle of process execution printf("The FCFS process executing table\n"); int et, wt, tat; int exeflag=1; *p=*first; while(exeflag==1) {exeflag=0; while (p!=NULL); {if (p->CPUBURST>0) {if(exeflag>0) { wt++; tat++; printf(" W");} else et++; tat++; p->CPUBURST--; exeflag++; printf(" E");} else {printf(" -");} p=p->next; printf(" \n"); } } printf("wt = %i ,tat = %i, et = %i \n", wt, et, tat); }; //-------------------------------------------------------------------------------------------------- int main(int argc, char *argv[]) { char help[4]="help"; help[4]=0; if (argc!=2) {printf ("Fuck you sir!\n"); return 0;} else if(strstr(argv[1],help)!=NULL) // ??????????????? {printf("Can I help you?\n"); return 0;} // It was our help for user printf("1 ok \n "); int *num1, *CPUBURST1, *starttime1; FILE *fd=fopen(argv[1],"r"); if(scanf(fd, "%i/%i/%i",num1,CPUBURST1,starttime1)!=3) printf("2 ok \n"); {printf("what are you doing, FUCKEN STUPID SHIT?!\n");} struct process *first, *last; struct process addlist(int num1,int CPUBURST1,int starttime1,struct process *last); while (scanf(argv[1], "%i/%i/%i",num1,CPUBURST1,starttime1)==3) {struct process addlist(int num1, int CPUBURST1,int starttime1, struct process *last);} struct process plan_FCFS(struct process*first); // plan_SJF1(*first); // plan_SJF2(*first); // plan_RR(*first); return 0; } |
|
|
Landavshits Посетитель Группа: Участники Сообщений: 13
|
Добавлено: 06-12-2004 05:11 |
|
И встали процессы в очередь за диффицитом имя которому CPUBURST. |
|
|
Кисаня Завсегдатай Группа: Участники Сообщений: 197
|
Добавлено: 06-12-2004 05:42 |
|
Гуково |
|
|
Lexus3D Завсегдатай Группа: Участники Сообщений: 147 |
Добавлено: 06-12-2004 11:48 |
|
Landavshits к чему это было ....???? -------------------------------- омск |
|
|
Sat13 Проверенный временем Группа: Участники Сообщений: 407
|
Добавлено: 06-12-2004 12:10 |
|
Крым |
|
|
kain Завсегдатай Группа: Участники Сообщений: 139
|
Добавлено: 06-12-2004 13:57 |
Ха ха ха это наверное очередной супер мега крякер интернета и всех прлежащих к ниму форумов . Эксплоитами научись пользоватся мудила !!!!незнаю было или нет, но Мурманск |
|
|
Sat13 Проверенный временем Группа: Участники Сообщений: 407
|
Добавлено: 06-12-2004 14:02 |
|
Львов Красноуфимск |
|
|
kain Завсегдатай Группа: Участники Сообщений: 139
|
Добавлено: 06-12-2004 14:04 |
|
Сорь, мой косяк (просто подумал что на мягкий знак сложновато придумать город ) Владимир |
|
|
Sat13 Проверенный временем Группа: Участники Сообщений: 407
|
Добавлено: 06-12-2004 14:06 |
|
Ростов |
|
|
kain Завсегдатай Группа: Участники Сообщений: 139
|
Добавлено: 06-12-2004 14:08 |
|
Владик (т. е. Владивосток) |
|
|
Sat13 Проверенный временем Группа: Участники Сообщений: 407
|
Добавлено: 06-12-2004 14:11 |
|
Карабах |
|
|
~martin Завсегдатай Группа: Участники Сообщений: 272
|
Добавлено: 06-12-2004 15:05 |
|
Хомяк |
|
|
Sat13 Проверенный временем Группа: Участники Сообщений: 407
|
Добавлено: 06-12-2004 15:34 |
|
Калининград |
|
|
Кисаня Завсегдатай Группа: Участники Сообщений: 197
|
Добавлено: 07-12-2004 07:04 |
|
Дивногорск |
|
|
Sat13 Проверенный временем Группа: Участники Сообщений: 407
|
Добавлено: 07-12-2004 08:15 |
|
Караганда |
|
|
AGRONOM Частый гость Группа: Участники Сообщений: 23 |
Добавлено: 08-12-2004 02:20 |
Ландавшиц, Господь не мог это сказать, т.к. он не ламер, в отличие от тебя. В твоём коде ошибок куча. #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/types.h> #include <unistd.h> #define print(int) printf("%3d ",int) #define printfl(float) printf("%.2f ",float) #define newline printf("\n") #define MASSNUM 10 #define MAXTIME 40 // text files only typedef struct task { int num; int start; int exec; int done; int trun; }task; void print_mass(task * mass, int tNUM) { int i; printf("----____----\n"); for(i=0;i<tNUM;i++) { printf("%d,N%i S%i X%i D%i T%i\n",i,mass[i].num,mass[i].start,mass[i].exec,mass[i].done,mass[i].trun); } printf("----^^^^----\n"); } void print_table(char mass[MASSNUM][MAXTIME], int h, int w) { int i=0,j=0; printf("-----______________________________________________________________________________________________________\n"); for (i=0;i<h;i++) { print(i); for(j=0;j<w;j++) { printf(" %c",mass[i][j]); } printf("\n"); } printf("-----^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"); } void fcfs_sort(task * tsk, int tNUM, float * stats) { int i=0,j=0,k=0,t=0,shift=0; float Toj=0,Tisp=0; task prmj; char tbl[MASSNUM][MAXTIME]; for(j=0;j<tNUM;j++) { for(i=1;i<tNUM;i++) { if(tsk[i-1].start>tsk[i].start) { prmj=tsk[i]; tsk[i]=tsk[i-1]; tsk[i-1]=prmj; } } } printf("-----FCFS SORTING-----\n"); printf(" "); for(j=0;j<tNUM;j++) { if (tsk[j].start>t) shift=tsk[j].start-t; for(i=0;i<tsk[j].exec+shift;i++,t++) { printf("%3d",t); for(k=0;k<tNUM;k++) { if (tsk[k].start>t) {tbl[tsk[k].num][t]='-';} if ((tsk[k].start<=t)&&(k<j)) {tbl[tsk[k].num][t]='-';} if ((tsk[k].start<=t)&&(k>j)) {tbl[tsk[k].num][t]='W'; Toj=Toj+1;} if ((tsk[k].start<=t)&&(k==j)) {tbl[tsk[k].num][t]='X'; Tisp=Tisp+1;} } } shift=0; } printf("\n"); print_table(tbl,tNUM,t); stats[0]=(Toj/tNUM); stats[1]=((Tisp+Toj)/tNUM); printf("---FCFS SORTING END---\n"); } void sjf2_sort(task * tsk, int tNUM, float * stats) { int j=0,k=0,t=0,q=0; float Toj=0,Tisp=0; task prmj; task *pp; char tbl[MASSNUM][MAXTIME]; prmj=tsk[0]; for(k=0;k<tNUM;k++) {tsk[k].done=tsk[k].exec; if(tsk[k].done>prmj.done) prmj=tsk[k];} pp=&prmj; printf("-----SJF2 SORTING-----\n"); printf(" "); while (1) { for(t=0;;t++) { for(k=0;k<tNUM;k++) { if ((tsk[k].start<=t)&&(tsk[k].done<=pp->done)&&(tsk[k].done!=0)) {pp=&tsk[k]; q=1;} } j=0; for(k=0;k<tNUM;k++) { if (tsk[k].done==0) j=j+1; } if(j==tNUM) goto done; printf("%3d",t); if (q==0) { for(k=0;k<tNUM;k++) tbl[tsk[k].num][t]='-'; pp=&prmj; q=0; continue; } q=0; for(k=0;k<tNUM;k++) { if (tsk[k].start>t) {tbl[tsk[k].num][t]='-';} else if (tsk[k].done==0) {tbl[tsk[k].num][t]='-';} else if (&tsk[k]!=pp) {tbl[tsk[k].num][t]='W'; Toj=Toj+1;} else {tbl[tsk[k].num][t]='X'; Tisp=Tisp+1; tsk[k].done=tsk[k].done-1; pp=&prmj;} } } } done: printf("\n"); print_table(tbl,tNUM,t); stats[0]=(Toj/tNUM); stats[1]=((Tisp+Toj)/tNUM); printf("---SJF2 SORTING END---\n"); } void sjf_sort(task * tsk, int tNUM, float * stats) { int i=0,j=0,k=0,t=0,q=0; float Toj=0,Tisp=0; task prmj; task *pp; char tbl[MASSNUM][MAXTIME]; prmj=tsk[0]; for(k=0;k<tNUM;k++) {tsk[k].done=tsk[k].exec; if(tsk[k].done>prmj.done) prmj=tsk[k];} pp=&prmj; printf("-----SJF SORTING-----\n"); printf(" "); while (1) { for(k=0;k<tNUM;k++) { if ((tsk[k].start<=t)&&(tsk[k].done<=pp->done)&&(tsk[k].done!=0)) {pp=&tsk[k]; q=1;} } j=0; for(k=0;k<tNUM;k++) { if (tsk[k].done==0) j=j+1; } if(j==tNUM) goto done; if (q==0) { for(k=0;k<tNUM;k++) tbl[tsk[k].num][t]='-'; pp=&prmj; q=0; printf("%3d",t); t++; continue; } q=0; for(i=0;i<pp->exec;i++,t++) { printf("%3d",t); for(k=0;k<tNUM;k++) { if (tsk[k].start>t) {tbl[tsk[k].num][t]='-';} else if (tsk[k].done==0) {tbl[tsk[k].num][t]='-';} else if (&tsk[k]!=pp) {tbl[tsk[k].num][t]='W'; Toj=Toj+1;} else {tbl[tsk[k].num][t]='X'; Tisp=Tisp+1; tsk[k].done=tsk[k].done-1;} } } pp=&prmj; } done: printf("\n"); print_table(tbl,tNUM,t); stats[0]=(Toj/tNUM); stats[1]=((Tisp+Toj)/tNUM); printf("---SJF SORTING END---\n"); } void rr_sort(task * tsk, int tNUM, float * stats, int quant) { int i=0,j=0,t=0,k=0,n=tNUM; float Toj=0,Tisp=0; task *pp; char tbl[MASSNUM][MAXTIME]; for (i=0;i<tNUM;i++) {tsk[i].trun=tsk[i].num;} pp=&tsk[0]; printf("-----RR SORTING-----\n"); printf(" "); while (1) { for(i=0;i<quant;i++,t++) { for(j=0,k=0;j<tNUM;j++) {if(tsk[j].start<=t){k++;}} if(k==0) {i--;} for(j=0,k=0;j<tNUM;j++) { if((tsk[j].start>t)||(tsk[j].done==tsk[j].exec)) {tsk[j].trun=0;} else if((tsk[j].trun==0)&&(tsk[j].start<=t)) {n++; tsk[j].trun=n;} k=k+(tsk[j].exec-tsk[j].done); if(tsk[j].trun!=0) pp=&tsk[j]; } if(k==0) goto done; for(j=0;j<tNUM;j++) {if((tsk[j].trun<pp->trun)&&(tsk[j].trun!=0)) {pp=&tsk[j];}} for(j=0;j<tNUM;j++) { if (tsk[j].trun==0) {tbl[tsk[j].num][t]='-';} else if (&tsk[j]!=pp) {tbl[tsk[j].num][t]='W'; Toj=Toj+1;} else {tbl[tsk[j].num][t]='X'; Tisp=Tisp+1; tsk[j].done=tsk[j].done+1;} } if(pp->done==pp->exec) i=quant; printf("%3d",t); } n++; pp->trun=n; } done: printf("\n"); print_table(tbl,tNUM,t); stats[0]=(Toj/tNUM); stats[1]=((Tisp+Toj)/tNUM); printf("---RR SORTING END---\n"); } int main(int argc, char *argv[]) { //----------variables------------------------ int tNUM=0, quant=4, i=0; enum {bufSize=6}; FILE * fd = fopen ("./manager.task","r"); char buf[bufSize+1]; task pr[MASSNUM]; float fcfs_stats[2]; float sjf_stats[2]; float rr_stats[2]; float sjf2_stats[2]; if(argc==1) goto skip; if(argc>6) {printf("\nToo many arguments!\nTry -help option\n"); return -1;} for(i=1;i<argc;i++) { if(strcmp(argv[i],"-help")==0) { printf("\nTask Manager HELP\nUsage: manager [options...]\nOptions:\n -help This page.\n -q [quant] Define quant. [quant]>0.\n -t [path] Define [path] of task.\n\n"); return 0; } else if(strcmp(argv[i],"-q")==0) { quant=atoi(argv[i+1]); if(quant<=0) {printf("\nWrong quant!\nTry -help option\n"); return -1;} i++; } else if(strcmp(argv[i],"-t")==0) { fd = fopen (argv[i+1],"r"); i++; } else { printf("\nWrong arguments!\nTry -help option\n"); return -1; } } skip: //----------proverka na owibki--------------- if(fd == NULL) { perror("\nError while opening file!\nTry -help option\n"); return -1; } //----------delaem massiv structur----------- printf("\n N S B\n"); printf("-_________-\n"); while(fread(buf,1,bufSize,fd)>0) { buf[bufSize]='\0'; pr[tNUM].num=buf[0]-'0'; pr[tNUM].start=buf[2]-'0'; pr[tNUM].exec=buf[4]-'0'; pr[tNUM].done=0; pr[tNUM].trun=0; printf("%3i%3i%3i\n",pr[tNUM].num,pr[tNUM].start,pr[tNUM].exec); tNUM++; } printf("-^^^^^^^^^-\n\n"); fcfs_sort(pr,tNUM,fcfs_stats); printf("ATW %.2f\n",fcfs_stats[0]); printf("ATX %.2f\n",fcfs_stats[1]); newline; rr_sort(pr,tNUM,rr_stats,quant); printf("ATW %.2f\n",rr_stats[0]); printf("ATX %.2f\n",rr_stats[1]); newline; sjf_sort(pr,tNUM,sjf_stats); printf("ATW %.2f\n",sjf_stats[0]); printf("ATX %.2f\n",sjf_stats[1]); newline; sjf2_sort(pr,tNUM,sjf2_stats); printf("ATW %.2f\n",sjf2_stats[0]); printf("ATX %.2f\n",sjf2_stats[1]); newline; return 0; } |
|
|
AGRONOM Частый гость Группа: Участники Сообщений: 23 |
Добавлено: 08-12-2004 02:22 |
Вот это - правильный код, хоть и ламерский. ![]() |
| Страницы: << Prev 1 2 3 4 Next>> |
|
| |Заречный On-line| / Общий / Форумная игра - Городки |