Return to search

Reducing the boot time of embedded Linux systems

The increase of the functionality of consumer electronics has complicated the software embedded in them. The functionality previously implemented in hardware has been steadily shifting into software, which also increases its complexity. Together, these developments have led to reduced performance and longer start-up delays. Consumer electronics need to have a positive user experience, which is also affected by the boot time.

The methods for reducing the start-up time of an embedded Linux system can be categorized by the boot phases they can target: bootloaders, kernel initialization, or user space initialization. Compression can be applied in various situations, while prefetching to the page cache (readahead) is relevant only to user space initialization. Hibernation can be used to entirely avoid user space initialization, which is usually the most time-consuming boot phase in Android systems.

Developers need to know what impact their solutions and hardware choices have on the boot time. For this purpose, a measurement system was developed, which can automatically reboot the target system and collect a large sample of start-up time measurements. A large sample size is important because of the variance of the boot time even in a fixed target configuration.

The measurement system was validated by using it when optimizing the start-up time of an Android system for use in an embedded consumer electronics device. The boot time of the system was reduced by resuming the system from hibernation and by optimizing the CPU clock frequency and hibernation settings.

The median start-up time was improved from 61.594 s to 6.835 s, which is a reduction of 89 %. The relative improvement exceeds the results of most other published attempts at optimizing the Android boot time. The best results have been achieved with hibernation combined with other methods. / Viihde-elektroniikan toiminnallisuuden lisääntyminen on monimutkaistanut niihin sulautettuja ohjelmistoja. Aiemmin laitteistolla toteutettu toiminnallisuus on tasaisesti siirtynyt ohjelmistoihin, mikä edelleen mutkistaa niitä. Yhdessä nämä kehittymiset ovat johtaneet heikentyneeseen suorituskykyyn ja pidempiin käynnistysviiveisiin. Olennainen osa viihde-elektroniikkaa on positiivinen käyttäjäkokemus, johon vaikuttaa myös käynnistymisaika.

Sulautetun Linux-järjestelmän käynnistymistä nopeuttavat menetelmät voidaan luokitella sen mukaan, mihin käynnistymisvaiheeseen ne voivat vaikuttaa: käynnistyslataimiin, ytimen alustamiseen tai käyttäjäavaruuden alustamiseen. Pakkaamista voi hyödyntää monissa tilanteissa, kun taas ennakolta tehty sivuvälimuistiin haku (readahead) auttaa ainoastaan käyttäjäavaruuden alustamisessa. Horrostilalla voidaan täysin ohittaa käyttäjäavaruuden alustus, joka Androidjärjestelmissä on yleensä aikaa vievin vaihe.

Kehittäjien täytyy tietää mikä vaikutus heidän ratkaisuillaan ja laitteistovalinnoillaan on käynnistymisaikaan. Tätä varten kehitettiin mittausjärjestelmä, joka pystyy automaattisesti käynnistämään kohdelaitteiston uudelleen ja keräämään suuren otoksen käynnistysaikamittauksia. Suuri otoskoko on tärkeä, koska käynnistymisaika vaihtelee muuttumattomallakin laitekokoonpanolla.

Mittausjärjestelmä osoitettiin kelvolliseksi hyödyntämällä sitä sulautettuun kulutuselektroniikkalaitteeseen tarkoitetun Android-järjestelmän käynnistymisajan optimoinnissa. Järjestelmän käynnistymistä nopeutettiin palaamalla horrostilasta ja optimoimalla suorittimen kellotaajuutta ja horrostilan asetuksia. Järjestelmän käynnistysajan mediaani oli lähtötilanteessa 61.594 s ja lopputuloksessa 6.835 s, mikä vastaa 89 % vähennystä.

Suhteellinen parannus ylittää useimmat julkaistut Android-järjestelmien käynnistysajan optimoinnin yrityksien tulokset. Parhaat tulokset on saavutettu horrostilan ja muiden menetelmien yhdistelmillä.

Identiferoai:union.ndltd.org:oulo.fi/oai:oulu.fi:nbnfioulu-201810062898
Date09 October 2018
CreatorsKyöstilä, T. (Tomi)
PublisherUniversity of Oulu
Source SetsUniversity of Oulu
LanguageEnglish
Detected LanguageFinnish
Typeinfo:eu-repo/semantics/masterThesis, info:eu-repo/semantics/publishedVersion
Formatapplication/pdf
Rightsinfo:eu-repo/semantics/openAccess, © Tomi Kyöstilä, 2018

Page generated in 0.0023 seconds