Autor
|
Tema: Codigo de asignacion de memoria: Peor Ajuste (Leído 12,547 veces)
|
dato000
Desconectado
Mensajes: 3.034
|
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 #include <iostream> #include <stdio.h> #include <D:\Camilo\Unilibre\Quinto Semestre\Sistemas Operativos\Ejercicios\Primer Corte\particionfija.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("\t\t BIENVENIDO: "); printf("OPCIONES \n\n"); printf("\t 1. PARTICION FIJA \n"); printf("\t 2. SALIDA \n\n"); printf("digite una de las opciones: "); scanf( "%i", &opcion); switch (opcion){ case 1: printf("PARTICION FIJA \n\n"); printf("NO HAY RELOCALIZACION \n\n"); partFija(); break; case 2: printf("adios!!!! buen dia!!!"); getchar(); break; default: printf("ERROR DIGITANDO DATOS, EL PROGRAMA ESTALLARA!! ARRGHHH!!\n\n"); getchar(); break; } getchar(); return EXIT_SUCCESS; }
La libreria de la particion fija que debe entregar el peor ajustevoid partFija();
void partFija(){ int t[5]; int p[5]={20,15,20,10,30}; int contador=30; printf("HOLA!!\n\n"); //IMAGEN DE PARTICIONES printf("\n\n"); printf("PARTICION FIJA MEDIDA LOCALIZACION\n"); printf("------------------- 0\n"); printf("| SO | \n"); printf("------------------- 30 %i\n", contador); for(int i=0; i<5; i++){ contador += p[i]; printf("| p%i | \n", i+1); printf("------------------- %i %i\n", p[i], contador); }
//INGRESO DE TAREAS printf("5 TAREAS MAXIMO \n\n"); for(int i=0; i<5; i++){ printf("TAREA %i: ", i+1); scanf( "%i", &t[i]); } //INGRESO DE TAREAS EN PARTICIONES contador=30; printf("\n\n"); printf("PARTICION FIJA MEDIDA LOCALIZACION\n"); printf("------------------- 0\n"); printf("| SO | \n"); printf("------------------- 30 %i\n", 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 %i\n", 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 %i\n", p[i], contador); } } //PEOR AJUSTE do{ contador=30; fflush(stdin); printf("\n\nQUE 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 LOCALIZACION\n"); printf("------------------- 0\n"); printf("| SO | \n"); printf("------------------- 30 %i\n", 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 %i\n", 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 %i\n", p[i], contador); } } //El programa pregunta si quiere continuar char opc; fflush(stdin); printf("\n\n\nDESEA 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.
|
|
« Última modificación: 15 Marzo 2011, 13:02 pm por dato000 »
|
En línea
|
|
|
|
Akai
Desconectado
Mensajes: 823
|
Parece que falla más el hecho de entender lo que se te plantea que otra cosa. Quizá deberías revisar a fondo la asignación de memoria por peor ajuste. Recalco que lo que parece estar fallando es la algoritmia (planteamiento del problema).
Por otro lado, como pequeño consejo, puede que te sirva el utilizar alguna clase de conjunto de estructuras donde tengas, por ejemplo, donde empieza cada partición libre y cuantos bloques libres ocupa dicha partición.
|
|
|
En línea
|
|
|
|
dato000
Desconectado
Mensajes: 3.034
|
Parece que falla más el hecho de entender lo que se te plantea que otra cosa. Quizá deberías revisar a fondo la asignación de memoria por peor ajuste. Recalco que lo que parece estar fallando es la algoritmia (planteamiento del problema).
Por otro lado, como pequeño consejo, puede que te sirva el utilizar alguna clase de conjunto de estructuras donde tengas, por ejemplo, donde empieza cada partición libre y cuantos bloques libres ocupa dicha partición.
ummm dejando a un lado los mensajes de salida y todos los adornos, todo se reduce a un problemas de arreglos?? ummm cuando mencionas lo de las estructuras, como seria?? no soy muy entendido en struct?? pero practicamente el cuento son con 5 posiciones de particiones, y 5 de tareas... no tienes algun tip de ordenamiento para el caso de peor ajuste??
|
|
|
En línea
|
|
|
|
Akai
Desconectado
Mensajes: 823
|
Básicamente, si quitas lo dicho, "todo" se reduce a un problema de vectores, si.
Sobre lo de las estructuras... Puedes utilizas structs, o no, o las mil opciones que se te puedan ocurrir.
No voy a dar ejemplos porque si los doy, te resuelvo la tarea, y no es mi intención. Que discurras y la resuelvas tu, si.
Creo que el propio "peor ajuste" en su definición y descripción te da ya todos los "tips" para implementarlo. Por ello, te sigo diciendo, revísate la teoría de tu asignatura de Sistemas Operativos.
|
|
|
En línea
|
|
|
|
dato000
Desconectado
Mensajes: 3.034
|
Básicamente, si quitas lo dicho, "todo" se reduce a un problema de vectores, si.
Sobre lo de las estructuras... Puedes utilizas structs, o no, o las mil opciones que se te puedan ocurrir.
No voy a dar ejemplos porque si los doy, te resuelvo la tarea, y no es mi intención. Que discurras y la resuelvas tu, si.
Creo que el propio "peor ajuste" en su definición y descripción te da ya todos los "tips" para implementarlo. Por ello, te sigo diciendo, revísate la teoría de tu asignatura de Sistemas Operativos.
sabia que lo tenias resuelto desde el princpio!! vale listo, le seguire porque pues que más puedo (como he estado haciendo en estos días. Una vez lo tenga vectores me puedes pasar el dato en struct, yo no es para la clase, sino por curisiosidad, ni idea de structs (por lo menos no una muy clara).
|
|
|
En línea
|
|
|
|
Akai
Desconectado
Mensajes: 823
|
Una cosa es que tenga planteado como lo haría si lo tuviese que hacer y otra que lo tenga hecho. Viendo tu problema se me ocurren formas de resolverlo usando esto y aquello, o esto y no aquello, o aquello y no esto, o ni esto ni aquello. (Siendo "esto" y "aquello" cualquier clase de método, tipo de dato, etc etc etc)
Pero siempre desde un punto de vista genérico y no centrado en el lenguaje (Hacerlo al revés ya me ha llevado en muchas ocasiones a perder el tiempo en cosas minúsculas)
Implementarlo ya es otro tema. Es pasar lo que se me ocurre a un lenguaje concreto, C++ en este caso.
Sobre el tema de estructuras, utilicé ese término de forma genérica, un vector, o "arreglo" como lo llamas tu, es una estructura. Creo que miras demasiado como lo harías en C/C++ y no la forma genérica de resolverlo.
Si quieres mirar sobre structs, hay bastantes tutoriales por ahí, o enlaces a libros en este mismo foro. Pero ahora termina lo que estés haciendo y no te marees con cosas nuevas.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Ayuda asignacion de memoria dinámica palabras en c
« 1 2 3 »
Programación C/C++
|
newfag
|
24
|
13,878
|
19 Mayo 2010, 20:42 pm
por Eternal Idol
|
|
|
Asignación de memoria en C
Programación C/C++
|
Akkon
|
3
|
4,144
|
30 Abril 2011, 15:22 pm
por Akkon
|
|
|
Asignacion Dinamica Memoria
Programación C/C++
|
charmedever
|
5
|
3,781
|
21 Octubre 2011, 05:25 am
por charmedever
|
|
|
Problema con asignación de memoria en puntero de caracteres.
Programación C/C++
|
1t4h1s4
|
9
|
5,288
|
13 Febrero 2013, 02:58 am
por 1t4h1s4
|
|
|
Primer, Peor y Mejor ajuste en Java
Java
|
pablcruz
|
1
|
5,187
|
29 Julio 2017, 14:26 pm
por ivancea96
|
|