Real-time sysems
Real-time systems are defined as those systems in which the correctness of the system depends not only on the logical correctness of result of computation, but also on the time on which results are produced. If the response time violates the timing constraints imposed by the dynamic of the environment, the system has to pay a cost for the violation. Hence, it is essential that the timing constraints of the system are guaranteed to be met. The cost of failure in a real-time system differentiates real-time systems into mainly three types of real-time systems: Hard, Soft and Firm. In my research, I am interested ... in Hard and Soft real-time systems.
Energy efficiency
Energy consumption is an increasing concern in cyber-physical real-time systems, especially when processing elements operate on battery power. Embedded real-time distributed systems must support increasingly complex applications such as distributed video surveillance, processing a large amount of sensor data, etc. The energy consumption can be optimized in recent processor by the mean of DVFS (Dynamic voltage and Frequency Scaling), and DPM (Dynamic Power Management). The first allows to calibrate the operating frequency to reduce the dynamic energy. In DPM, the processor (core) static energy may be reducing by "switching off" some processor components such as clocks. Reducing the frequency and changing processor mode affects the processor performances by increasing the execution time and reducing the processor capabilities.
I focus on how to use such techniques to reduce the energy consumption while guaranteeing the respect of all timing constraints, on platforms similar to ARM big.LITTLE
Executing Real-time tasks onto Unrelated platforms
A recent trend in hardware architecture design is to combine high performance multi-core CPU hosts with a number of application-specific accelerators (e.g. GPUs, DLAs, FPGAs, ...) in order to support complex real-time applications with machine learning and image processing software modules. Such application specific processors are defined by different levels of programmability and a different Instruction Set Architecture (ISA) compared to the more traditional SoCs, such as in the integrated version of the NVIDIA Volta architecture within the NVIDIA Xavier SoC where several ARM cors are embeded with GPUs, DLAs, PVAs.
I am interested in analyzing the timing behavior of a real-time application as they represent drastic differences at the level of ISAs, preemption capabilities, memory hierarchies and inter-connections. We develop a platform to validate our research and to reduce the effort when programming such platform by generating automatically the prototypes of source codes.
Executing real-time tasks within GPOS
Many modern GPOS (General Purpose Operating Systems) kernels provide real-time scheduling support for time sensitive applications. For example, Linux provides three real-time scheduling policies: SCHED_FIFO and SCHED_RR which are based on fixed priorities and are standardized by POSIX; and SCHED_DEADLINE , which provides resource reservation on top of Earliest Deadline First (EDF). Thanks to the temporal isolation property, the latter is particularly useful when mixing real-time and non real-time workloads in the same system. These scheduling policies are highly configurable, and can be used to implement either global scheduling or partitioned scheduling by properly set the tasks' CPU affinities or using the cpuset mechanism. In global scheduling, load balancing is implicite however as tasks are arranged in a single queue, they are allowed to migrate, thus generating an overhead due to migrations.
I investigate load balacing techniques for partitioned scheduling by allowing permannent and temporary migrations without breaking the temporal isolation.