elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Asignacion de memoria virtual
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Asignacion de memoria virtual  (Leído 1,894 veces)
dokomaster

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Asignacion de memoria virtual
« en: 10 Septiembre 2016, 02:28 am »

debo hacer un programa que a partir de un vector de caracteres asignado con new
simule el comportamiento del sistema operativo cuando las funciones antes mencionadas son invocadas. Para ello debe pensar que:
El vector creado es la memoria ram.
Las funciones malloc, realloc, free y memset deberan ser implementadas pensando en el
punto anterior.
Los punteros void que usan algunas funciones, seran simplemente una estructura (struct), que almacenara el nombre del puntero, donde comienza en el vector “memoria ram” y que tamaño tiene.
Debe salvaguardar la integridad de la memoria, por lo que cada nueva asignacion de
esta (malloc,realloc) debe verificar que la nueva memoria asignada esta libre (no ha sido asignada previamente) y que existe espacio suficiente en la memoria.
Las funciones a ejecutar en este “sistema de memoria” seran entregadas al programa a
traves de un archivo de texto, obviamente yo haré el archivo de texto asique es lo de menos, mas que nada necesito ayuda el los puntos entregados.

La primera linea contiene el numero de elementos del vector “memoria ram”.
A partir de ahi tendra una serie de funciones codificadas con un numero diferente en
cada linea con el siguiente formato:
• Para malloc el codigo es 1, seguido de un string con el nombre del puntero y un
numero que indicar´a size. Ej: asignar 8 bytes = 1 ptr 8.
• Para realloc el codigo es 2, seguido de un string que es el nombre del puntero que
debe ser modificado y un numero que es el nuevo size. Ej: reasignar a ptr 10 bytes
= 2 ptr 10.
• Para free el codigo es 3, seguido de un string que es el puntero a eliminar. Ej:
liberar ptr = 3 ptr.
• Para memset el codigo es 4, seguido de un string que indica el puntero, un numero
que indica el value y otro n´umero que indica el num. Ej: setear a 0 la memoria
asignada por ptr las siguientes 2 posiciones = 4 ptr 0 2.
• Una linea que comienza con 0, finaliza el programa.
Un ejemplo de este archivo de entrada serıa:
100
1 ptr1 10
1 ptr2 10
1 ptr3 10
2 ptr1 50
3 ptr2
4 ptr1 0 10
0

aca tengo las funciones ya definidas:

   
Código
  1. void malloc(string ptr, int size)
  2. {
  3. ...
  4.  
  5. }
  6. void realloc(tring ptr, int size)
  7. {
  8. ...
  9.  
  10. }
  11. void free(string ptr)
  12. {
  13. ...
  14.  
  15. }
  16. void memset(sting ptr, int value, int n)
  17. {
  18. ...
  19.  
  20. }
  21. void print_ram()
  22. {
  23. for(int i=0; i<memtotal; i++)
  24. {
  25. cout<<(int)memoriaram[i]<<" ";
  26.  
  27. }
  28. cout << endl;
  29. exit(0);
  30. }
  31. }

obviamente con los switch case mas arriba, solo puse las funciones ya definidas para que me ayuden o iluminen un poco como usarlas. si necesitan mas codigo de las variables globales y locales me lo piden ya que las tengo puestas mas arriba del codigo.

MOD EDIT: Etiquetas GeSHi.


« Última modificación: 10 Septiembre 2016, 04:27 am por MCKSys Argentina » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Asignación de memoria en C
Programación C/C++
Akkon 3 4,145 Último mensaje 30 Abril 2011, 15:22 pm
por Akkon
Asignacion Dinamica Memoria
Programación C/C++
charmedever 5 3,783 Último mensaje 21 Octubre 2011, 05:25 am
por charmedever
asignacion dinamica de memoria
Programación C/C++
d91 2 2,506 Último mensaje 1 Junio 2014, 05:09 am
por Drewermerc
Depurar la asignacion de memoria.
Programación C/C++
AlbertoBSD 1 1,703 Último mensaje 19 Mayo 2016, 00:28 am
por Stakewinner00
Problema con asignación de memoria
Hardware
aangrymasther 6 3,573 Último mensaje 16 Septiembre 2021, 20:49 pm
por el-brujo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines