Que é a xestión da memoria?

A xestión da memoria é unha forma de xestión de recursos, referíndose especificamente á xestión da memoria do ordenador, ou RAM. O núcleo do problema é xestionar a memoria do sistema de asignación cando sexa necesario e a súa liberación cando xa non sexa necesaria. Nos ordenadores modernos, a xestión da memoria tamén implica xestionar o sistema de direccionamento virtual para cada proceso en execución. Dependendo da linguaxe de programación, a xestión da memoria pode ser manual, automática ou ambas.

Que fai a xestión da memoria?

Cada ordenador ten unha oferta limitada de memoria que debe ser compartida en todos os procesos en execución. A xestión da memoria garante que este recurso limitado se libere cando xa non sexa necesario. Moitos idiomas máis antigos, como o C céntranse na xestión manual da memoria. Isto significa que o desenvolvedor da aplicación ten que asignar especificamente recursos para os valores que deben almacenarse na memoria. Unha vez que estas variables xa non son necesarias, o programador tamén ten que liberar a memoria de novo.

Un dos outros factores da xestión manual da memoria é a necesidade de inicializar as variables e borrar os datos antes de liberar a memoria. Por exemplo, se asigna memoria a unha variable, asígnaselle un enderezo de memoria. Non se realizan máis accións, polo que este enderezo de memoria pode conter valores do seu uso anterior que nunca se borraron. Actuar sobre os datos na memoria non inicializada pode ter resultados imprevisibles, que poden implicar respostas lixo e fallos do programa. Aínda que intentes poñer datos na memoria, se non enche todo o espazo asignado á variable, o espazo que non utilizaches pode conter datos non inicializados. Para evitar isto, é importante inicializar as variables ao xestionar manualmente a memoria.

Consello: a inicialización dunha variable é o proceso de establecer unha variable cun valor inicial coñecido, normalmente borralo.

As linguaxes máis modernas, como Python, adoitan utilizar a xestión automática da memoria. Isto executa automaticamente todos os procedementos de inicialización e recollida de lixo en segundo plano. Isto reduce a complexidade do desenvolvemento, pero pode afectar un pouco o rendemento e dá un control directo un pouco menos ao programador.

Problemas coa xestión da memoria

Hai algunhas formas nas que desordenar a xestión da memoria pode causar problemas potencialmente graves. Usar memoria non inicializada, por exemplo, pode provocar un comportamento indefinido. Pola contra, non borrar a memoria antes de liberala pode filtrar datos á seguinte aplicación que intente utilizar esa sección de memoria.

Unha vez que xa non se necesita unha localización de memoria, debería liberarse. Isto permítelle ao ordenador reasignalo a outro software segundo sexa necesario. Se non limpa a memoria innecesaria despois de si mesmo, denomínase fuga de memoria. Este non é necesariamente un gran problema nos programas de curta duración, xa que unha vez que remate o proceso, liberarase a memoria. Pero para o software de longa duración, isto pode acabar consumindo cada vez máis memoria do sistema, ata que o ordenador se esgota, polo que normalmente o software falla.

É importante asegurarse de que os datos que está almacenando nunha variable encaixan na memoria asignada a esa variable. Se tes unha variable deseñada para albergar tres caracteres e tentas escribir nela vinte caracteres, isto é un desbordamento do búfer. Os desbordamentos do búfer poden afectar os enderezos de memoria adxacentes, provocando a corrupción da memoria.

Os problemas de xestión da memoria dan lugar a un comportamento non desexado. Isto toma principalmente a forma de fallos ou erros. No peor dos casos, con todo, pode producir vulnerabilidades de execución de código. Se o comportamento non desexado é previsible, pode ser posible proporcionar unha entrada específica que faga que o programa execute código malicioso. Polo tanto, unha boa xestión da memoria é importante para desenvolver código seguro.

Memoria virtual

Un dos factores ocultos da xestión da memoria é o uso da memoria virtual. A memoria virtual é xestionada polo sistema operativo en lugar da aplicación, o que significa que os desenvolvedores realmente non poden afectala. En lugar de asignarlles enderezos de memoria física reais, a cada proceso asígnaselle o seu propio espazo de enderezos de memoria único. O sistema operativo converte entón o enderezo virtual nun enderezo físico sempre que necesite acceder á memoria.

