În această epocă, dispozitivele portabile se modernizează și devin din ce în ce mai bune. Am primit în mod constant upgrade-uri în departamentul de memorie (mai mult decât avem nevoie de fapt). Dacă ați citit articolul nostru anterior, „Cât de multă memorie RAM este prea multă memorie RAM?”, veți ști de fapt de câtă memorie RAM este de fapt necesară pentru ca smartphone-ul dvs. să funcționeze fără probleme și, dincolo de aceasta, este pur și simplu exagerat.
S-ar putea să aveți nevoie de un upgrade dacă, în epoca actuală, telefonul dvs. are întârzieri sau încetinește. Dar v-ați întrebat vreodată de ce și, mai ales, cum se întâmplă asta? În această caracteristică, vom DeCode cum se întâmplă acest lucru. Și multe altele. Citiți mai departe!
De ce lumea noastră se învârte în jurul memoriei RAM?
În centrul sistemului de operare Android se află un nucleu Linux. De fiecare dată când porniți o nouă aplicație, ați creat un proces în interiorul Linux. Un proces este acum responsabil pentru toate resursele diferite pe care nucleul le-ar putea aloca diferitelor aplicații. Timpul CPU, procesele de intrare și ieșire și memoria RAM sunt toate considerate resurse.
Timp CPU și I/O sunt considerate în cea mai mare parte ca fiind resurse infinite. Dacă aveți un CPU ocupat și doriți să rulați o nouă sarcină, sarcina dvs. va primi, de asemenea, o felie din acel timp de CPU. Este sigur că sarcina va fi executată, dar s-ar putea să fie întârziată din cauza supraîncărcării timpului CPU. În mod similar, sarcina dvs. s-ar putea să se desfășoare puțin mai repede dacă CPU este mai puțin ocupat.
În cazul I/O, descărcarea unui fișier mare, scrierea a ceva în memoria internă sau efectuarea oricărui alt proces în același timp ar putea încetini finalizarea lor, dar se va întâmpla în cele din urmă.
Cu toate acestea, memoria RAM este prezentă într-un dispozitiv într-o cantitate fixă. Ea este finită. Dacă rămâi fără RAM nu există nicio magie care să elibereze RAM dacă mai aștepți puțin. Prin urmare, Android și Linux aveau nevoie de un sistem care să le ajute să facă față acestei limitări.
Cum funcționează memoria RAM într-un smartphone?
De fiecare dată când lansați o aplicație pe dispozitiv, se lansează un nou proces care cere nucleului Linux că are nevoie de (să zicem) „X” cantități de RAM doar pentru a încărca aplicația. Ulterior, aplicația ar putea cere și mai multă memorie pentru a încărca alte fișiere sau pentru a descărca ceva de pe internet, iar nucleul Linux va furniza cele necesare. Acesta este modul în care are loc delegarea de bază a memoriei RAM.
Dispozitivul dvs. are o rezervă de memorie disponibilă, care este diferită de memoria liberă. Memoria disponibilă este de fapt memoria disponibilă pentru a porni noi aplicații sau pentru a procesa alte aplicații, fără swapping. Într-un sistem de operare multitasking, memoria liberă este un lucru rău, deoarece memoria stă degeaba; ea poate oricând să ajute într-un proces sau altul.
De exemplu, memoria liberă poate fi folosită pentru a îmbunătăți I/O de fișiere, I/O de rețea pentru caching sau poate fi acordată altor programe care pot face utilă acea memorie suplimentară. În același timp, ea este marcată și ca memorie disponibilă. Prin urmare, în orice moment poate înceta să mai fie folosită ca buffer sau caching și poate fi utilizată de un proces.
Într-un dispozitiv cu 4GB de memorie RAM, o parte din memorie este utilizată de driverele hardware, iar o parte din ea este utilizată de Android. Memoria disponibilă rămasă după repornirea unui sistem proaspăt va fi de aproximativ 1,7 GB. Atunci când o aplicație se lansează, dispozitivul se va uita la memoria disponibilă va oferi câteva bucăți pe care să le folosească pentru procese.
De fapt, acesta va împărți memoria în pagini, o pagină de aproximativ 4 KB. Aceste pagini pot fi delegate de sistem către diferite procese, în funcție de necesități. Toate procesele vor funcționa bine dacă există memorie din abundență. Dar atunci când memoria disponibilă se reduce pe măsură ce crește numărul de aplicații, începe să apară unele probleme. La un moment dat, nu va exista suficientă memorie disponibilă pentru a începe un nou proces.
În această etapă, Linux și Android au o problemă. Pentru a face față, ele pot face swapping sau pot ucide o aplicație pentru a elibera memorie. Conceptul de swapping îl preluăm de la servere și desktopuri. Atunci când nu aveți suficientă memorie, puteți lua o parte din memoria activă care se află în prezent în RAM și o puteți scrie pe un hard disk. În acest fel, eliberați acel bloc/pagină de memorie. Mai târziu, dacă acea pagină este din nou necesară, o puteți recupera de pe hard disk. Cu toate acestea, Android funcționează puțin diferit și nu stochează memoria pe un hard disk.
Android folosește ZRAM („Z” în termeni Unix este un simbol pentru memoria RAM comprimată). ZRAM swap poate crește cantitatea de memorie disponibilă în sistem prin comprimarea paginilor de memorie și plasarea lor în zona de swap alocată dinamic din memorie. Odată ce ceva este scris în acea memorie comprimată, nu mai poate fi accesat și devine oarecum ca un fișier ZIP. Dacă doriți să îl utilizați, trebuie să îl decomprimați și să îl scrieți înapoi în memoria principală. Acest proces se numește swapping out și swapping back in. Acest ciclu nesfârșit de swapping se numește „thrashing”. Android nu are nicio problemă cu thrashing-ul, deoarece atunci când este saturat, adică nu mai are spațiu pentru swapping, începe pur și simplu să ucidă procesele.
Va alege din listă o aplicație pe care nu ați mai folosit-o de ceva timp și o ucide. Eliberează spațiul pe care îl folosea acea aplicație și acum spațiul este disponibil pentru ca o nouă aplicație sau o aplicație existentă să se extindă. Toate aplicațiile sunt concepute în așa fel încât, atunci când o aplicație intră în fundal, există întotdeauna o șansă ca aceasta să nu se mai deschidă niciodată. Astfel, starea lor curentă este salvată.
Dacă deschideți din nou aplicația, aceasta se reîncarcă. Uneori, acest proces nu este fără cusur. De exemplu, dacă jucați un joc, acesta nu va începe de unde l-ați lăsat, ci ar putea începe de la același nivel. Modul în care aplicația face față acestei situații depinde de aplicație și de persoana care a scris aplicația respectivă. Dacă aveți nevoie de o memorie mai mare, mai multe procese pot fi omorâte.
Reîncărcarea frecventă duce la o experiență de utilizare amară. De aceea, a avea mai multă memorie RAM este de preferat din punctul de vedere al utilizatorului. Deși toate nuanțele legate de swapping și când se face swap sunt un pic mai complicate. Dar atunci când telefonul este supraîncărcat, este inevitabil să ucidă unele aplicații pentru a menține telefonul în funcțiune și a-l împiedica să înghețe. Uciderea este, practic, un rău necesar, care este adoptat de sistemul Android. Rămâneți pe recepție pentru mai multe articole de acest gen care urmează să vă apară. Lectură plăcută!