Transaction based device driver developement

Alexander Weggerle, Christian Himpel, T. Schmitt, Peter Schulthess · 2011 Proceedings of the 34th International Convention MIPRO · 2011

A major design goal in operating systems development is stability and one of the challenges of this stability are the device drivers. Device drivers are more likely to crash the operating system for two reasons: on one hand side they typically run in kernel mode and are not as easily be confined as the normal application programs and on the other hand side many drivers are built by independent equipment manufacturers. Generally, the synchronization mechanisms and the hardware access strategies of device drivers appear to be a critical issue in terms of performance and stability. Inspired by the established transaction mechanisms in databases or cluster systems we propose to introduce a transaction based device driver model. This extends the advantages of the transaction mechanism to the driver development. All accesses to the devices are encapsulated into transactions. Designing a transactional driver model is a major challenge as operations on the real hardware are rarely restartable: However, if an execution environment is already basically transactional a transactional device driver model might elegantly blend into the total system. As a result the device driver transaction is then able to guarantee that device communication is carried out as an atomic operation.

Read the paper · More papers on PaperTik