20, Sep, 2018 11:30-12:00 (30 minutes)
Seminar Series 2018 - Renato OliveiraEmulation library for a modular Cyber-Physical Systems simulation platform
CISTER, Porto, Portugal
One of the biggest issues when developing cyber-physical systems is the ability to test them in a similar environment for which they were designed. The execution of these tests in the real environment may require large sums of money, or, the testing cycles can be slower than the expected reduction of these cycles. The developed project in the context of PESTI was proposed by CISTER, a Research and Development unit (R&D) integrated in ISEP, and it is a part of a R&D project named KhronoSim which runs in a partnership with Critical Software S.A. and the Institute of Systems and Robotic of University of Coimbra. The objective of this project is the development of a modular and extensible testing platform, which shall allow whoever uses it to develop intuitive closed loop real-time tests for cyber-physical systems, via software. Therefore, the usage of a full-system emulator (which is an emulator that simulates at such a level of detail that the software can run on the directly on it, without any modification) is imperative to allow the reaching of a conclusion that makes it feasible to simulate as faithfully as possible the environment of the testing target. To achieve this goal and having into account the state of the art of the KhronoSim project, a library that allows the manipulation of QEMU instances was created, with the intention of making it more user friendly. Similarly, QEMU’s source code was changed to introduce a new feature that allows the diminishing of the execution frequency of a virtual machine, to further approach the behavior of emulated systems to the behavior of the real systems. The library was implemented having into account all the enumerated requirements made by the client. It is modular, extensible and concise, using C++ language and tested using BOOST. Using it, makes it possible to manipulate individual QEMU instances, should it be turning an instance on or off or sending commands via tcp sockets. The throttle mechanism was implemented by altering QEMU’s source code in the less invasive way possible, being promptly tested to measure its functional specificities. The measured data curve whilst having this mechanism activated is linear when the exiting condition is a time constraint and the computational load is null. However, when there is some computational load, namely the ordering of a vector using an algorithm of 𝑛 ∗ log𝑛 complexity, the data curve presents a quadratic form.
Presentation PDF (750KB)
CISTER's main roles: