728x90

메모리의 사용

 

우리에게 익숙한 최신의 운영체제는 다양한 프로세스를 동시에 수행합니다.

따라서 중앙 프로세스는 각각의 프로그램들이 작업할 공간을 할당합니다.

이 프로그램들은 각자 할당된 메모리를 다 사용하거나 종료되면 메모리를 반환해야 합니다.

 

 

메모리를 할당함

 

 

그러나 여러가지 이유에서 프로그램이 사용이 끝난 후에도 할당한 메모리를 올바르게 해제하지 않는 경우가 있습니다.

이렇게 계속해서 점유하고 있으면서 전체 메모리가 부족해지는 현상을 메모리 누수(Memory Leak)라고 합니다.

즉 사용하지도 않지만 다른 메모리에 할당할 수도 없는 메모리가 누수된 메모리라고 할 수 있습니다.

 

메모리 누수

 

 

메모리 누수의 원인

 

일반적으로 프로그램이 메모리 누수가 발생하는 원인은 심플합니다.

그러나 근본적인 이유일 때가 많아서 완전한 해결이 어렵습니다.

대표적인 상황으로는,

 

  • 프로그램 자체에 메모리 해제 기능이 없을때 : 아주 작은 임시 프로그램들은 개발과정에서 전혀 메모리관련 문제를 사용하지 않고, 개발자 역시 장기간 사용할 꺼라 생각하지 않아 계속해서 사용하기만 하도록 할 수 있습니다.
  • 참조 문제 : 프로그램이 동작하다 참고하고 있던 객체나 파일이 정상적으로 헤제되지 않는 경우가 발생할 수 있습니다. 특히 자기들끼리 참조하는 순환참조의 경우 무한루프를 돌아 많은 메모리 소모를 발생시킬 수 있습니다.
  • 객체 유지 : 외부 객체를 참조할 때 적절한 부문만 불러오지 않고 큰 메모리를 전부 불러들이면 부적절한 양의 메모리를 차지하게 되는데 이런 상황이 오래되면 적절한 매모리 반환이 일어나지 않습니다.

 

위에서와 같이 대부분의 경우는 잘못된 프로그램 개발로 인해 일어나게 됩니다.

정품 프로그램을 사용하고 한번에 많은 프로그램을 실행하지 않아야 하고 가끔 재부팅을 하면 최소화 할 수 있습니다.

최근 WINDOWS 10 등에서는 8 메가 이상의 RAM을 구매해서 설치하는 것으로 효과를 볼 수 있습니다.

WINDOWS에서는 작업관리자를 열어서 메모리를 확인할 수 있는데 사용시간에 따라서 메모리 사용량이 점점 커진다면 문제를 의심해야 합니다.

 

windows의 작업관리자

 

 

마무리

 

정품 프로그램의 사용과 무리하지 않는 적절하게 실행하면 막을 수 있다고 했습니다.

하지만 컴퓨터를 사용하다보면 보자보자 해도 너무 설치되는 보안프로그램들이 서로 충돌할 때도 있습니다. 

요즘에는 메모리를 확인하거나 정리할 수 있는 많은 프로그램이 있으니 적당히 사용해주어야 합니다.

 

저는 개인적으로 보안프로그램을 악성프로그램의 일종이라고 생각하고 있고, 진짜 악성을 포함하여,

백신등으로는 절대로 막을 수 없으며 오히려 백신이 더 작업환경을 저해하는 원인만 된다고 생각합니다.

중요한 데이터는 백업하고 적절한 주기로 운영체제의 초기화, 재설치를 통해 쾌적한 사용환경을 누리도록 합시다.

반응형

+ Recent posts