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
Ir a la versión completa