응용 프로그램이 닫힐 때 RAM에서 제거됩니까?

응용 프로그램이 닫힐 때 RAM에서 제거됩니까?

나는 프로그램을 열고 닫았다가 다시 열 때 두 번째로 열릴 때 훨씬 더 빨리 열리는 것 같다는 것을 발견했습니다.

두 번째로 이미 RAM에 있기 때문입니까?

다르게 말하면, 일단 프로그램이 닫히면 해당 메모리 공간은 사용되지 않은 것으로 표시됩니다. 기존 메모리 공간이 사용되기 전에 해당 프로그램을 다시 열면 디스크에서 프로그램 전체를 다시 로드해야 합니까?

답변1

일반적으로 응용 프로그램이 닫히거나 종료되면 해당 응용 프로그램이 차지한 저장소가 즉시 해제되고 응용 프로그램을 다시 시작하면 새로 디스크에서 "새" 저장소로 로드됩니다.

이에 대한 가장 큰 예외는 일부 "스마트폰"에서 발생합니다. 응용 프로그램을 "종료"할 때 실제로는 즉시 종료되지 않고 가까운 시일 내에 다시 시작할 수 있다는 가정 하에 일정 기간 동안 단순히 "백그라운드" 상태로 유지되는 경우가 있습니다. 미래. 하지만 일정 기간 동안 애플리케이션을 사용하지 않으면 결국 OS에 의해 종료되고 스토리지가 회수됩니다. (내가 아는 한 이 방식은 일반 Microsoft나 Apple 컴퓨터에서는 사용되지 않고 휴대폰에서만 사용됩니다.)

좀 더 기술적인 또 다른 예외는 프로그램이 종료되고 저장 공간이 해제되더라도 프로그램의 디스크 이미지(또는 적어도 일부)가 여전히 디스크 "캐시"에 존재할 수 있으며 더 쉽게 액세스할 수 있다는 것입니다. 처음보다 두 번째. 이것이 두 번째로 더 빠른 시작으로 인식되는 이유일 수 있습니다.

하지만 그렇게 빠른 시작이 가능한 또 다른 더 간단한 이유가 있습니다. 응용 프로그램을 종료한 다음 즉시 다시 시작하면 저장소에 프로그램에 정확히 맞는 편리한 "구멍"이 있습니다. 다른 작업을 실행한 후 나중에 시작하면 OS는 사용 가능한 저장소를 찾는 데 어려움을 겪어야 하며 이는 종종 시간이 많이 걸리는 프로세스인 RAM의 다른 데이터를 "페이지 아웃"해야 함을 의미합니다.

답변2

프로그램이 닫힐 때보다 프로그램이 열려 있을 때 더 이상 사용되거나 사용되지 않습니다. 기억은사용된유용한 정보가 포함되어 있다면. 여기에는 프로그램이 실행되는 동안과 프로그램이 더 이상 실행되지 않을 때 유용한 정보가 포함되어 있습니다.

실제로 대부분의 운영 체제는 프로그램이 실행 중인지 전혀 고려하지 않습니다. 프로그램이 실행 중이라는 이유만으로 액세스되지 않는 항목을 메모리에 보관할 이유가 무엇입니까? 그리고 그 순간 실행 중인 프로그램이 그것을 사용하고 있지 않다는 이유만으로 메모리에서 무언가를 버리는 이유는 무엇입니까?

운영 체제는 데이터에 액세스하여 이동합니다. 물론, 결코 접근할 수 없는 데이터를 담고 있는 메모리는 무료로 간주됩니다.

관련 정보