As well-known in the art, there is generally a high possibility that a fault (error) may occur in an embedded system for special purpose due to limited resources and characteristics of various devices incorporated therein.
Moreover, when embedded terminals constituting a system related to a traffic, distribution, medical or the like operate in a network-based environment, a fault that cannot be estimated by a developer may occur owing to their increasing complexity. Particularly, a device driver that may have a fatal effect on a system may cause lots of problems.
Therefore, it is general that fault diagnosis and recovery are performed for the components in the embedded operating system, including the device driver. Here, the fault diagnosis is achieved by checking messages and parameters such as a device driver function and a system call function.
Also, a fault isolation technique with relatively high complexity is often employed which uses different memory domains. Besides, by tracking kernel resources used, a technique of preventing a resource leakage when a problem occurs is also employed.
However, the conventional methods have a problem in that there exists a case where they are not suitable for fault diagnosis and recovery due to limited resources and poor environment in the embedded system environment. Especially, the problem of performance overhead caused by the structure with relatively high complexity, such as fault isolation, is generated.
Moreover, the conventional methods provide only fragmentary data-based fault detection, but do not consider coping with faults at action levels of the system.