Hard Real-Time Scheduling on Virtualized Embedded Multi-Core Systems
Total Page:16
File Type:pdf, Size:1020Kb
Faculteit Toegepaste Ingenieurswetenschappen Elektronica-ICT Hard real-time scheduling on virtualized embedded multi-core systems Proefschrift voorgelegd tot het behalen van de graad van Doctor in de Toegepaste Ingenieurswetenschappen aan de Universiteit Antwerpen te verdedigen door Yorick De Bock Peter Hellinckx Jan Broeckhove Antwerpen, 2018 Jury Chairman Prof. dr. ing. Maarten Weyn Supervisors Prof. dr. Peter Hellinckx Prof. dr. Jan Broeckhove Members Prof. dr. Paul De Meulenaere Prof. dr. ing. Sebastian Altmeyer, University of Amsterdam, The Netherlands Prof. dr. Rahul Mangharam, University of Pennsylvania, USA Contact Yorick De Bock IDLab, Faculty of Applied Engineering, University of Antwerp Groenenborgerlaan 171, 2020 Antwerpen, Belgium M: [email protected] T: +32 3265 1887 Copyright c 2018 Yorick De Bock All rights reserved. Abstract Due to the new industrial revolution or innovation in Cyber-Physical Systems and Internet- of-Things in general, the number of embedded devices in such environments increases exponentially. Controlling this increase of computing resources requires the use of new technologies such as multi-core processors and embedded virtualization. Combining both technologies makes it possible to reduce the number of the embedded systems by com- bining multiple separated systems into one powerful system. Those powerful systems hosts multiple tasks and are in most cases under the control of an operating system. The execution order of the tasks is orchestrated by the scheduler of this operating system. The scheduler uses a scheduling algorithm to assign a priority to each task. A wide variety of scheduling algorithms exists and it is the responsibility of the software developer to select the best fit for a specific application. Selecting a scheduling algorithm for single-core systems is relatively easy because of the limited design space. However, for multi-core systems in combination with virtualization, this becomes rather complex. This is because the degrees of freedom increases (multiple cores and scheduling levels) and this translates into a dramatic increase of the design space. As there is no general optimal scheduling algorithm for every application, the selection of the scheduling algorithm has to be made for every application individually. Currently, scheduling algorithms are selected manually during the implementation stage. Analysing each scheduling algorithm at this stage of the design process comes with a high cost and is time consuming. To reduce the costs of this selection process, this dissertation proposes a new analysis methodology. The main goal of this analysis methodology is to reduce to design space as soon as possible during the design process. In an early stage we explore the whole design space at a high abstraction level. Based on limited data we are able to reduce the design space at this high abstraction level at a low cost and only retain the high potential scheduling algorithms. At the lower abstraction levels we further reduce the design space, to eventually select the optimized scheduling algorithm at the lowest abstraction level from the available design space. For this only a small portion of the design space must be analysed at this high cost abstraction level. The gathered information about the optimized scheduling algorithm from the analysis methodology is provided to the traditional scheduling analysis at the implementation stage. This will reduce the costs of the design process of selecting an optimized scheduling algorithm for the application. We evaluate this analysis methodology based on four experiments with an increasing i Abstract complexity. First, we evaluate on a multi-core embedded system without virtualization. In the second experiment, we included the virtualization technology. In this experiment we used a powerful general purpose system as target platform. In the third experiment we evaluate on an embedded multi-core system with virtualization. In a final experiment, we prove that the analysis methodology is capable of analysing applications with multi-level nested virtualization. The results of the experiments prove that: (1) the performance of a scheduling al- gorithm is application depended with the result that virtualized embedded multi-core applications can have a different optimized scheduling algorithm. (2) It is possible to reduce the design space of scheduling algorithms at an early stage of the design process and further reduce this during the design process of the application using our analysis methodology. This reduces the total cost of the design process dramatically. ii Samenvatting Door de nieuw industri¨elerevolutie of in het algemeen de innovatie in Cyber-Fysieke systemen en Internet of Things-omgevingen, is de toename van het aantal embedded systemen in zo een systemen exponentieel. Om deze toename van computerkracht te beheersen, zijn nieuwe technologie¨ennodig zoals multi-core processoren en embedded virtualisatie. De combinatie van beide technologie¨enmaakt het mogelijk om het aantal embedded systemen te doen dalen door meerdere afzonderlijke systemen te bundelen in ´e´enkrachtig embedded systeem. Deze krachtige embedded systemen hosten meerdere taken onder de controle van een besturingssysteem. De uitvoervolgorde van de taken wordt bepaald door de scheduler van het besturingssysteem, die op zich gebruikt maakt van een scheduling algoritme om aan elke taak een prioriteit toe te kennen. Er bestaan meerdere scheduling algoritmes en het is de verantwoordelijkheid van de softwareontwikkelaar om het meest geschikte scheduling algoritme voor de applicatie te selecteren. Het selecteren van een scheduling algoritme voor single-core systemen is relatief eenvoudig vanwege de beperkte set van mogelijke scheduling algoritmes. Voor multi-core systemen in combinatie met virtual- isatie wordt dit echter complex. De reden hiervoor is dat graden van vrijheid toenemen (meerdere processor kernen en scheduling lagen) en dit vertaalt zich in sterke stijging van de ontwerpruimte van scheduling algoritmes. Doordat er geen algemeen optimaal scheduling algoritme bestaat voor iedere applicatie, wordt er voor elke applicatie indi- vidueel een geoptimaliseerd scheduling algoritme geselecteerd. Momenteel, wordt deze selectie handmatig uitgevoerd tijdens de implementatie fase van het ontwerpproces. Het analyseren van de hele set van scheduling algoritmes tijdens deze fase van het ontwerp- proces komt met een enorme kost en is tijdrovend. Om de kosten van het selecteren van het scheduling algoritme voor complexe em- bedded systemen te reduceren, introduceren we in dit proefschrift een nieuwe analyse methodologie. Het hoofddoel van deze analyse methodologie is het reduceren van de ontwerpruimte in een zo vroeg mogelijke fase van het ontwerpproces. Tijdens een vroege fase verkennen we de hele ontwerpruimte van alle mogelijke scheduling algoritmes op een hoog abstractieniveau. Op dit abstractieniveau reduceren we de ontwerpruimte tegen een lage kost en selecteren we enkel scheduling algoritmes met een hoog potentieel. Bij de lagere abstractieniveaus reduceren we de ontwerpruimte verder, om uiteindelijk op het laagste abstractieniveau het meest geoptimaliseerde scheduling algoritme te selecteren. Het analyseren van een scheduling algoritme op dit abstractieniveau gaat gepaard met een iii Samenvatting hoge kost. Doordat we slechts een klein deel van de ontwerpruimte moeten analyseren, blijven deze kosten beperkt. De verzamelde informatie gaande over het geoptimaliseerde scheduling algoritme kan worden gebruikt in traditionele analyse tijdens de implemen- tatiefase van het ontwerpproces. Hierdoor worden de kosten voor het selecteren van het geoptimaliseerde scheduling algoritme van een applicatie beperkt. We evalueren deze analyse methodologie door middel van vier experimenten met een toenemende complexiteit. Eerst evalueren we de analyse methodologie op een embed- ded multi-core systeem zonder virtualisatie. In het tweede experiment combineren de multi-core en virtualisatie technologie. In dit experiment maken we gebruik van een desktopsysteem met een krachtige multi-core processor. In het derde experiment maken we gebruik van een embedded multi-core systeem met virtualisatie. In het laatste exper- iment tonen we aan dat de analyse methodologie in staat om een systeem te analyseren met meerdere virtualisatie lagen, nl. geneste virtualisatie. De resultaten van de experimenten bewijzen dat: (1) de prestaties van een scheduling algoritme applicatie afhankelijk is. Met als gevolg dat gevirtualiseerde embedded multi- core applicaties een verschillend geoptimaliseerd scheduling algoritme kunnen hebben. (2) Het mogelijk is om de ontwerpruimte al vanaf een vroege fase van het ontwerpproces te reduceren en zelfs nog verder te reduceren in de volgende fases gebruik makende van de analyse methodologie. Dit vermindert de totale kost van het ontwerpproces enorm. iv Preface During my master's thesis I got the question if I was interested for a PhD position at the University of Antwerp. After talking with other PhD students in our research group and my parents, I decided to accept the invitation and start preparing a proposal together with my supervisors, Prof. Dr. Peter Hellinckx and Prof. Dr. Jan Broeckhove. After I got accepted, I started my PhD in January 2014. During my master's thesis I got interested in virtualization, so we decided to select this as the main topic of my PhD. In our research group, the knowledge about embedded systems and real-time scheduling was