heuristicas.c
int pl(int task_id, int Xmestre, int Ymestre){    
	int proc_address;
	int canditate_proc = -1;
	int pesoTmp;
	int peso=999999;
	int x,y;
	
	for(int i=0; i<MAX_CLUSTER_SLAVES; i++){
		proc_address = get_proc_address(i);
		x = proc_address >> 8;
		y = proc_address & 0xFF;

		if (get_proc_free_pages(proc_address) > 0){
			pesoTmp = calcularPeso(Xmestre, Ymestre, x, y);
            		if(pesoTmp < peso){
               			peso = pesoTmp;
				canditate_proc = proc_address;
            		}
		}
	}	
	if (canditate_proc != -1){
		puts("Mappeam. tarefa "), puts(itoa(task_id)); puts(" maped no proc "); puts(itoh(canditate_proc)); puts("\n");
		return canditate_proc;
	}
	putsv("WARNING: no resources available in cluster to map task ", task_id);
	return -1;			
}
// heuristica PL - usa a mesma logica de FF, mapeia no primeiro livre. Porem, esta otimiza o peso de comunicacao nos canais
heuristica PL - usa a mesma logica de FF, mapeia no primeiro livre. Porem, esta otimiza o peso de comunicacao nos canais
heuristica PL - usa a mesma logica de FF mapeia no primeiro livre . Porem esta otimiza o peso de comunicacao nos canais
int pl(int task_id, int Xmestre, int Ymestre){    
	int proc_address;
	int canditate_proc = -1;
	int pesoTmp;
	int peso=999999;
	int x,y;
	for(int i=0; i<MAX_CLUSTER_SLAVES; i++){
		proc_address = get_proc_address(i);
		x = proc_address >> 8;
		y = proc_address & 0xFF;
		if (get_proc_free_pages(proc_address) > 0){
			pesoTmp = calcularPeso(Xmestre, Ymestre, x, y);
            		if(pesoTmp < peso){
               			peso = pesoTmp;
				canditate_proc = proc_address;
            		}
		}
	}	
	if (canditate_proc != -1){
		puts("Mappeam. tarefa "), puts(itoa(task_id)); puts(" maped no proc "); puts(itoh(canditate_proc)); puts("\n");
		return canditate_proc;
	}
	putsv("WARNING: no resources available in cluster to map task ", task_id);
	return -1;			
}
int pl ( int task_id , int Xmestre , int Ymestre ) { int proc_address ; int canditate_proc = -1 ; int pesoTmp ; int peso = 999999 ; int x , y ; for ( int i = 0 ; i < MAX_CLUSTER_SLAVES ; i ++ ) { proc_address = get_proc_address ( i ) ; x = proc_address >> 8 ; y = proc_address & 0xFF ; if ( get_proc_free_pages ( proc_address ) > 0 ) { pesoTmp = calcularPeso ( Xmestre , Ymestre , x , y ) ; if ( pesoTmp < peso ) { peso = pesoTmp ; canditate_proc = proc_address ; } } } if ( canditate_proc != -1 ) { puts ( " " ) , puts ( itoa ( task_id ) ) ; puts ( " " ) ; puts ( itoh ( canditate_proc ) ) ; puts ( " \n " ) ; return canditate_proc ; } putsv ( " " , task_id ) ; return -1 ; }
heuristica PL - usa a mesma logica de FF, mapeia no primeiro livre.
heuristica PL - usa a mesma logica de FF mapeia no primeiro livre .