I denne tidsalder bliver dine håndholdte enheder opgraderet og bliver bedre og bedre. Vi har konsekvent fået opgraderinger i hukommelsesafdelingen (mere end vi egentlig har brug for). Hvis du læser vores tidligere artikel “Hvor meget RAM er for meget RAM?”, vil du faktisk vide, hvor meget RAM der faktisk er nødvendigt for, at din smartphone kan fungere problemfrit, og at mere end det bare er overkill.
Du har måske brug for en opgradering, hvis din telefon i nutidens tidsalder halter eller bliver langsommere. Men har du nogensinde spekuleret på hvorfor, og endnu vigtigere, hvordan det sker? I denne funktion vil vi DeCode, hvordan dette sker. Og meget mere. Læs videre!
Hvorfor vores verden drejer sig om RAM?
Hjertet i Android-operativsystemet er en Linux-kernel. Hver gang du starter en ny app, har du oprettet en proces inde i Linux. En proces er nu ansvarlig for alle de forskellige ressourcer, som kernen kan allokere til de forskellige apps. CPU-tid, Input- og Output-processer og RAM betragtes alle som en ressource.
CPU-tid og I/O betragtes for det meste som uendelige ressourcer. Hvis du har en optaget CPU, og du ønsker at køre en ny opgave, vil din opgave også få en del af denne CPU-tid. Det er sikkert, at opgaven vil blive udført, men den kan blive forsinket på grund af overbelastning af CPU-tid. På samme måde vil din opgave måske ske lidt hurtigere, hvis CPU’en har mindre travlt.
Hvis det gælder I/O, kan downloading af en stor fil, skrivning af noget på det interne lager eller udførelse af andre processer på samme tid forsinke deres færdiggørelse, men det vil ske til sidst.
Hvorom alting er, er RAM’en til stede i en enhed i en fast mængde. Det er endeligt. Hvis du løber tør for RAM, er der ingen magi, der vil frigøre RAM, hvis du venter lidt længere tid. Derfor havde Android og Linux brug for et system, der kunne hjælpe dem med at tackle denne begrænsning.
Hvordan fungerer RAM i en smartphone?
Når du starter en app på din enhed, startes en ny proces, der kræver af Linux-kernen, at den har brug for (lad os sige) “X” mængder RAM, bare for at indlæse programmet. Derefter kan appen også bede om mere hukommelse for at indlæse flere filer eller hente noget fra internettet, og Linux-kernen vil give den nødvendige hukommelse. Det er sådan, den grundlæggende uddelegering af RAM sker.
Din enhed har en pulje af tilgængelig hukommelse, som er forskellig fra ledig hukommelse. Fri hukommelse er faktisk hukommelse, der er tilgængelig til at starte nye programmer eller behandle andre programmer uden swapping. I et multitasking-operativsystem er ledig hukommelse en dårlig ting, da hukommelsen sidder ubenyttet; den kan altid hjælpe i den ene eller den anden proces.
For eksempel kan ledig hukommelse bruges til at forbedre fil I/O, netværks I/O til caching eller kan gives til andre programmer, der kan gøre den ekstra hukommelse nyttig. Samtidig er den også markeret som ledig hukommelse. Derfor kan den til enhver tid stoppes med at blive brugt som buffer eller caching og kan udnyttes af en proces.
I en 4 GB RAM-enhed bruges noget af hukommelsen af hardwaredrivere, og noget af den bruges af Android. Den resterende tilgængelige hukommelse efter genstart af et nyt system vil være ca. 1,7 GB. Når en app startes, vil enheden se på den tilgængelige hukommelse give nogle klumper til brug for processer.
Den vil faktisk opdele hukommelsen i sider, en side på ca. 4 KB. Disse sider kan uddelegeres af systemet til forskellige processer efter behov. Alle processerne vil fungere fint, hvis der er hukommelse i rigelige mængder. Men når den tilgængelige hukommelse reduceres i takt med, at antallet af programmer stiger, begynder det at give nogle problemer. På et tidspunkt vil der ikke være nok ledig hukommelse til at starte en ny proces.
På dette tidspunkt har Linux og Android et problem. For at klare dette kan de enten lave swapping eller dræbe en app for at frigøre hukommelse. Vi har fået begrebet swapping fra servere og desktops. Når du ikke har nok hukommelse, kan du tage noget af den aktive hukommelse, der i øjeblikket er i RAM, og skrive det ned på en harddisk. På den måde frigør man den pågældende blok/side af hukommelse. Senere, hvis der er brug for den side igen, kan du hente den tilbage fra harddisken. Android fungerer dog lidt anderledes og gemmer ikke hukommelsen på en harddisk.
Android bruger ZRAM (“Z” i Unix-termer er et symbol for komprimeret RAM). ZRAM swap kan øge mængden af tilgængelig hukommelse i systemet ved at komprimere hukommelsessider og placere dem i et dynamisk allokeret swap-område i hukommelsen. Når der først er skrevet noget til denne komprimerede hukommelse, kan man ikke få adgang til den, og den bliver lidt som en ZIP-fil. Hvis man ønsker at bruge den, skal man afkomprimere den og skrive den tilbage til hovedhukommelsen. Denne proces er swapping out og swapping back in. Denne evigtvarende cyklus af swapping kaldes “thrashing”. Android har ikke noget problem med thrashing, for når den er mættet, dvs. når den løber tør for plads til swapping, begynder den bare at dræbe processer.
Den vælger en app, som du ikke har brugt i et stykke tid, fra listen og dræber den. Det frigør den plads, som den app brugte, og nu er der plads til rådighed for en ny app eller en eksisterende app, der skal udvides. Alle apps er designet på en sådan måde, at når en app går i baggrunden, er der altid en chance for, at den måske aldrig åbnes igen. Så deres nuværende tilstand gemmes.
Hvis du åbner appen igen, genindlæses den. Nogle gange er denne proces ikke problemfri. Hvis du f.eks. spillede et spil, starter den ikke fra der, hvor du slap, men starter måske fra samme niveau. Hvor godt appen klarer denne situation, afhænger af appen og af den person, der har skrevet den pågældende app. Hvis du har brug for en større hukommelse, kan flere processer blive dræbt.
Frekvent genindlæsning fører til en bitter brugeroplevelse. Derfor er det at have mere RAM at foretrække set fra et brugersynspunkt. Selv om alle nuancerne i swapping og hvornår det swapes er lidt mere kompliceret. Men når din telefon er overbelastet, er den nødt til at dræbe nogle apps for at holde telefonen kørende og forhindre den i at fryse. Aflivning er grundlæggende et nødvendigt onde, som er vedtaget af Android-systemet. Hold øje med flere sådanne artikler på vej til dig. God læsning!