Providing a-priori temporal guarantees is paramount in real-time systems. Although much of the normal operation in such a system is modeled using sporadic tasks, event-driven behavior is modeled using aperiodic jobs. To ensure an acceptable Quality of Service for aperiodic jobs without jeopardizing safety of sporadic tasks, aperiodic servers were introduced. While aperiodic servers periodically reserve a quota for the execution of aperiodic jobs, they do not take into account, indirect cache-related delays that the execution of aperiodic jobs could impose on sporadic tasks, thereby making their use in systems with caches unsafe. In this paper, we introduce the concept of a Cache Delay Server to solve this problem for sporadic tasks (and thus, for periodic tasks). Every sporadic task is allocated a delay quota to accommodate the cache-related delay that could potentially be imposed due to aperiodic job execution. An aperiodic job is allowed to execute only when all active lower-priority sporadic jobs have sufficient delay quota to accommodate it. We also present a technique to calculate delay quotas for sporadic tasks within a given task set. Simulation results demonstrate that the use of a Cache Delay Server ensures safety of sporadic task execution in systems using caches while providing reasonable average-case response times to aperiodic jobs.
展开▼