Compact 2013 Ebook

19.4: Hard and Soft Real-time systems
Created by tjoubert on 7/9/2013 2:48:46 AM

In today’s environment, a computer control system is often designed with multiple layers of software components such as:

  • Hardware adaptation layer (BIOS, firmware, etc.)
  • Device drivers
  • Operating system (scheduler, file system, etc.)
  • Software libraries
  • Application modules

The layered software architecture is not mandatory. Theoretically you can build the whole software as one single module that performs all input, computing and output. This is the case for medical device such as the peacemaker and automotive device such as the anti-lock breaking system where multi-threading may introduce an unwanted level of complexity for a mono-functional equipment.   

For many industries, the layered software architecture has proven its effectiveness in the development of complex systems. An operating system platform like Windows embedded Compact 2013 comes with a comprehensive set of functionalities which include file system, network stack or graphical user interface and other components that greatly accelerate the development of a connected manufacturing control device or a medical device with graphical user interface.

Delivering a complex layered system with Hard Real-time capabilities is a challenging project. Many embedded solutions in today’s market are build with hardware and OS technology designed to serve the consumer market, which lack the design considerations needed to support Real-time behavior, like fixed priority scheduling and optimized interrupt handling. In addition, the device drivers for many consumer oriented devices are not designed to be time efficient. Often the OEMs building the consumer device use third party device driver and do not have the capability to modify or improve the drivers.

While most of the platforms designed to serve the consumer market are build with quality, they lack some of the timing sensitive behaviors needed to support embedded device with Hard Real-time requirements. Used in the domain of device control, these platforms will react with a large time dispersion which means blurry deadlines and potential instability. Some systems accommodate blurry deadlines; in the domain of manufacturing control for example being late on a cycle may simply mean delaying the production line. In that case, the consequence of using a Soft Real-time solution will be a smaller production at the end of the day.

Windows Embedded Compact 2013 is a Hard Real-time operating system because most of its kernel services are temporally stable, including thread scheduling and synchronization, and because its hardware interface is optimized. Still Compact 2013 cannot be a guaranty that the whole device will be Hard Real-time, remember that the OS is only one layer – or one gear in the gearbox – the design of a deterministic function must include all layers. When calling a WIN32 API function, a Hard Real-time developer must know the time gap of that function to decide if it may be used inside the Real-time critical path. As a consequence, all non-deterministic function calls should be done during initialization or in a branch that is parallel to the Real-time critical path. Parallel here could mean “in a thread with a lower priority” or even “on a dedicated CPU” because Compact 2013 offers Symmetric Multi-Processing (SMP).

The previous paragraph introduced the notion of “critical Real-time path”, it is the role of the software architect to build the software in a way that the critical path can be identified and isolated from other non-Real-time functions like networking or man-machine interface. Windows Embedded Compact 2013 offers dedicated Hard Real-time functionalities, like priority inversion and on-demand time quantum, to handle the isolation between Hard Real-time and non-Real-time sections of the application.

print

Click here to provide feedback and input

  Comments


Turkish porno izle video site in rokettubeporno izle