Unha das principais vantaxes do uso da memoria virtual é que segmenta o espazo de enderezos de memoria entre procesos. Isto impide que un proceso poida ler a memoria doutro. Aínda que xeralmente non é un problema para o software lexítimo, isto axuda a protexerse contra software malicioso e software malicioso que infecta ou rouba datos doutros programas. Tamén axuda a evitar que os desbordamentos do búfer afecten a diferentes procesos.

Como beneficio adicional, o uso de enderezos de memoria virtual permite que o sistema operativo axuste a localización física dos datos que se almacenan segundo sexa necesario. Isto xeralmente úsase para transferir memoria que raramente se usa a unha páxina ou intercambiar ficheiros nunha unidade de almacenamento cando os recursos de memoria están esgotados. Isto incorre en un impacto no rendemento cando se necesitan eses enderezos de memoria virtual, xa que o almacenamento é máis lento que a RAM real, pero tamén evita fallos do sistema ou das aplicacións, que normalmente se prefiren.

Conclusión

A xestión da memoria é o proceso de xestión do recurso limitado da RAM do sistema. No software, agora adoita realizarse automaticamente, con todo, algunhas linguaxes de programación permiten ou requiren a xestión manual da memoria. A xestión incorrecta da memoria pode levar a unha gran variedade de problemas de corrupción da memoria e, potencialmente, a vulnerabilidades de execución de código. O sistema operativo tamén realiza algunha xestión da memoria en forma de enderezos virtuais. Isto permítelle segregar a memoria de cada proceso, unha característica de seguridade útil. Tamén permite que o sistema operativo axuste a localización física dos datos sen afectar o proceso real.


Que é SMPS?

Que é SMPS?

Aprende o que é SMPS e o significado das diferentes clasificacións de eficiencia antes de escoller un SMPS para o teu ordenador.

Que é a seguridade baseada no illamento?

Que é a seguridade baseada no illamento?

Imos afondar nun tema cada vez máis importante no mundo da ciberseguridade: a seguridade baseada no illamento. Este enfoque para

Como usar o clic automático para Chromebook

Como usar o clic automático para Chromebook

Hoxe imos afondar nunha ferramenta que pode automatizar tarefas de clic repetitivos no teu Chromebook: o Clicker automático. Esta ferramenta pode aforrar tempo e

Roomba detén, pégase e dá a volta - Solución

Roomba detén, pégase e dá a volta - Solución

Resolve un problema no que o teu robot aspirador Roomba se detén, se pega e segue xirando.

Por que o meu Chromebook non se acende

Por que o meu Chromebook non se acende

Obtén respostas á pregunta Por que non se acende o meu Chromebook? Nesta guía útil para usuarios de Chromebook.

Como cambiar a configuración gráfica en Steam Deck

Como cambiar a configuración gráfica en Steam Deck

O Steam Deck ofrece unha experiencia de xogo robusta e versátil ao teu alcance. Non obstante, para optimizar o teu xogo e garantir o mellor posible

Como cambiar a cara do reloxo nun Fitbit Versa 4

Como cambiar a cara do reloxo nun Fitbit Versa 4

Cambia a esfera do teu Fitbit Versa 4 para darlle ao teu reloxo un aspecto diferente todos os días de forma gratuíta. Mira o rápido e sinxelo que é.

Como denunciar estafas de phishing a Google

Como denunciar estafas de phishing a Google

Aprende a denunciar a un estafador a Google para evitar que estafe a outros con esta guía.

Como eliminar unha GPU do PC con Windows en 2023

Como eliminar unha GPU do PC con Windows en 2023

Necesitas eliminar a GPU do teu PC? Únete a min mentres explico como eliminar unha GPU do teu PC nesta guía paso a paso.

Que é o Shoulder Surf?

Que é o Shoulder Surf?

O hombro surf é unha clase de ataque de enxeñería social. Implica que un atacante recompila información mirando a túa pantalla.