Det är vanligtvis förstått att Android är ett operativsystem med mycket utrymme för anpassad konfiguration. Detta beror delvis på användningen av Linux -kärnan i dess kärna. Idag kommer vi att diskutera konfigurationen av en av de lägsta delarna av Androids kärna: dess uppgiftsplanare. Med rätt uppgiftsplaneringskonfiguration kan du öka prestandan på Android. Fortsätt läsa för att upptäcka exakt hur du kan ändra din gadget för största prestanda.
Men vad är just en kärnans uppgiftsplanare?
Ett systems uppgiftsplanerare ansvarar för att distribuera CPU: er bland ett stort antal löpningsuppgifter. Det gör det genom att tillhandahålla varje uppgift någon körtid på CPU såväl som att byta ut den med en till med specifika tidsintervall. I allmänhet finns det två typer av uppgiftsplanering: förebyggande arrangemang samt kooperativ schemaläggning.
I förebyggande schemaläggning beslutar kärnan när man ska föregripa (= byta) en löpande uppgift. Det kan göra det på nästan vilken typ av tid som helst, baserat på komplexa arrangemangsalgoritmer. Däremot, i kooperativ schemaläggning, ansvarar varje uppgift för att meddela kärnan när den inte kräver CPU längre, såväl som den kan bytas ut. I det här fallet är kärnan endast ansvarig för att bestämma den allra bästa kandidaten för att ordna och sätta den på CPU.
Se även: Android -myter såväl som fakta: Busting 10 Metropolitan Legends
Uppgiftsordning på Android
Android går ovanpå Linux, som är en förebyggande kärna. Uppgiftsplanen utlöses med ett hårt kodat, konstant intervall, det arrangerande intervallet. Detta är vanligtvis varje 10 millisekunder på Android -enheter. När schemaläggaren körs bestämmer den om den löpande uppgiften ska föregås eller inte, liksom vilken uppgift som väntar på att köra ska ta sin plats på CPU. Sedan version 2.6.23 använder Linux -kärnan en extremt avancerad uppgiftsplan, den helt rättvisa schemaläggaren (CFS). CFS försöker ge varje uppgift en hel del körtid på CPU baserat på ett antal faktorer, inklusive uppgiftsvikt och prioritet. Denna schemaläggares algoritm är ganska komplicerad att förstå. Det är därför det finns ett ganska litet antal kärndesigners som bidrar till dess utveckling.
Finjustera CFS -schemaläggaren
Förutsättning
Root-åtkomst
En terminalemulatorapp
Trots sin komplexitet erbjuder CFS Scheduler några konfigurationsalternativ. Att finjustera dessa val kan extremt påverka systemprestanda. Traditionellt används SYSCTL -kommandoradsverktyget för att undersöka såväl som att ändra kärnparametrar vid körning, inklusive schemaläggningsparametrar. Vi kommer att använda detta verktyg i vår guide eftersom det kommer förinstallerat på de flesta androider där ute. Men först kräver vi att göra en liten introduktion till det:
Hur man använder sysctl
Listningsparametrar såväl som deras nuvarande värden
För att lista alla erbjudna kärnparametrar med sina tilldelade värden, ge kommandot att följa en terminal -app:
sysctl -a
För att bara få den uppgiftsplaneringsrelaterade parametrarna kan vi ge kommandot att följa:
sysctl -a | grep “scheman”
Detta ger en uppfyllande med utdata på vår exempelanordning:
Parametrarlistan är ganska stor. Vi kommer bara att diskutera några av dessa parametrar nedan, som är de viktigaste.
Ändra en parameter
Vi kan modifiera en parameter som använder ett kommando i typen sysctl -w [parameter] = värde där parametern är kärnparameternamnet såväl som värdet är det nya värdet. Till exempel:
sysctl -w kernel.sched_scaling_enable = 1
Läs nedan för fler exempel på SYSCTL -användning. Tänk på att ändringar inte klarar det genom en omstart. Du kan använda ett init.d -skript för att tillämpa alla typer av nödvändiga ändringar vid starttid. Slutligen, se till att du kör sysctl -kommandon med rotprivilegier. Du kan få root -privilegier i en terminal -app genom att tillhandahålla kommandot att följa:
su
Grundläggande uppgiftsschemanparametrar
Missa inte: Past samt framtiden för Linux -kärnan på mobila enheter
kernel.sched_min_granularity_ns
Processorbundna uppgifter garanteras att köras under denna minsta tid innan de föregås. En uppgift är tänkt på som processorbunden när tiden det tar till totalt beror endast på processorhastigheten. Till exempel är en uppgift som väntar på ett paket att dyka upp med webben inte en processorbunden uppgift. Generellt sett kommer att öka detta värde att öka systemets genomströmning. Å andra sidan kan värden såväl höga minska gadgetens lyhördhet. Denna parameter tar värden i nanosekunder. För att ställa in den till 4000000 nanosekunder (4 millisekunder) kan vi till exempel tillhandahålla kommandot:
sysctl -w kernel.sched_min_granularity_ns = 4000000
Enligt officiell Linux -kärndokumentation är detta den centrala CFS -schemaläggaren som är inställbar.
kernel.sched_latency_ns
Alla uppgifter i CFS: s körkö garanteras åtminstone när de är inom denna period.null