Research Article

Empirical Studies for the Assessment of the Effectiveness of Design Patterns in Migration between Software Architectures of Embedded Applications

Table 1

Thumbnails for the patterns in the PMES collection.

Pattern nameDescription

Patterns for migration

Time for TT?Discusses about when it is appropriate to use TT architecture
Events to timeDiscusses what changes are required to be done at high level when changing the system from ET to TT design
TT schedulerDiscuss what a TT scheduler is and its possible types. Also discuss what type of TT scheduler is appropriate in different situations
Cooperative schedulerDiscusses the implementation of time-triggered cooperative scheduler
Hybrid schedulerDiscuss the implementation of time-triggered hybrid scheduler
Preemptive schedulerDiscusses the implementation of time-triggered preemptive scheduler
Choosing task parametersDiscusses the appropriate choice of task parameters such as offset and order of task execution
Buffered outputDiscusses how to deal with long-task problem when working with co-operative scheduler
Polled inputDiscusses how to deal with external events in time-triggered environment
Critical sectionDiscusses how to avoid conflicts over shared resources during the execution of critical sections
Resource lockDiscusses the implementation of resource lock in embedded system
Disable timer interruptDiscusses the simplest way of implementing safe access to shared resources
Priority inheritance protocolDiscusses the implementation of access to shared resources with mutual exclusion and without priority inversion
Improved priority ceiling protocolDiscusses the implementation of access to shared resources with mutual exclusion avoiding priority inversion, deadlock, and blocking chains

Patterns for optimisation

Balanced systemDiscusses the types of jitter encountered in TT architectures and considers how to design systems with minimum levels of jitter
Sandwich delayDiscusses a technique to reduce period jitter in tasks
Single-path delayDiscusses a technique to reduce tasks execution jitter
Take a napDiscusses a technique to reduce tasks execution jitter and with minimum power consumption
Planned preemptionDiscusses a technique to reduce tick jitter in TTH designs
System monitorsDiscusses the need for (and implementation of) monitors in the system which keep track of system state and take necessary actions in case of errors
Loop timeoutDiscusses the implementation of a software technique to reset systems in case of any unexpected error that could (otherwise) cause the system to “hang”
WatchdogDiscusses the implementation of a hardware technique to reset system in case of an unexpected error
Task guardianDiscusses the need for (and implementation of) shutdown mechanisms for tasks that exceed their predicted worst-case execution time