Android의 가상 RAM이란 무엇이며 주의해야 하는 사항
잡집 / / March 16, 2022
와는 별개로 거대한 카메라 메가픽셀 그리고 높은 재생 빈도 디스플레이, 스마트폰 세계의 가장 큰 트렌드는 버추얼 램인 것 같습니다. 일부는 이를 동적 RAM 확장이라고 하고 다른 일부는 확장 RAM이라고 합니다. 이름에 관계없이 아이디어는 동일하게 유지됩니다. 멀티태스킹을 돕기 위해 사용자가 스토리지의 일부를 RAM으로 사용할 수 있습니다.
이 가이드에서는 Android의 메모리 관리가 작동하는 방식과 가상 RAM의 개념이 어떻게 다른지 논의할 것입니다. Android에서도 가상 RAM이 필요한지 여부를 고려하려고 합니다. 이제 시작하겠습니다.
Android에서 메모리 관리가 작동하는 방식
먼저 Android가 메모리를 관리하는 방법을 이해하는 것이 중요합니다. Android에는 3가지 유형의 메모리가 있습니다. 첫 번째는 RAM이고, 다음은 zRAM, 마지막으로 스토리지입니다. RAM은 모든 앱이 실행되는 기본 메모리 모듈입니다. 그런 다음 예산 장치의 UFS 또는 eMMC와 같은 온보드 스토리지가 있습니다. 마지막으로 zRAM이 있습니다. 기본적으로 zRAM은 RAM 내부의 파티션입니다.
zRAM의 이면에 있는 아이디어는 RAM의 우선 순위가 낮은 데이터가 압축되어 zRAM 내부에 저장된다는 것입니다. RAM은 일반 스토리지보다 하루 종일 빠르기 때문에 RAM의 일부인 zRAM 내부에 압축된 데이터가 있는 것은 압축 및 압축 해제 시간을 계산하더라도 스토리지에서 액세스하는 것보다 여전히 빠릅니다.
이제 Android에서 사용할 수 있는 3가지 유형의 메모리를 설정했으므로 OS가 이 모든 것을 처리하는 방법을 알아보겠습니다. 따라서 Android는 페이징 기술을 사용합니다. 작동 방식은 RAM이 페이지로 나뉘며 각 페이지는 일반적으로 4KB입니다. 해당 페이지가 비어 있거나 활발하게 사용되는지 여부에 관계없이 사용된 RAM과 사용되지 않은 RAM을 각각 표시하기 위해 결합됩니다. 그런 다음 커널의 작업은 사용된 메모리를 여유 메모리로 변환하는 것입니다. 이는 사용된 페이지의 데이터를 저장소로 이동하여 수행합니다.
페이징이란 무엇이며 어떻게 작동합니까?
작동 방식을 이해하기 위해 페이지의 종류를 이해합시다. 페이지를 깨끗한 페이지와 더러운 페이지의 두 가지 유형으로 분류할 수 있습니다. 클린 페이지에는 저장 공간에 수정되지 않은 사본이 저장되어 있습니다. 한편, 더티 페이지에는 스토리지에 저장된 수정된 데이터 사본이 있습니다. 자, 이것은 수정되고 수정되지 않은 것은 무엇입니까? 메모리의 동적 사용이라고 합시다.
수정되지 않은 복사본은 정적 데이터이고 수정된 복사본은 1초마다 변경되는 동적 데이터입니다. Android는 리소스에 동적으로 액세스하지 않기 때문에 필요할 때 깨끗한 페이지를 제거할 수 있습니다. 이는 RAM을 확보하고 더 많이 사용할 수 있도록 하는 데 도움이 됩니다. 너무 기술적으로 들릴 수 있으므로 실제 응용 프로그램을 사용하여 더 쉽게 이해하도록 하겠습니다.
Twitter를 열고 피드를 탐색한 다음 다른 것으로 전환한다고 가정합니다. Twitter는 여전히 RAM에 있습니다. 하지만 한동안 열지 않으면 우선 순위가 낮아집니다. 나중에 새로운 것을 시작하면 Android는 Twitter에서 사용 중인 메모리를 해제해야 합니다. 따라서 값과 데이터를 저장소로 이동하고 여유 공간을 제공합니다. 이것이 트위터를 다시 시작하면 먼저 최대 절전 모드였던 타임라인을 표시한 다음 새로 고침하는 이유입니다. Facebook, Reddit 또는 계산기나 메모와 같은 유사한 앱도 마찬가지입니다. 이러한 앱은 데이터 사본이 저장소 내부에 정적으로 저장되기 때문에 Clean 페이지를 사용합니다.
이제 더러운 페이지의 경우 Spotify 또는 모든 음악 플레이어를 고려하십시오. 플레이어 내부에서 음악을 시작한 다음 앱을 열지 않고도 백그라운드에서 계속 실행합니다. 그러나 시스템은 메모리를 동적으로 사용하기 때문에 시스템을 닫을 수 없습니다. 결과적으로 Android는 더 많은 여유 RAM이 필요할 때 앱을 압축하고 zRAM으로 이동합니다.
가상 RAM이란 무엇입니까?
이제 Android가 메모리를 관리하는 방법을 알았으므로 가상 RAM 기능이 어디에서 제공되는지 궁금해해야 합니다. zRAM도 RAM의 일부라고 말한 것을 기억하십니까? 가상 RAM이 작동하는 방식은 스토리지 공간에 스왑 파티션을 만들고 이를 추가 zRAM으로 사용하는 것입니다.
zRAM은 RAM에만 저장되기 때문에 압축하고 저장할 수 있는 페이지 수에는 제한이 있습니다. 스왑 파티션을 사용하면 저장 공간을 추가 zRAM으로 사용하여 앱을 압축하고 이동하는 동시에 실제 RAM에서 사용할 수 있는 공간을 만들 수 있습니다.
이 기능이 새로운 기능입니까?
이 모든 것이 새로운 것입니까? 글쎄, 별로. Linux는 처음부터 스왑 파티션을 사용해 왔습니다. Android의 경우 사용자 지정 커널 사용자는 SD 카드를 사용하여 메모리 관리를 개선하기 위해 추가 스왑 파티션을 만들어 왔습니다.
따라서 브랜드 제조업체는 Android 스킨 내부에 구운 동일한 기능을 제공하고 있습니다. 그러나 이 기능이 매우 유용하다면 왜 Android 소스 코드의 일부가 아니었을까요?
가상 RAM이 좋은지 나쁜지
답은 가상 RAM 자체의 매우 기본적인 작동에 있습니다. 이 기능을 사용하면 최대 절전 모드 앱을 압축하고 저장소로 이동하여 기기에서 더 많은 앱을 실행할 수 있지만 득보다 실이 더 많습니다. 스왑 파티션은 기본적으로 활성 앱을 저장하기 때문에 읽기와 쓰기가 더 중요합니다.
이것은 기존 스토리지에서 잘 작동하지만 플래시 메모리는 읽기 및 쓰기 수가 제한되어 있습니다. 따라서 SWAP 또는 가상 RAM을 사용하면 기술적으로 장치 저장소의 수명이 단축됩니다.
이것은 또한 잘 강조됩니다 안드로이드 개발자 페이지. "안드로이드에서는 다른 Linux 구현에서처럼 스왑 공간에 스토리지가 사용되지 않습니다. 이 메모리가 마모되고 저장 매체의 수명이 단축됩니다." 이것의 또 다른 예는 새로운 Apple M1입니다. 맥북. 이러한 시스템은 Apple의 SSD에서 스왑 파티션을 사용하는데, 이에 대해 사용자는 상당히 불만을 토로하고 있습니다.
가상 RAM이 중요하며 사용해야 합니까?
기본적으로 멀티태스킹을 정의하는 방법에 따라 다릅니다. 2~3개의 활성 앱 사이를 저글링하는 경우 가상 RAM이 도움이 됩니다. 그러나 5-6개의 활성 앱 간에 계속 전환하면 앱이 계속 이동하기 때문에 가상 RAM은 아무 작업도 수행하지 않습니다.
기본적으로 가상 RAM 기능을 사용하면 앱을 실행할 수 있는 더 많은 RAM 공간을 사용할 수 있습니다. 그러나 스토리지 비용이 발생합니다. 장치를 2년 이상 계속 사용하려는 경우 가상 RAM을 사용하는 것이 의미가 없을 수 있다고 생각합니다.