V dnešní době se vaše kapesní zařízení modernizují a jsou stále lepší a lepší. Neustále se nám vylepšuje paměť (více, než skutečně potřebujeme). Pokud jste si přečetli náš předchozí článek „Kolik paměti RAM je příliš mnoho paměti RAM?“, dozvíte se, kolik paměti RAM je vlastně potřeba pro bezproblémové fungování vašeho chytrého telefonu a kolik nad její rámec je už jen zbytečně moc.
Možná budete potřebovat upgrade, pokud v dnešní době váš telefon zaostává nebo se zpomaluje. Zamysleli jste se ale někdy nad tím, proč a hlavně jak se to děje? V této rubrice DeCode se dozvíte, jak k tomu dochází. A mnoho dalšího. Čtěte dál!
Proč se náš svět točí kolem paměti RAM?“
Srdcem operačního systému Android je linuxové jádro. Kdykoli spustíte novou aplikaci, vytvoříte proces uvnitř systému Linux. Proces je nyní zodpovědný za všechny různé zdroje, které může jádro přidělit různým aplikacím. Čas procesoru, vstupní a výstupní procesy a paměť RAM jsou považovány za zdroje.
Čas procesoru a vstupní a výstupní procesy jsou většinou považovány za nekonečné zdroje. Pokud máte obsazený procesor a chcete spustit novou úlohu, dostane vaše úloha také kousek tohoto času procesoru. Je jisté, že úloha bude provedena, ale může se zpozdit kvůli přetížení času CPU. Stejně tak může vaše úloha proběhnout o něco rychleji, pokud je procesor méně vytížen.
V případě I/O, stahování velkého souboru, zapisování něčeho do interního úložiště nebo provádění jiných procesů ve stejnou dobu může jejich dokončení zpomalit, ale nakonec k němu dojde.
Paměť RAM je však v zařízení přítomna v pevném množství. Je konečná. Pokud vám dojde paměť RAM, neexistuje žádné kouzlo, které by ji uvolnilo, kdybyste ještě chvíli počkali. Proto systémy Android a Linux potřebovaly systém, který by jim pomohl se s tímto omezením vypořádat.
Jak funguje paměť RAM ve smartphonu?
Kdykoli spustíte v zařízení nějakou aplikaci, spustí se nový proces, který požaduje po jádře Linuxu, že potřebuje (řekněme) „X“ množství paměti RAM jen pro načtení aplikace. Po tomto kroku může aplikace také požádat o další paměť, aby mohla načíst nějaké další soubory nebo stáhnout něco z internetu, a jádro Linuxu jí poskytne potřebné. Takto probíhá základní delegování paměti RAM.
Vaše zařízení má fond dostupné paměti, který se liší od volné paměti. Volná paměť je vlastně paměť dostupná pro spouštění nových aplikací nebo zpracování jiných aplikací bez swapování. V operačním systému s více úlohami je volná paměť špatná věc, protože paměť leží ladem; vždy může pomoci v jednom nebo druhém procesu.
Volná paměť může být například použita pro zlepšení vstupně-výstupních operací souborů, síťových vstupně-výstupních operací pro ukládání do mezipaměti nebo může být poskytnuta jiným programům, které mohou tuto paměť navíc využít. Zároveň je také označena jako volná paměť. Proto ji lze kdykoli přestat používat jako vyrovnávací paměť nebo cache a může ji využít proces.
V zařízení se 4 GB RAM je část paměti využívána hardwarovými ovladači a část je využívána systémem Android. Zbývající dostupná paměť po restartu čerstvého systému bude přibližně 1,7 GB. Při spuštění aplikace se zařízení podívá na dostupnou paměť poskytne nějaké kousky, které použije pro procesy.
Vlastně rozdělí paměť na stránky, jedna stránka má přibližně 4 KB. Tyto stránky může systém podle potřeby delegovat různým procesům. Všechny procesy budou pracovat bez problémů, pokud bude paměti dostatek. Když se však dostupná paměť s rostoucím počtem aplikací zmenšuje, začne to způsobovat určité problémy. V určitém okamžiku nebude k dispozici dostatek paměti pro spuštění nového procesu.
V této fázi mají systémy Linux a Android problém. Aby se s tím vyrovnaly, mohou provést swapování nebo zabít aplikaci a uvolnit tak paměť. Koncept swapování jsme převzali ze serverů a stolních počítačů. Když nemáte dostatek paměti, můžete vzít část aktivní paměti, která je právě v RAM, a zapsat ji na pevný disk. Tímto způsobem uvolníte daný blok/stránku paměti. Později, pokud tuto stránku budete opět potřebovat, ji můžete získat zpět z pevného disku. Android však funguje trochu jinak a paměť na pevný disk neukládá.
Android používá ZRAM („Z“ je v unixové terminologii symbol pro komprimovanou paměť RAM). Swapování ZRAM může zvýšit množství paměti dostupné v systému tím, že komprimuje paměťové stránky a umisťuje je do dynamicky alokované odkládací oblasti paměti. Jakmile je do této komprimované paměti něco zapsáno, nelze k ní přistupovat a stává se z ní něco jako soubor ZIP. Pokud jej chcete použít, musíte jej odkomprimovat a zapsat zpět do hlavní paměti. Tento proces se nazývá swapování ven a swapování zpět. Tomuto nekonečnému cyklu swapování se říká „thrashing“. Android nemá s thrashingem žádný problém, protože když je nasycen, tj. dojde mu místo pro swapování, prostě začne procesy zabíjet.
Z seznamu vybere aplikaci, kterou jste nějakou dobu nepoužívali, a zabije ji. Tím se uvolní místo, které tato aplikace využívala, a nyní je k dispozici místo pro novou aplikaci nebo pro rozšíření stávající aplikace. Všechny aplikace jsou navrženy tak, že když aplikace přejde na pozadí, vždy existuje možnost, že se už nikdy neotevře. Jejich aktuální stav je tedy uložen.
Pokud aplikaci znovu otevřete, znovu se načte. Někdy tento proces není bezproblémový. Pokud jste například hráli hru, nezačne od místa, kde jste skončili, ale může začít od stejné úrovně. Jak dobře se aplikace s touto situací vypořádá, záleží na aplikaci a na osobě, která danou aplikaci napsala. Pokud potřebujete větší paměť, může být zabito více procesů.
Časté načítání vede k hořkému uživatelskému zážitku. Proto je z uživatelského hlediska vhodnější mít více paměti RAM. I když všechny nuance swapování a toho, kdy se swapuje, jsou trochu složitější. Když je však telefon přetížený, určitě dojde ke zničení některých aplikací, aby telefon běžel a nezamrzal. Zabíjení je v podstatě nutné zlo, které si osvojil systém Android. Zůstaňte naladěni na další podobné články, které se k vám dostanou. Šťastné čtení!