Random people Random location Random misc

Practical Real-Time Programming in Userspace

The Linux kernel provides low latency scheduling, suitable for a wide range of multimedia, data acquisition and embedded applications. Making proper use of this functionality in userspace programs requires some insight in in the kernel internals. Unfortunately not many current applications making use of the real-time features of the kernel from userspace "get it right". In this talk I will discuss common mistakes and will introduce a couple of techniques how to better make use of the real-time features. The topics we will cover (or at least touch briefly, time permitting) are:

- threading/concurrent algorithms
- latency
- lock-free algorithms/data structures
- free lists
- lock-free memory allocation
- zero-copy memory management
- real-time scheduling
- portable atomic operations
- real-time event loops
- reference counting
- memory locking
- cache line optimization
- synchronization primitives
- shared memory IPC
- other APIs relevant for real-time hacking

We will discuss which kernel APIs can be used, which APIs should be used and which APIs to avoid when doing real-time programming. Finally, as a real-world example of how to use all these techniques we will show the basic structure of the PulseAudio sound server with a focus on real-time audio processing.

This talk is intended for everyone who is interested in multimedia programming (especially audio), data acquisition or embedded development.

Project: PulseAudio 


Lennart Poettering

Born in Guatemala City (Guatemala), raised in Rio de Janeiro (Brazil) and Hamburg (Germany), Lennart Poettering now works as a software engineer in the Red Hat desktop team. Among other Free Software projects Lennart hacks and maintains the Avahi Zeroconf Implementation (http://avahi.org/) and the PulseAudio sound server (http://pulseaudio.org/), which are now integral part of all major Linux distributions. His interests in Free Software range from Linux kernel hacking to low-level systems programming and GNOME desktop development.

Lennart Poettering

Born in Guatemala City (Guatemala), raised in Rio de Janeiro (Brazil) and Hamburg (Germany), Lennart Poettering now works as a software engineer in the Red Hat desktop team. Among other Free Software projects Lennart hacks and maintains the Avahi Zeroconf Implementation (http://avahi.org/) and the PulseAudio sound server (http://pulseaudio.org/), which are now integral part of all major Linux distributions. His interests in Free Software range from Linux kernel hacking to low-level systems programming and GNOME desktop development.

© 2007 MEL8OURNE LCA2008 and Linux Australia | Linux is a registered trademark of Linus Torvalds | Site map | Valid XHTML 1.0

rja