University of Oulu

Reducing the boot time of embedded Linux systems

Saved in:
Author: Kyöstilä, Tomi1
Organizations: 1University of Oulu, Faculty of Information Technology and Electrical Engineering, Department of Computer Science and Engineering, Computer Science
Format: ebook
Version: published version
Access: open
Online Access: PDF Full Text (PDF, )
Persistent link: http://urn.fi/URN:NBN:fi:oulu-201810062898
Language: English
Published: Oulu : T. Kyöstilä, 2018
Publish Date: 2018-10-09
Thesis type: Master's thesis (tech)
Tutor: Silven, Olli
Reviewer: Silven, Olli
Bordallo Lopez, Miguel
Description:
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.
see all

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ä.
see all

Subjects:
Copyright information: © Tomi Kyöstilä, 2018. This publication is copyrighted. You may download, display and print it for your own personal use. Commercial use is prohibited.