Resource Sharing Under Global Scheduling with Partial Processor Bandwidth Sara Afshar 1 , Moris Behnam 1 , Reinder J. Bril 1,2 , Thomas Nolte 1 1 alardalen University, V¨ aster˚ as, Sweden 2 Technische Universiteit Eindhoven, Eindhoven, Netherlands Email: {sara.afshar, moris.behnam, reinder.j.bril, thomas.nolte}@mdh.se, r.j.bril@tue.nl Abstract—Resource efficient approaches are of great impor- tance for resource constrained embedded systems. In this paper, we present an approach targeting systems where tasks of a critical application are partitioned on a multi-core platform and by using resource reservation techniques, the remaining bandwidth capacity on each core is utilized for one or a set of non-critical application(s). To provide a resource efficient solution and to exploit the potential parallelism of the extra applications on the multi-core processor, global scheduling is used to schedule the tasks of the non-critical applications. Recently a specific instantiation of such a system has been studied where tasks do not share resources other than the processor. In this paper, we enable semaphore-based resource sharing among tasks within critical and non-critical applications using a suspension-based synchronization protocol. Tasks of non-critical applications have partial access to the processor bandwidth. The paper provides the systems schedulability analysis where blocking due to resource sharing is bounded. Further, we perform experimental evalua- tions under balanced and unbalanced allocation of tasks of a critical application to cores. I. I NTRODUCTION With a growing interest towards replacing traditional single core 1 processors with new multi-cores as the defacto pro- cessors in embedded systems, a demand has emerged for investigating proper scheduling techniques to allow for such a migration. One major concern in this context is that embedded systems typically have a constrained amount of resources. Therefore, techniques that can enable an efficient usage of processor bandwidths are of great importance. In general two conventional scheduling approaches exist for multiprocessor systems being partitioned and global schedul- ing [7], [16]. In the partitioned approach, each task is assigned to a processor at design time and it will be scheduled only on its assigned processor during run-time. However, in global scheduling, tasks are selected from one system wide unique global queue at run time and they are scheduled on any available processor (among the idle processors). In global scheduling tasks may migrate among processors whereas in the partitioned scheduling approach tasks are bound to processors. Global scheduling approaches are privileged to partitioned approaches due to their higher system utilization guarantees since they allow a task to run whenever a processor becomes This work is supported by the Swedish Foundation for Strategic Research via the research program PRESS, the Swedish Knowledge Foundation and ARTEMIS Joint Undertaking project EMC2 (grant agreement 621429). 1 In this text we will use core and processor interchangeably. available. However, global scheduling techniques introduce more overhead to the system due to potential migrations of tasks among processors. From an industrial point of view, co-existence of multiple real-time applications on a shared multi-core platform is an efficient solution since it can provide re-usability of the independently-developed applications besides decreasing the system power consumption and costs. By transition to a multi- core architecture, these subsystems/applications which may share resources will eventually co-exist on a shared multi-core platform. These applications, may have different criticality levels. In this paper we consider two types of applications 2 : critical and non-critical. In practice, such as automotive industry [1], critical appli- cations are partitioned in the multiprocessor system to achieve a higher degree of predictability. Moreover, resource efficient solutions for embedded systems suggest to further utilize the remaining bandwidth from such applications on each core. To provide temporal guarantees to the critical application, served- based techniques can be applied [4], [22]. In this paper, we target a resource efficient structure where a set of critical applications are partitioned on the multipro- cessor platform and the remaining capacity on each core is determined statically, and made available to a set of non- critical applications through resource reservation techniques. The critical application resides on the platform whereas other non-critical applications can be added or removed dynami- cally. In [4] global scheduling has been used for less critical applications. Similarly and to exploit the potential parallelism, we also use global scheduling to schedule the tasks of non- critical applications. A specific instantiation of such a platform has been studied in [31]. However, this approach is based on a simplifying assumption that tasks do not share resources with each other, except the processor. In this work we enable semaphore- based resource sharing assuming that each critical and non- critical application uses a dedicated set of resources. We use a suspension-based resource sharing approach i.e., a task sus- pends whenever the resource is not available letting other tasks to execute. Note that, our focus here is handling resources that are protected by locks. We do not consider physical resources such as a bus or memory as done in [25]. 2 Our main focus in this paper is to enable resource sharing and we do not focus on the solutions for more complex mixed-criticality systems where mode changing happens.