מתזמן המשימות של Tweak Kernel כדי להגביר את הביצועים באנדרואיד [חלק 1]

מתזמן המשימות של Tweak Kernel כדי להגביר את הביצועים באנדרואיד [חלק 1]

May 10, 2023 Digital Electronics 0

מובן כי אנדרואיד היא מערכת הפעלה עם הרבה מקום לתצורה מותאמת אישית. זה בחלקו בגלל השימוש בגרעין לינוקס בבסיסו. כיום אנו הולכים לדון בתצורה של אחד החלקים הנמוכים ביותר של גרעין אנדרואיד: מתזמן המשימות שלו. עם תצורת מתזמן המשימות הנכונה, אתה יכול להגביר את הביצועים באנדרואיד. המשיכו לקרוא כדי לגלות בדיוק כיצד תוכלו לשנות את הגאדג’ט שלכם לביצועים הגדולים ביותר.

אבל מה בדיוק מתזמן המשימות של גרעין?

מתזמן המשימות של המערכת אחראי להפצת מעבדים בין מספר גדול של משימות ריצה. זה עושה זאת על ידי מתן כל משימה זמן ריצה במעבד, כמו גם להחליף אותה עם אחת נוספת בפרקי זמן ספציפיים. באופן כללי, ישנם שני סוגים של תזמון משימות: סידור מקדים כמו גם תזמון שיתופי.

בתזמון מקדים, הגרעין מחליט מתי להקדים (= להחליף) משימת ריצה. זה יכול לעשות זאת כמעט בכל סוג של זמן, המבוסס על אלגוריתמים מסדרים מורכבים. לעומת זאת, בתזמון שיתופי, כל משימה אחראית על כך שהוא מודיע על הגרעין כאשר הוא אינו דורש את ה- CPU יותר, כמו גם לכן ניתן להחליף אותו. במקרה זה, הגרעין אחראי רק לקביעת המועמד הטוב ביותר לסידור כמו גם להעמיד אותו על המעבד.

ראו גם: מיתוסים של אנדרואיד כמו גם עובדות: להפיץ 10 אגדות מטרופוליטן

סידור משימות באנדרואיד

אנדרואיד פועל על גבי לינוקס, שהוא גרעין מקדים. מתזמן המשימות מופעל במרווח קבוע מקודד, מתמיד, מרווח הסידור. זה בדרך כלל כל 10 אלפיות השנייה במכשירי אנדרואיד. כאשר המתזמן פועל, הוא מחליט אם יש להקדים את משימת הריצה או לא, כמו גם איזו משימה מאלו הממתינים לרוץ צריכה לקחת את מיקומה במעבד. מאז גרסה 2.6.23, גרעין לינוקס מנצל מתזמן משימות מתקדם במיוחד, המתזמן ההוגן לחלוטין (CFS). CFS מנסה לספק לכל משימה כמות לא מבוטלת של זמן ריצה ב- CPU על בסיס מספר גורמים, כולל משקל המשימה כמו גם עדיפות. האלגוריתם של מתזמן זה מורכב למדי להבנה. זו הסיבה שיש מספר קטן למדי של מעצבי גרעינים התורמים להתפתחותה.

לצבוט את מתזמן ה- CFS

תנאים מוקדמים

גישה לשורש

אפליקציית אמולטור מסוף

למרות המורכבות שלה, CFS Scheduler מציע כמה אפשרויות תצורה. ציבוט בחירות אלה עשוי להשפיע מאוד על ביצועי המערכת. באופן מסורתי, כלי שורת הפקודה SYSCTL משמש לבדיקה כמו גם לשנות פרמטרים של גרעינים בזמן ריצה, כולל פרמטרים של מתזמן. אנו הולכים להשתמש בכלי זה במדריך שלנו מכיוון שהוא מתקין מראש ברוב האנדרואידים שם בחוץ. עם זאת, ראשית, אנו דרישה להכיר מעט את זה:

כיצד להשתמש ב- SYSCTL

פרמטרים רישום כמו גם הערכים הנוכחיים שלהם
כדי לרשום את כל פרמטרי הגרעין המוצעים עם הערכים שהוקצו להם, ספק את הקמת הפקודה בתוך אפליקציית מסוף:

sysctl -a
כדי לקבל רק את הפרמטרים הקשורים למתזמן המשימות, אנו עשויים לספק את העמידה בפקודה:

sysctl -a | GREP “מתזמן”
זה מספק את העמידה בפלט במכשיר הדוגמה שלנו:

רישום הפרמטרים גדול למדי. נדון רק בכמה מהפרמטרים הללו להלן, שהם החשובים ביותר.

שינוי פרמטר
אנו יכולים לשנות פרמטר תוך שימוש בפקודה בסוג SYSCTL -W [פרמטר] = ערך בו הפרמטר הוא שם פרמטר הגרעין כמו גם הערך הוא הערך החדש. לדוגמה:

sysctl -w kernel.sched_scaling_enable = 1

קרא למטה לקבלת דוגמאות נוספות של שימוש ב- SYSCTL. קחו בחשבון ששינויים אינם מגיעים באמצעות אתחול מחדש. באפשרותך להשתמש בסקריפט init.d כדי להחיל כל סוג של שינויים הדרושים בזמן האתחול. לבסוף, וודא שאתה מפעיל פקודות SYSCTL עם הרשאות שורש. אתה יכול לקבל הרשאות שורש באפליקציית מסוף על ידי מתן עמידה בפקודה:

SU
פרמטרים של מתזמן משימות בסיסי

אל תחמיץ: עבר כמו גם עתיד גרעין לינוקס במכשירים ניידים

kernel.sched_min_granularity_ns
מובטח שמשימות הקשורות למעבד יפעלו למשך זמן מינימלי זה לפני שהן יוקמו מראש. משימה נחשבת כקשורה למעבד כאשר הזמן שלוקח לסך הכל תלוי רק במהירות המעבד. לדוגמה, משימה הממתינה על צרור להופיע באינטרנט אינה משימה כבולה במעבד. באופן כללי, הגדלת ערך זה תגביר את תפוקת המערכת. מצד שני, ערכים גבוהים עשויים להפחית את היענות הגאדג’ט. פרמטר זה לוקח ערכים בננו -שניות. לדוגמה, כדי להגדיר אותו ל- 4000000 ננו -שניות (4 אלפיות השנייה), אנו יכולים לספק את העמידה בפקודה:

sysctl -w kernel.sched_min_granularity_ns = 4000000
לפי תיעוד גרעיני לינוקס רשמי, זהו מתזמן CFS המרכזי.

kernel.sched_latency_ns
כל המשימות בתור הריצה של CFS מובטחות להיות מסודרות לפחות כאשר בתוך תקופה זו.null

Leave a Reply

Your email address will not be published. Required fields are marked *