Exemplo n.º 1
0
/*sets the recent_cpu for thread t */
void
thread_set_recent_cpu (struct thread * t) 
{
  int return_val = real_multiply(real_divide(2*load_avg , (2*load_avg + f) ) , t->recent_cpu) +( t->nice * f );	

  t->recent_cpu = return_val;
}
Exemplo n.º 2
0
void operator_real() {
    double result;
    char in[USHRT_MAX];
    printf("Entre com o 1º valor: ");
    scanf("%s", in);
    printf("\n");
    result = atof(in);
    int keep_going = 1;
    while (keep_going) {
        switch (menu_real()) {
            case 1:
                // Add
                printf("Entre com o próximo valor: ");
                scanf("%s", in);
                printf("\n");
                real_add(&result, atof(in));
                break;
            case 2:
                // Subtract
                printf("Entre com o próximo valor: ");
                scanf("%s", in);
                printf("\n");
                real_subtract(&result, atof(in));
                break;
            case 3:
                // Multiply
                printf("Entre com o próximo valor: ");
                scanf("%s", in);
                printf("\n");
                real_multiply(&result, atof(in));
                break;
            case 4:
                // Power
                while (1) {
                    printf("Entre com o próximo valor: ");
                    scanf("%s", in);
                    printf("\n");
                    double original = result;
                    real_power(&result, atof(in));
                    if (isnan(result)) {
                        result = original;
                        printf("Valor inválido!\n\n");
                    } else
                        break;
                }
                break;
            case 5:
                // Divide
                while (1) {
                    printf("Entre com o próximo valor: ");
                    scanf("%s", in);
                    printf("\n");
                    if (atof(in) == 0)
                        printf("Valor inválido!\n\n");
                    else
                        break;
                }
                real_divide(&result, atof(in));
                break;
            default:
                keep_going = 0;
                break;
        }
        printf("Resultado: %lg\n\n", result);
    }
}