Ebben a korban a kézi eszközök egyre jobbak és jobbak lesznek. Folyamatosan kapunk frissítéseket a memória részlegben (többet, mint amennyire valójában szükségünk van). Ha elolvassa korábbi cikkünket: “Mennyi RAM a túl sok RAM?”, akkor valójában tudni fogja, hogy valójában mennyi RAM szükséges ahhoz, hogy az okostelefonja zökkenőmentesen működjön, és azon túl már csak túlzás.”
Elképzelhető, hogy szüksége van egy frissítésre, ha a mai korban a telefonja lemarad vagy lelassul. De elgondolkodott már azon, hogy miért, és ami még fontosabb, hogyan történik ez? Ebben a funkcióban DeCode-ozzuk, hogyan történik ez. És még sok minden mást is. Olvasson tovább!
Miért forog a világunk a RAM körül?
Az Android operációs rendszer középpontjában egy Linux kernel áll. Valahányszor elindítasz egy új alkalmazást, létrehozol egy folyamatot a Linuxon belül. Egy folyamat mostantól felelős az összes különböző erőforrásért, amelyet a kernel esetleg kioszt a különböző alkalmazásoknak. A CPU-idő, a be- és kimeneti folyamatok és a RAM mind erőforrásnak számítanak.
A CPU-időt és az I/O-t többnyire végtelen erőforrásnak tekintik. Ha van egy foglalt CPU, és egy új feladatot szeretne futtatni, akkor a feladat is kap egy szeletet ebből a CPU-időből. Az biztos, hogy a feladat elvégzésre kerül, de a CPU-idő túlterhelése miatt késhet. Hasonlóképpen, a feladatod egy kicsit gyorsabban megtörténhet, ha a CPU kevésbé foglalt.
Az I/O esetében egy nagy fájl letöltése, valaminek a belső tárolóba való írása vagy bármilyen más folyamat egyidejű végrehajtása lassíthatja a befejezésüket, de végül megtörténik.
A RAM azonban fix mennyiségben van jelen egy eszközben. Ez véges. Ha elfogy a RAM, nincs olyan varázslat, ami felszabadítja a RAM-ot, ha vársz még egy kicsit. Ezért az Androidnak és a Linuxnak szüksége volt egy olyan rendszerre, amely segít kezelni ezt a korlátot.
Hogyan működik a RAM egy okostelefonban?
Amikor elindítasz egy alkalmazást a készülékeden, egy új folyamat indul, amely azt kéri a Linux kerneltől, hogy (mondjuk) “X” mennyiségű RAM-ra van szüksége csak az alkalmazás betöltéséhez. Ezt követően az alkalmazás további memóriát is kérhet, hogy további fájlokat töltsön be, vagy letöltsön valamit az internetről, és a Linux kernel biztosítja a szükségeset. Így történik a RAM alapvető delegálása.
Az eszközöd rendelkezik a rendelkezésre álló memóriával, ami különbözik a szabad memóriától. A szabad memória tulajdonképpen az új alkalmazások indításához vagy más alkalmazások feldolgozásához rendelkezésre álló memória, swapolás nélkül. Egy többfeladatos operációs rendszerben a szabad memória rossz dolog, mivel a memória üresen ül; mindig segíthet valamelyik folyamatban.
A szabad memória például felhasználható a fájl I/O, a hálózati I/O javítására a gyorsítótárazásra, vagy átadható más programoknak, amelyek hasznosítani tudják ezt a plusz memóriát. Ugyanakkor szabad memóriaként is jelölve van. Ezért bármikor leállítható, hogy pufferként vagy gyorsítótárként használják, és egy folyamat felhasználhatja.
Egy 4 GB RAM-os eszközön a memória egy részét a hardveres meghajtók használják, egy részét pedig az Android. Egy friss rendszer újraindítása után a fennmaradó rendelkezésre álló memória körülbelül 1,7 GB lesz. Amikor egy alkalmazás elindul, a készülék megnézi a rendelkezésre álló memóriát, és néhány darabot biztosít a folyamatok számára.
Ténylegesen oldalakra osztja fel a memóriát, egy oldal kb. 4 KB. Ezeket az oldalakat a rendszer szükség szerint delegálhatja a különböző folyamatoknak. Minden folyamat jól fog működni, ha van memória bőségesen. De amikor a rendelkezésre álló memória csökken az alkalmazások számának növekedésével, az elkezd problémákat okozni. Egy bizonyos ponton már nem lesz elég szabad memória egy új folyamat elindításához.
Ebben a szakaszban a Linux és az Android problémával küzd. Hogy megbirkózzanak ezzel, vagy swapolást végeznek, vagy megölnek egy alkalmazást, hogy felszabadítsák a memóriát. A swapping fogalmát a szerverekről és az asztali számítógépekről kaptuk. Ha nincs elég memória, akkor az éppen a RAM-ban lévő aktív memória egy részét kivehetjük, és leírhatjuk a merevlemezre. Ily módon felszabadítja az adott memóriablokkot/oldalat. Később, ha újra szükség van arra az oldalra, visszaszerezheti a merevlemezről. Az Android azonban egy kicsit másképp működik, és nem merevlemezre tárolja a memóriát.
Az Android ZRAM-ot használ (“Z” a Unix kifejezésben a tömörített RAM szimbóluma). A ZRAM swap növelheti a rendszerben rendelkezésre álló memória mennyiségét azáltal, hogy a memóriaoldalakat tömöríti és a memória dinamikusan kiosztott swap területére helyezi. Ha egyszer valamit beleírunk ebbe a tömörített memóriába, nem tudunk hozzáférni, és az egy kicsit olyan lesz, mint egy ZIP-fájl. Ha használni szeretné, ki kell tömöríteni, és vissza kell írni a főmemóriába. Ez a folyamat a swapping out és swapping back in. Ezt az örökké tartó cserélgetési ciklust “thrashing”-nek nevezzük. Az Androidnak nincs problémája a thrashinggel, mivel amikor telítődik, azaz elfogy a swapoláshoz szükséges hely, egyszerűen elkezdi megölni a folyamatokat.
Kiválaszt egy alkalmazást a listából, amelyet már egy ideje nem használt, és megöli. Ez felszabadítja a helyet, amit az az alkalmazás használt, és most egy új alkalmazásnak vagy egy meglévő alkalmazás bővítéséhez rendelkezésre áll a hely. Minden alkalmazás úgy van megtervezve, hogy amikor egy alkalmazás a háttérbe kerül, mindig van rá esély, hogy soha többé nem nyílik meg. Tehát az aktuális állapotuk el van mentve.
Ha újra megnyitja az alkalmazást, az újra betöltődik. Néha ez a folyamat nem zökkenőmentes. Ha például egy játékkal játszottál, akkor nem onnan indul, ahol abbahagytad, hanem lehet, hogy ugyanarról a szintről indul. Az, hogy az alkalmazás mennyire jól kezeli ezt a helyzetet, az alkalmazástól és az alkalmazást író személytől függ. Ha nagyobb memóriára van szüksége, több folyamatot is le lehet ölni.
A gyakori újratöltés keserű felhasználói élményhez vezet. Ezért a nagyobb RAM a felhasználó szempontjából előnyösebb. Bár a swapping minden árnyalata és a swapolás időpontja kicsit bonyolultabb. De ha a telefonod túlterhelt, akkor biztosan megöl néhány alkalmazást, hogy fenntartsa a telefonodat, és ne fagyjon le. A gyilkolás alapvetően egy szükséges rossz, amit az Android rendszer elfogadott. Maradjon velünk további ilyen cikkekért, amelyek az Ön útját járják. Kellemes olvasást!