This preview has intentionally blurred sections. Sign up to view the full version.View Full Document
Unformatted text preview: Modeling device driver effects in real-time schedulability analysis: Study of a network driver * Mark Lewandowski, Mark J. Stanovich, Theodore P. Baker, Kartik Gopalan, An-I Andy Wang Department of Computer Science Florida State University Tallahassee, FL 32306-4530 e-mail: [lewandow, stanovic, baker, awang]@cs.fsu.edu, [email protected] Abstract Device drivers are integral components of operating systems. The computational workloads imposed by de- vice drivers tend to be aperiodic and unpredictable be- cause they are triggered in response to events that oc- cur in the device, and may arbitrarily block or preempt other time-critical tasks. This characteristic poses sig- nificant challenges in real-time systems, where schedu- lability analysis is essential to guarantee system-wide timing constraints. At the same time, device driver workloads cannot be ignored. Demand-based schedu- lability analysis is a technique that has been success- ful in validating the timing constraints in both single and multiprocessor systems. In this paper we present two approaches to demand-based schedulability analy- sis of systems that include device drivers. First, we derive load-bound functions using empirical measure- ment techniques. Second, we modify the scheduling of network device driver tasks in Linux to implement an algorithm for which a load-bound function can be de- rived analytically. We demonstrate the practicality of our approach through detailed experiments with a net- work device under Linux. Our results show that, even though the network device driver does not conform to conventional periodic or sporadic task models, it can be successfully modeled using hyperbolic load-bound func- tions that are fitted to empirical performance measure- ments. * Based upon work supported in part by the National Science Foundation under Grant No. 0509131, and a DURIP equipment grant from the Army Research Office. 1 Introduction Device drivers are the software components for man- aging I/O devices. Traditionally, device drivers for common hardware devices (e.g.. network cards and hard disks) are implemented as part of the operating system kernel for performance reasons. Device drivers have also traditionally been a weak spot of most operat- ing systems, especially in terms of accounting and con- trol of the resources consumed by these software com- ponents. Each device driver’s code may run in multiple (possibly concurrent) execution contexts which makes the resource accounting difficult, if not impossible. For instance, Linux device drivers are scheduled in a hi- erarchy of ad hoc mechanisms, namely hard interrupt service routines (ISR), softirqs , and process or thread contexts, in decreasing order of execution priorities....
View Full Document
- Spring '09
- Computer Science, real time, Interrupt, Linux kernel