Article Preview
Top1. Introduction
Embedded systems (ES) have penetrated our life to a point where we cannot ensure our daily business, assignments and chores in their absence. These systems have undergone a dramatic increase in functionality and omnipresence in such a way no one can negate their remarkable influence on our behaviors, habits and even our convictions.
Whatever their architectures type (i.e. centralized Vs. distributed), the used technologies (i.e. wired, wireless, optical) and the application fields (i.e. automotive, avionics, space, robotics, health care, military, entertainment and so on), ES have some common decisive requirements among others the real time constraints, the reduced energy consumption and the reliability assurance.
First, ES are qualified as Real Time (RT) systems. A RT system is any system where its correction depends not only on the results of computations, but also on the time instants at which these results become available. In other term, a real-time system is responsible for delivering logically correct computations within the predefined deadlines.
Depending on the severity of the timing constraint (i.e. deadline), RT systems can be hard (i.e. critical), soft, firm or any combination of them. RT systems typically incorporate a RTOS (Real Time Operating System) kernel. The latter is responsible of many vital activities for ES such as tasks scheduling, Input/output management, memory management, security and so on. Since ES are often battery-dependent, their design have to minimize their power dissipation and energy consumption accordingly. Energy-aware design methodologies of ES are becoming popular in the ES terminology. The other important characteristic is the reliability.
In its large sense, reliability means the capacity of the system to continue its functioning even in the absence of faults. Reliability includes many aspects or attributes such as availability, safety (i.e. functional correction), data integrity, etc. Each attribute has a set of means to realize it. For example, availability can be achieved through faults tolerance. The latter has many mechanisms among them the spatial redundancy (i.e. hardware redundancy) and the temporal redundancy (i.e. the re-execution of the same task or code). Faults tolerant or reliability-aware methodologies are also being an inherent part of the ES jargon.
Contrary to traditional ES, nowadays, ES are becoming more complex, more open and networked and integrate intelligent parts that can function in hostile, dynamic environments (probably with uncertain or partial knowledge) autonomously, simulating a bit of some human intellectual activities such as reasoning, learning, memorization, perception, decision-making, self-adaptation, and self-optimization. On the other hand, the exponential progress in the hardware technology conducting to the appearance of multi-core and parallel computing on chip, very high performance processing and reconfigurable hardware render embedding AI in ES possible. Of course, this coupling between AI and ES is not trivial at all, since the two fields have different philosophies. While AI deals with more complex cognitive, theoretically with unlimited resources tasks, ES are by nature reactive and have limited resources. The integration of AI into ES leads to the emergence of what we call ‘intelligent embedded systems’ (IES).
IES design is a hot research topic investigating the application of the most famous AI models and methods as Artificial Neural Networks (ANN), Reinforcement learning, multi agent systems (MAS), swarm intelligence, Genetic Algorithms, fuzzy logic, constraint programming, game theory, cellular automata, and Artificial Immune Systems (AIS) to ES design while meeting the temporal, the energetic and the reliability requirements in addition to the cost constraint and end-users goals satisfaction.
This paper is interested in the application of AI to resolve the well-known problem of RT scheduling for embedded systems. The possibility of coupling AI with RT systems was discussed earlier (Musliner et al., 1994) and a few existing works had yet been interested in the application of expert systems to resolve the traditional jobs scheduling problem (MacCarthy & Jou, 1995). In turn, (Laalaoui & Bouguila, 2014) presented a non-exhaustive survey on the application of some AI methods to the static RT scheduling.