Programación General > C/C++

 Codigo de asignacion de memoria: Peor Ajuste

(1/1)

radioactivo:
Buenas las tengan.

Se que no hacen "trabajos ni tareas" pero estoy atorado con un ejercicio, y la verdad es que se que es un detalle, uno con el que no puedo dar, por favor, denme una mano.

Se trata sobre un código con arreglos en el que debo entregar unos cuadros al usuario en donde se reasignen las tareas y se entregen las particiones con una fragmentación de memoria más alta, comprobando el concepto de "Peor Ajuste" al código, en particiones fijas.

Les agradezco, esto es lo que he adelantado:

El principal

--- Código: Text --- #include <iostream>#include <stdio.h>#include <D:CamiloUnilibreQuinto SemestreSistemas OperativosEjerciciosPrimer Corteparticionfija.h> /*    MANUEL CAMILO CEPEDA MARTINEZ 066091006    ERIKA CALDAS CODIGO 066062003    PARTICION FIJA PEOR AJUSTE - VERSION 1.0    SISTEMAS OPERATIVOS    UNIVERSIDAD LIBRE DE COLOMBIA*/ using namespace std; int main(){            int opcion;                            //MENU DE BIENVENIDA          printf("tt BIENVENIDO: ");            printf("OPCIONES nn");         printf("t 1.    PARTICION FIJA  n");        printf("t 2.    SALIDA   nn");        printf("digite una de las opciones: ");        scanf( "%i", &opcion);                switch (opcion){                        case 1:                printf("PARTICION FIJA nn");                printf("NO HAY RELOCALIZACION nn");                partFija();                break;                        case 2:                printf("adios!!!! buen dia!!!");                getchar();                break;                            default:                printf("ERROR DIGITANDO DATOS, EL PROGRAMA ESTALLARA!! ARRGHHH!!nn");                getchar();                break;        }                getchar();          return EXIT_SUCCESS; }  
La libreria de la particion fija que debe entregar el peor ajuste

--- Código: Text --- void partFija(); void partFija(){          int t[5];         int p[5]={20,15,20,10,30};         int contador=30;         printf("HOLA!!nn");                  //IMAGEN DE PARTICIONES         printf("nn");         printf("PARTICION FIJA      MEDIDA       LOCALIZACIONn");         printf("-------------------   0n");         printf("|        SO       | n");         printf("-------------------   30             %in", contador);         for(int i=0; i<5; i++){            contador += p[i];                printf("|        p%i       | n", i+1);            printf("-------------------   %i             %in", p[i], contador);         }                    //INGRESO DE TAREAS         printf("5 TAREAS MAXIMO nn");         for(int i=0; i<5; i++){            printf("TAREA %i:  ", i+1); scanf( "%i", &t[i]);         }                           //INGRESO DE TAREAS EN PARTICIONES         contador=30;         printf("nn");         printf("PARTICION FIJA      MEDIDA       LOCALIZACIONn");         printf("-------------------   0n");         printf("|        SO       | n");         printf("-------------------   30             %in", contador);         for(int i=0; i<5; i++){               if(t[i]==0){                contador += p[i];                printf("|        p%i       | n", i+1);                printf("|   ***********   | n");                printf("|     LIBRE: %i    | n", p[i]);                printf("-------------------   %i             %in", p[i], contador);            }            else{                contador += p[i];                    printf("|        p%i       | n", i+1);                printf("|   ***********   | n");                printf("|     Frag: %i    | n", p[i]-t[i]);                printf("-------------------   %i             %in", p[i], contador);            }         }                 //PEOR AJUSTE                                             do{                contador=30;                fflush(stdin);                printf("nnQUE TAREA DESEA ELIMINAR??  n (Digite solo el numero de la tarea)  ");                int borrar; scanf( "%i", &borrar);                if(borrar == 1)                    t[0]=0;                 else if(borrar == 2)                    t[1]=0;                else if(borrar == 3)                    t[2]=0;                else if(borrar == 4)                    t[3]=0;                else if(borrar == 5)                    t[4]=0;                                                    printf("PARTICION FIJA      MEDIDA       LOCALIZACIONn");                                     printf("-------------------   0n");                printf("|        SO       | n");                printf("-------------------   30             %in", contador);                                for(int i=0; i<5; i++){                                              //IMAGEN DE PARTICIONES FIJAS CON TAREA RETIRADA                         if(t[i]==0){                            contador += p[i];                            printf("|        p%i       | n", i+1);                            printf("|   ***********   | n");                            printf("|     LIBRE: %i    | n", p[i]);                            printf("-------------------   %i             %in", p[i], contador);                        }                        else{                                contador += p[i];                            printf("|        p%i       | n", i+1);                            printf("|   ***********   | n");                            printf("|     Frag: %i    | n", p[i]-t[i]);                            printf("-------------------   %i             %in", p[i], contador);                        }                                     }                                 //El programa pregunta si quiere continuar                 char opc;                 fflush(stdin);                 printf("nnnDESEA RETIRAR OTRA TAREA?? (S/N) ");                  scanf("%c", &opc);                 if(opc=='n' or opc=='N')                    break;                          }while(true);         getchar();                }  
La verdad es que no doy con el truco para reasignar las tareas de manera indicicada.

Navegación

[0] Índice de Mensajes

Ir a la versión completa