Our case study is based on a previous implementation of the EPOS scheduler described by [1], which described a task scheduling suitable for hardware and software implementation. However, the original VHDL implementation was not susceptible to the same mechanisms that render its software counterpart flexible and reusable. The new System based hardware scheduler is described below. Figure 2 shows a simplified view of the task scheduling model. In this design, the task is represented by the class Thread and defines the execution flow of the task, implementing the traditional functionality (e.g. suspend and resume operations). The classes Scheduler and Scheduling Criteria define the structure that realizes the task scheduling. Traditional design and implementations of scheduling algorithms are usually done by a hierarchy of specialized classes of an abstract scheduler class, which can be further specialized to bring new scheduling policies to the system. In order to reduce the complexity of maintenance of the code (generally present in such hierarchy of specialized classes), as well as to promote its reuse, the design detaches the scheduling policy (criteria) from its mechanisms (lists implementations) and also detaches the scheduling criteria from the thread it represents. This is achieved by the isolation of the element’s comparison algorithm of the scheduler in the criteria.