示例#1
0
void main()
{
	clrscr();
	cout << "Enter the Number of Process : ";
	cin >> n;

	cout << "\n\n1) FCFS   2) SJF   3) SRTF   4) RR\n\n";
	cout << "Enter Your Choice : ";
	cin >> choice;

	cout << "\n";
	int i;
	for(i=0;i<n;i++)
	{
	cout << "Arrival Time & Service Time for Process " << i+1 << " : ";
	tab[i][0]=i+1;
	cin >> tab[i][1];
	cin >> tab[i][2];
	}
	ttt=totaltime();
	switch(choice)
	{
		case '1': fcfs();break;
		case '2': sjf();break;
		case '3': srtf();break;
		case '4': rr();break;
		default : exit(0);
	}

}
示例#2
0
int main()
{
readProcess();
sort();
sjf();
print();
 
return 0;
}
示例#3
0
int main (void )
{
  int valor;

  printf ("Digite um escalonamento: \n\n");
  printf ("1) FCFS \n");
  printf ("2) SJF \n");
  printf ("3) SRTF \n");
  printf ("4) ROUND ROBIN \n");
  printf ("5) MULTINIVEL \n");
  printf ("6) SAIR \n\n");
  scanf("%d", &valor);

  switch ( valor )
  {
     case 1 :
       fcfs();
     break;

     case 2 :
       sjf();;
     break;

     case 3 :
        srtf();;
     break;

     case 4 :
        roundrobin();
     break;

     case 5 :
        multinivel();
     break;

     case 6 :
        printf ("\nFim.\n");
     break;

     default :
       printf ("Valor invalido!\n");
  }

  return 0;
}
int main(int argc, char *argv[])
{
	int choice;

	if (argc != 2)
	{
		fprintf(stderr, "Usage: [%s] + num_process\n", argv[0]);
	}

	while (true)
	{
		menu_show();
		scanf("%d", &choice);

		switch(choice)
		{
			case 1:
				priority_create(atoi(argv[1]));
				priority();
				break;
			case 2:
				fcfs_create(atoi(argv[1]));
				fcfs();
				break;
			case 3:
				sjf_create(atoi(argv[1]));
				sjf();
				break;
			case 0:
				printf("退出程序...\n");
				break;
			default:
				printf("选择错误,请重新选择!\n");
				break;
		}	
		if (choice == 0)
			break;
	}
	return EXIT_SUCCESS;
}
示例#5
0
//início
int main(){
	
//  lê dados das tarefas da entrada padrão
	read_input();
	init();
//  imprime cabeçalho do diagrama
	cabecalho();
//  t = 0
	tempo = 0;
//  enquanto t < tmax
	while ( tempo < tmax ){
		sjf();
//    incrementa o tempo (t++)
		tempo++;

//    incrementa contadores da tarefa corrente (tempo de vida e de quantum)
//  fim enquanto
	}
		printf("\nTempo Medio de vida: %.2f",tempo_medio_vida);
		printf("\nTempo Medio de espera: %.2f",tempo_medio_espera/qtd_Tprocess);
		printf("\nNumero de trocas de contexto: %d\n",numero_troca_contexto);
//  calcula e imprime tempos médios
//fim
}
示例#6
0
int main(int argc, char **argv)
{

	FILE * inputf;
	if (argc == 3)
	{
		verbose = 1;
		inputf = fopen(argv[2], "r");
	}
	else if (argc == 2)
	{
		verbose = 0;
		inputf = fopen(argv[1], "r");
	}

	random_ints = fopen(RANDOM_INTS, "r");
	int pool_sz;
	int a;
	int b;
	int c;
	int io;
	fscanf(inputf, "%d", &pool_sz);
	int p_ind;
	process pool[pool_sz];
	process pool_copy[pool_sz];
	process sorted_pool[pool_sz];
	process sorted_copy[pool_sz];
	process proc;


	int state[pool_sz];

	char * list_output;
	char * process_format = " ( %d %d %d %d )";
	printf("The original input was: %d", pool_sz);
	for (p_ind = 0; p_ind < pool_sz; p_ind ++)
	{
		fscanf(inputf, process_format, &a, &b, &c, &io);
		asprintf(&list_output, process_format, a, b, c, io);
		printf(list_output);
		proc = init_process(p_ind, a, b, c, io);
		pool[p_ind] = proc;	
		sorted_pool[p_ind] = proc;	
		state[p_ind] = UNSTARTED;
	}
	printf("\n");

	qsort(sorted_pool, pool_sz, sizeof(process), process_cmp);
	printf("The (sorted) input is: %d", pool_sz);
	for (p_ind = 0; p_ind < pool_sz; p_ind ++)
	{
		proc = sorted_pool[p_ind];
		asprintf(&list_output, process_format, proc.arrival_time, proc.cpu_burst_gen, proc.cpu_time_left, proc.io_burst_gen);
		printf(list_output);
	}
	printf("\n\n");


	list_output = NULL;
	process_format = NULL;

	memcpy(pool_copy, pool, sizeof(process) * pool_sz);
	memcpy(sorted_copy, sorted_pool, sizeof(process) * pool_sz);
	uni(state, pool_copy, sorted_copy, pool_sz);
	fclose(random_ints);
	random_ints = fopen(RANDOM_INTS, "r");


	int i = 0;
	for (i = 0; i < pool_sz; i ++)
	{
		state[i] = UNSTARTED;
	}	
	memcpy(pool_copy, pool, sizeof(process) * pool_sz);
	fcfs(state, pool_copy, pool_sz);
	fclose(random_ints);
	random_ints = fopen(RANDOM_INTS, "r");

	for (i = 0; i < pool_sz; i ++)
	{
		state[i] = UNSTARTED;
	}	
	memcpy(pool_copy, pool, sizeof(process) * pool_sz);
	sjf(state, pool_copy, pool_sz);
	fclose(random_ints);
	random_ints = fopen(RANDOM_INTS, "r");

	for (i = 0; i < pool_sz; i ++)
	{
		state[i] = UNSTARTED;
	}	
	memcpy(pool_copy, pool, sizeof(process) * pool_sz);
	roundrobin(2, state, pool_copy, pool_sz);

	fclose(random_ints);

	return 0;
}