In deze tijd worden uw hand-held apparaten steeds beter en beter. We hebben consequent krijgen upgrades in de afdeling geheugen (meer dan we eigenlijk nodig hebben). Als u onze vorige functie leest, ‘Hoeveel RAM is te veel RAM?’, weet u hoeveel RAM eigenlijk nodig is voor uw smartphone om naadloos te werken en verder dan dat, is gewoon overkill.
U zou een upgrade nodig kunnen hebben als in de huidige tijd uw telefoon vertraagt of trager wordt. Maar hebt u zich ooit afgevraagd waarom, en nog belangrijker, hoe dat gebeurt? In deze feature, zullen we DeCode hoe dit gebeurt. En nog veel meer. Lees verder!
Waarom draait onze wereld om RAM?
In het hart van het Android-besturingssysteem bevindt zich een Linux-kernel. Telkens wanneer u een nieuwe app start, maakt u een proces binnen Linux. Een proces is nu verantwoordelijk voor alle verschillende middelen die de kernel zou kunnen toewijzen aan de verschillende apps. CPU-tijd, in- en uitvoerprocessen, en RAM worden allemaal als een hulpbron beschouwd.
CPU-tijd en I/O worden meestal als oneindige hulpbronnen beschouwd. Als je een drukke CPU hebt en je wilt een nieuwe taak uitvoeren, zal je taak ook een stuk van die CPU-tijd krijgen. Het is zeker dat de taak zal worden uitgevoerd, maar het kan worden vertraagd als gevolg van overbelasting van de CPU-tijd. Evenzo kan uw taak iets sneller worden uitgevoerd als de CPU het minder druk heeft.
In het geval van I/O, het downloaden van een groot bestand, het schrijven van iets in de interne opslag of het uitvoeren van andere processen op hetzelfde moment kan hun voltooiing vertragen, maar het zal uiteindelijk gebeuren.
Hoewel, het RAM-geheugen is in een apparaat aanwezig in een vaste hoeveelheid. Het is eindig. Als je zonder RAM komt te zitten, is er geen magie die RAM vrijmaakt als je wat langer wacht. Daarom hadden Android en Linux een systeem nodig om deze beperking aan te pakken.
Hoe werkt RAM in een smartphone?
Wanneer u een app op uw apparaat start, wordt er een nieuw proces gestart dat de Linux-kernel vraagt om (zeg) ‘X’ hoeveelheden RAM alleen al om de applicatie te laden. Daarna kan de app ook om meer geheugen vragen om meer bestanden te laden of om iets van het internet te downloaden en de Linux kernel zal het nodige leveren. Dit is hoe basis delegatie van RAM gebeurt.
Uw apparaat heeft een pool van beschikbaar geheugen, wat anders is dan vrij geheugen. Beschikbaar geheugen is eigenlijk geheugen dat beschikbaar is voor het starten van nieuwe apps of het verwerken van andere apps, zonder swapping. In een multitasking besturingssysteem is vrij geheugen een slechte zaak, omdat het geheugen inactief is; het kan altijd helpen in een of ander proces.
Voorbeeld, vrij geheugen kan worden gebruikt voor het verbeteren van file I/O, netwerk I/O voor caching of kan worden gegeven aan andere programma’s die dat extra geheugen nuttig kunnen maken. Tegelijkertijd wordt het ook gemarkeerd als beschikbaar geheugen. Dus, op elk moment kan het worden gestopt met worden gebruikt als buffer of caching en kan het worden gebruikt door een proces.
In een 4GB RAM-apparaat, wordt een deel van het geheugen gebruikt door hardware drivers, en een deel ervan wordt gebruikt door Android. Het resterende beschikbare geheugen na het opnieuw opstarten van een vers systeem zal ongeveer 1,7 GB zijn. Wanneer een app start, zal het apparaat kijken naar het beschikbare geheugen een aantal brokken te gebruiken voor processen.
Het zal eigenlijk verdelen van het geheugen in pagina’s, een pagina van ongeveer 4 KB. Deze pagina’s kunnen door het systeem worden gedelegeerd aan verschillende processen, als dat nodig is. Alle processen zullen goed werken als er geheugen in overvloed is. Maar wanneer het beschikbare geheugen vermindert naarmate het aantal apps toeneemt, begint dat problemen te geven. Op een gegeven moment zal er niet genoeg beschikbaar geheugen zijn om een nieuw proces te starten.
In dit stadium hebben Linux en Android een probleem. Om dit op te vangen, kunnen ze swappen of een app doden om geheugen vrij te maken. Het concept van swapping kennen we van servers en desktops. Wanneer je niet genoeg geheugen hebt, kun je een deel van het actieve geheugen dat zich momenteel in RAM bevindt, wegschrijven naar een harde schijf. Op die manier maak je dat blok/pagina geheugen vrij. Later, als die pagina weer nodig is, kun je het terughalen van de harde schijf. Android werkt echter iets anders en slaat het geheugen niet op naar een harde schijf.
Android gebruikt ZRAM (‘Z’ in Unix-termen is een symbool voor gecomprimeerd RAM). ZRAM swap kan de hoeveelheid beschikbaar geheugen in het systeem vergroten door geheugenpagina’s te comprimeren en ze in dynamisch toegewezen swap-gebied van het geheugen te plaatsen. Als er eenmaal iets naar dat gecomprimeerde geheugen is geschreven, kun je er niet meer bij en wordt het een beetje zoals een ZIP-bestand. Als je het wilt gebruiken, moet je het uitpakken en terugschrijven naar het hoofdgeheugen. Dit proces is swappen uit en swappen terug in. Deze eeuwigdurende cyclus van swappen wordt ’thrashing’ genoemd. Android heeft geen probleem met thrashing als het verzadigd is, dat wil zeggen geen ruimte meer heeft om te swappen, begint het gewoon processen te doden.
Het kiest een app die je een tijdje niet hebt gebruikt uit de lijst en doodt het. Het maakt de ruimte vrij die de app gebruikte en nu is er ruimte beschikbaar voor een nieuwe app of een bestaande app om uit te breiden. Alle apps zijn zo ontworpen dat wanneer een app naar de achtergrond gaat, er altijd een kans is dat deze nooit meer wordt geopend. Dus wordt hun huidige staat opgeslagen.
Als u de app weer opent, wordt hij opnieuw geladen. Soms is dit proces niet naadloos. Als u bijvoorbeeld een spel aan het spelen was, begint het niet waar u gebleven was, maar begint het misschien vanaf hetzelfde niveau. Hoe goed de app met deze situatie omgaat, hangt af van de app en de persoon die de app heeft geschreven. Als u een groter geheugen nodig hebt, kunnen meerdere processen worden gedood.
Veelvuldig herladen leidt tot een bittere gebruikerservaring. Dat is waarom het hebben van meer RAM de voorkeur verdient vanuit het oogpunt van de gebruiker. Hoewel alle nuances van het wisselen en wanneer het wisselt een beetje gecompliceerder zijn. Maar wanneer je telefoon overbelast is, is het onvermijdelijk om sommige apps te doden om je telefoon draaiende te houden en te voorkomen dat hij bevriest. Doden is in principe een noodzakelijk kwaad, dat is overgenomen door het Android-systeem. Blijf op de hoogte voor meer van dergelijke artikelen die uw kant op komen. Veel leesplezier!