공유 메모리 세그먼트를 분리하지 않으면 어떤 영향이 있습니까?공유 메모리 세그먼트를 분리하지 않은 경우의 영향
다양한 운영 체제에서이 문제를 어떻게 처리합니까?
O.S의 안정성을 손상시킬 수 있습니까?
감사합니다.
공유 메모리 세그먼트를 분리하지 않으면 어떤 영향이 있습니까?공유 메모리 세그먼트를 분리하지 않은 경우의 영향
다양한 운영 체제에서이 문제를 어떻게 처리합니까?
O.S의 안정성을 손상시킬 수 있습니까?
감사합니다.
분리하지 않으면 다른 사람이 메모리 세그먼트를 삭제하지 못하게됩니다. 이는 Windows와 Linux에서 마찬가지입니다. 따라서 메모리 누수가 발생합니다. 그것은 O.S의 안정성을 손상시키지 않을 것이다. 그러나 당신이 그것을 사용하는 것을 끝내면 왜 당신은 분리하고 삭제하고 싶지 않을 것이다?
공유 메모리 세그먼트가 분리되지 않은 경우 커널은 특정 세그먼트 (커널 영역이라고 함)가 사용 중이며 삭제 표시하지 않을 것이라고 계속 생각합니다. 참조 카운팅 메커니즘의 종류는 내부적으로 사용됩니다. 또 다른 문제는 프로세스의 가상 주소 공간이 불필요하게 먹힐 수 있다는 것입니다.
그러나이 메모리 세그먼트가 분리되어 프로세스가 종료되는 순간 자동으로 해제되므로 메모리 누수 (Java 사람들은 말할 수 있습니다.)를 호출 할 수 있는지 확실하지 않습니다.
이것은 전체적으로 OS를 손상시키지 않을 수 있지만 시스템이 예고없이 종료해야 할 수도 있습니다. 메모리가 부족하면 거대한 메모리를 먹는 일부 프로세스입니다 (Linux OOM 킬러 참조). 그러나 이것은 최악의 경우입니다.
답장을 보내 주셔서 감사합니다. Linux (Ubuntu)에서 테스트 해본 결과 프로세스가 종료 될 때 자동으로 해제되지 않습니다. –