Acceso a la ubicación de la memoria para verificar datos


1

Estoy buscando información específica y espero que alguien pueda señalarme como lo he estado buscando durante algún tiempo. En relación con la memoria caché, la siguiente lista es un conjunto de instrucciones que supongo. Bueno, sean cuales sean, ¿cómo los revisas para ver si hay datos en ellos?

Estoy dispuesto a leer y aprender pero no puedo encontrar información relevante. Y sé que los mediadores son bastante exigentes con las publicaciones vagas, pero todas mis búsquedas obtuvieron información en tonos azules, etc.

0x00000200 
0x00000000 
0x00000200 
0x00000000 
0x00000200

Sé que son representaciones hexadecimales de una ubicación de memoria, pero si un programa fuera a acceder a él, ¿qué sucedería exactamente en el código?

Gracias,

Risho

Respuestas:


0

Linux, en caso de que hable de eso, está usando una MMU para implementar la memoria virtual. Esto significa que, si un proceso utiliza estos números como dirección de memoria, no necesariamente tienen que ser las direcciones "reales" dentro de la memoria. Hay como una capa de abstracción que traduce las direcciones que los procesos ven en las direcciones físicas en sus bancos de memoria.

Por cierto Creo que generalmente no sucede que un proceso obtenga el número 0x0 como una dirección de memoria. ¿Es posible que estos no sean números absolutos sino compensaciones de otra cosa?

Ese es un buen artículo sobre el tema: http://en.wikipedia.org/wiki/Virtual_memory

¿De dónde sacaste los números?


Por cierto esto también significa que si realmente desea obtener los datos que un proceso en particular ve bajo esta dirección de memoria. La forma más segura y sencilla es agregar un método a este proceso que hace que lea esa dirección de memoria y la envíe. En lugar de leerlo desde otro proceso.
replay

O lo comienzas en GDB. Luego, puede hacerlo manualmente dentro del cli de GDB sin tener que implementar nada en el proceso.
replay

También puede usar GDB para adjuntar a un proceso en ejecución e imprimir estas direcciones como gdb -p <pid> y luego en la consola que acaba de print 0x00000200. De esa manera, puede leer la memoria desde un proceso en ejecución, fuera de la perspectiva de los procesos.
replay

Lo siento por añadir tantos comentarios. Me estoy emocionando demasiado cuando hablo de memoria :)
replay

Aquí está la primicia: estoy tratando de aprender cómo funciona la memoria, el caché y todo eso, y un compañero de trabajo me sugirió que escribiera un simulador de caché y, dado que soy un experto, ¿por qué no? Dio un archivo de texto con 64K de estos hexes, que a veces parecen repetirse.
Risho
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.