Abstract
As we have seen throughout this book, the role of a driver is to make the functionality that is provided by a hardware device available to the operating system and to user applications. This means that the code inside a driver may be called from any number of running applications at any time, depending on when an application wishes to request the services of the hardware device. In handling these requests, the driver runs in the thread context of the application that made the control call. In addition to these requests, the hardware itself can require servicing and may generate interrupts at arbitrary times that the driver must respond to. The end result for the driver developer is that driver code runs in a complex multithreaded environment, even without the driver creating any additional threads of its own.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
Rights and permissions
Copyright information
© 2011 Ole Henry Halvorsen and Douglas Clarke
About this chapter
Cite this chapter
Halvorsen, O.H., Clarke, D. (2011). Synchronization and Threading. In: OS X and iOS Kernel Programming. Apress. https://doi.org/10.1007/978-1-4302-3537-8_7
Download citation
DOI: https://doi.org/10.1007/978-1-4302-3537-8_7
Publisher Name: Apress
Print ISBN: 978-1-4302-3536-1
Online ISBN: 978-1-4302-3537-8
eBook Packages: Professional and Applied ComputingApress Access BooksProfessional and Applied Computing (R0)