본문내용
#include
#include
#include
#include
#include
struct Client{
int id;
int arrival;
int wait;
int start;
int load;
int leave;
};
struct Server{
int clientID;
int Rworktime;
};
void gotoxy(int x, int y);
// 진행과정을 보여주기위한 함수
void printProcess( int time, int serverID, struct Client waitAry[], int Last, char H[], int Y);
double cal_ave( struct Client Ary[], int S ); // 평균을 계산하는 함수
double cal_stanDev( double mean, struct Client Ary[] , int S); // 표준편차를 계산하는 함수
// 마지막에 계산된 평균과 표준편차들을 출력하기위한 함수
void printScreen( double FCFS_ave, double FCFS_stanDev, double SJF_ave, double SJF_stanDev );
int main()
{
int i, arrival, t, y;
int last, newClient;
int size;
int startClient; // user에 start시간을 넣어줄때 쓰이는 변수
int numCheck;
int min;
int position; // SJF에서 가장 적은 service time을 가지는 손님을 선택할때 쓰는 변수
double ave, stanDev;
double FCFS_ave, FCFS_stanDev;
double SJF_ave, SJF_stanDev;
char how1[] = "FCFS";
char how2[] = "SJF";
FILE *fpFCFS;
FILE *fpSJF;
struct Client *user;
struct Client *waitQ;
struct Server server = { -1, 0 };
printf("\n\t★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★");
printf("\n\n\t program의 설명\n\n");
printf("\t --> service를 요청하는 client에게 service를 제공하는 server의\n");
printf("\t 스케쥴링 방식에 따른 성능을 평가할수 있는 시뮬레이션 프로그램이다.\n\n");
printf("\t 먼저 오는것을 먼처 처리하는 FCFS 방식과\n");
printf("\t 기다리고 있는 것중 가장 짧은 service 시간이 요구되는 SJF방식.\n");
printf("\t 이 두 방법을 시뮬레이션하여 비교한다.\n");
printf("\n\n\t★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★");
printf("\n\n\tservie받을 client의 수를 입력하세요 : ");
scanf("%d",&size);
user = (struct Client*)malloc( sizeof(struct Client)*size); // user와 waitQ를 입력받은 숫자만큼 잡는다.
waitQ = (struct Client*)malloc( sizeof(struct Client)*size);
user[size -1].leave = -1;
................ ( 계속 )
⊙ program에 대한 설명 ( 시뮬레이션 )
간단한 시뮬레이션을 구현한다. 서비스는 요청하는 client에게 서비스를 제공하는 server의 스케쥴링 방식에 따른 성능을 평가할 수 있는 시뮬레이션 프로그램을 작성한다.
·스케쥴링 방식
FCFS : wait하고 있는 client중 먼저 온것부터 service한다.
SJF : wait하고 있는 client중 service할 시간이 가장 작은 것부터 service한다.
#include
#include
#include
#include
struct Client{
int id;
int arrival;
int wait;
int start;
int load;
int leave;
};
struct Server{
int clientID;
int Rworktime;
};
void gotoxy(int x, int y);
// 진행과정을 보여주기위한 함수
void printProcess( int time, int serverID, struct Client waitAry[], int Last, char H[], int Y);
double cal_ave( struct Client Ary[], int S ); // 평균을 계산하는 함수
double cal_stanDev( double mean, struct Client Ary[] , int S); // 표준편차를 계산하는 함수
// 마지막에 계산된 평균과 표준편차들을 출력하기위한 함수
void printScreen( double FCFS_ave, double FCFS_stanDev, double SJF_ave, double SJF_stanDev );
int main()
{
int i, arrival, t, y;
int last, newClient;
int size;
int startClient; // user에 start시간을 넣어줄때 쓰이는 변수
int numCheck;
int min;
int position; // SJF에서 가장 적은 service time을 가지는 손님을 선택할때 쓰는 변수
double ave, stanDev;
double FCFS_ave, FCFS_stanDev;
double SJF_ave, SJF_stanDev;
char how1[] = "FCFS";
char how2[] = "SJF";
FILE *fpFCFS;
FILE *fpSJF;
struct Client *user;
struct Client *waitQ;
struct Server server = { -1, 0 };
printf("\n\t★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★");
printf("\n\n\t program의 설명\n\n");
printf("\t --> service를 요청하는 client에게 service를 제공하는 server의\n");
printf("\t 스케쥴링 방식에 따른 성능을 평가할수 있는 시뮬레이션 프로그램이다.\n\n");
printf("\t 먼저 오는것을 먼처 처리하는 FCFS 방식과\n");
printf("\t 기다리고 있는 것중 가장 짧은 service 시간이 요구되는 SJF방식.\n");
printf("\t 이 두 방법을 시뮬레이션하여 비교한다.\n");
printf("\n\n\t★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★");
printf("\n\n\tservie받을 client의 수를 입력하세요 : ");
scanf("%d",&size);
user = (struct Client*)malloc( sizeof(struct Client)*size); // user와 waitQ를 입력받은 숫자만큼 잡는다.
waitQ = (struct Client*)malloc( sizeof(struct Client)*size);
user[size -1].leave = -1;
................ ( 계속 )
⊙ program에 대한 설명 ( 시뮬레이션 )
간단한 시뮬레이션을 구현한다. 서비스는 요청하는 client에게 서비스를 제공하는 server의 스케쥴링 방식에 따른 성능을 평가할 수 있는 시뮬레이션 프로그램을 작성한다.
·스케쥴링 방식
FCFS : wait하고 있는 client중 먼저 온것부터 service한다.
SJF : wait하고 있는 client중 service할 시간이 가장 작은 것부터 service한다.
소개글