El manejo de memoria

1/16
Recursos

Aportes 12

Preguntas 1

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Reg铆strate o inicia sesi贸n para participar.

esto va a estar buenisimo

La presentaci贸n del video la pueden encontrar aqu铆 馃槂

Cuando hablemos del manejo de memoria en las computadoras, debemos tener en cuenta estos dos componentes:

  • CPU: Realiza todas aquellas actividades logica, matematicas y de control. En otras palabras, es el cerebro de nuestra computadora
  • RAM: Es el lugar donde se almacena todos los datos que esten relacionado con nuestro programa, desde el codigo que se va a ejecutar hasta las variables a utilizar a lo largo de la ejecucion

Estos dos componentes se comunicar谩n entre si de manera constante. La RAM almacena la informaci贸n a ejecutar y el CPU es quien lee esa informaci贸n y la ejecuta

Segmentacion de la memoria

La RAM tiene una tarea mucho m谩s especifica, que es la memoria de segmentacion. Nuestro sistema operativo lo que hace es gestionar los recursos en nuestra computadora, y cuando comienza nuestro programa a ejecutarse, el sistema operativo crea un espacio en la memoria para que pueda ejecutar dicho programa

Secciones en la Segmentacion de la memoria:

  • Codigo ejecutable: Donde se almacenan las instrucciones del programa
  • Literales no ejecutables: Las variables que no cambian en el transcurso de todo el programa, son almacenadas en esta seccion.
//Ejemplo 1
cout << "Hola mundo";

//Ejemplo 2
char dorime[6] = 'Dorime';
cout << dorime;

  • Variables declaradas. En esta seccion se encuentran los datos estaticos. Aqu铆, las variables declaradas (tipo entero, caracter, cadena de texto fijos) van a reservar su espacio en esta seccion. Esto se debe a que nuestro compilador crea un espacio de memoria donde podemos almacenar variables fijas y con un tama帽o definido
  • Memoria Dinamica: Aca podemos encontrar la memoria Heap y la memoria en pila
    • Heap: Se almacena toda la memoria dinamica y es controlado por el programador.
    • memory Stack: Es gestionado por el compilador, el cual mantiene la informacion de memoria de donde se llamo la funcion y los datos que se van almacenando dentro del stack

no se nada de c++, estoy estudiandoo js, apenas se de POO.
pero, me dio curiosidad ver como funciona todo en c++, asi que. Veremos que sucede ajaj

Acerca del Desbordamiento de Datos鈥
Un desbordamiento de b煤fer (buffer overflow o buffer overrun) es un error de software que se produce cuando un programa no controla adecuadamente la cantidad de datos que se copian sobre un 谩rea de memoria reservada.

Si la cantidad es superior a la capacidad preasignada, los bytes sobrantes se almacenan en zonas de memoria adyacentes, sobrescribiendo su contenido original, y que probablemente pertenec铆an a datos o c贸digo almacenados en memoria. Esto constituye un fallo de programaci贸n.

Pueden revisar m谩s en Wikipedia Desbordamiento de bufer 馃憖

Muy contento de seguir aprendiendo en este maravilloso camino a convertirme en programador!!

Dejo el link del proyecto del github de la profesora para lo que tengan errores o quieran analizar el codigo:

Enlace

asta que veo que alguien explica bien lo que son punteros

En la edicion se quedo la diapositiva de manejo de memoria punteros.
No se ven la memoria stack, heap o static en la diapositiva. 馃槂

Muy buena introducci贸n!

Memory overflow ocurre cuando el Heap y el Stack colisionan (respecto a las direcciones de memoria).