Luis Miguel Pinho
Luis Lino Ferreira
Luis Miguel Nogueira
The current use of software as the key component of any real-time embedded system is increasing the, often contradictory, demands for attributes such as flexibility, adaptation, isolation, reliability or availability. Software infrastructure (such as languages, operating systems, middleware) and models are, more and more, a fundamental topic for system development, being transversal to application areas and research domains.
In this context, this research line addresses issues associated with the software infrastructure required for developing embedded real-time systems. Our approach is to integrate advanced mechanisms within programming languages, operating systems and middleware, allowing designers and programmers to manage the increasing complexity, and flexibility requirements, simultaneously reducing common errors, and allowing isolation and verification of systems.
On Going Research
Software Concurrency and Parallelism
Software concurrency is inherently a complex issue, usually the source of a large spectrum of errors in the execution of real-time systems. Traditional approaches tended to restrict (or even prohibit) software concurrency, which impairs the its flexibility capabilities. It is necessary to transparently provide concurrency abstractions and mechanisms that support dynamic execution, whilst guaranteeing the required isolation between concurrent services.
Furthermore, the current multicore and multiprocesssor architectures introduce new needs and challenges to concurrency abstractions, also bringing parallelism to usual embedded and real-time systems. New (and old) programming abstractions and runtime environments must be considered and their impact in the timeliness and isolation of systems must be assessed. In this context, our approach is to simultaneously address programming models, virtual machines and operating systems, considering the integration of parallelism approaches into real-time and embedded systems.
It is also important to guarantee the secure implementation and execution of component code. Systems are more and more built from independently developed concurrent components. It is, therefore, mandatory that the supporting infrastructure is able to isolate these components, preventing the propagation of errors from faulty components to the rest of the system. Being able to specify temporal contracts or automatically generate component interfaces are an important
Operating System Adaptation
The adaptation requirements of current real-time embedded systems imply that the underlying operating system is able to self inspect and adapt itself to the changing requirements. However, a prevalent notion is that introducing requirements which are orthogonal to the main functionality intended for the system will introduce additional stress on the determinism and reliability of the real-time applications.
It is thus the perspective of our approach that real-time systems software will have to incorporate advanced techniques which are able to separate the functional part of the application from its dynamic monitoring and control, without precluding the determinism of the system.
Distributed and mobile execution of embedded applications introduces stringent challenges in the underlying distribution middleware, particularly when considering the use of off-the-shelf technologies, either platform oriented (e.g. Android) or reference architecture (e.g. DDS, XMPP). With the increasing size and complexity of distributed embedded systems, the coordination of multiple and dynamic inter-dependent components may impair the efficient deployment of actual applications.
Our approach considers fast convergence decentralized models, which are efficient, and simultaneously we research their impact in the underlying middleware, considering both current and future technologies. It is also important to consider the implications that the reliability and availability requirements pose into the distributed execution of software, with both code and data replication, particularly considering asynchronous models.
Projects & Leadership
We are one of the core partners in the European network of Excellence ARTISTDesign.
Consecutive grants (since 2002) in the area of Electrical Engineering and Computer Science from the Portuguese Science Council (FCT) for projects TERRA, MethoDES, Reflect, CooperatES and RESCUE.
Conference Chair and Program Co-Chair of Ada-Europe 2006.
Editor of the Ada User Journal
Keynote Speaker at RTCSA 2010
- The RTSJ paper provided a framework for the transparent replication of concurrent objects
- Our Ada-Europe 06 paper proposes a reflection architecture for monitoring real-time operating systems
- The Autonomic 08 paper proposes a novel anytime adaptive QoS control policy in which the online search for the best set of QoS levels is combined with each user’s personal preferences on their services’ adaptation behaviour
- Our EUC 09 paper proposes an one-step decentralised coordination model based on an effective feedback mechanism
- Our Ada-Europe 2010 paper provides an initial evaluation of Ada 2012 support to multicore applications