|
|
|
|
|
|
|
ac6 >> ac6-training >> Cours en ligne >> Embarqué et Temps-Réel >> Programmation Linux temps-réel et multi-cŒurs |
oRT1 | Programmation Linux temps-réel et multi-cŒurs |
Objectifs
|
Exercise : | Prepare the environment | |
Exercise : | Create a simple context switch routine |
Exercise : | Build a general purpose thread safe doubly linked list |
Exercise : | Write a simple, thread safe, buddy system memory manager | |
Exercise : | Write a generic, multi-level, memory manager | |
Exercise : | Enhance the memory manager for memory error detection | |
Exercise : | Enhance the context switching infrastructure to monitor stack use |
Exercise : | Write a simple, fixed priority, scheduler |
Exercise : | Write a basic interrupt manager | |
Exercise : | Extend the scheduler to also support real-time round-robin scheduling |
Exercise : | Writing a spinlock implementation |
Exercise : | Study of a multi-core scheduler |
Exercise : | Implement Semaphores by direct interaction with the scheduler | |
Exercise : | Implement the mutex mechanism | |
Exercise : | Check proper nesting of mutexes and recursive/non-recursive use | |
Exercise : | Implement a priority ceiling mechanism | |
Exercise : | Add Condition variable support to the mutex mechanism |
Exercise : | The producer-consumer problem, illustrating (and avoiding) concurrent access problems | |
Exercise : | The philosophers dinner problem, illustrating (and avoiding) deadlock, livelock and starvation |
Exercise : | Solve the classic readers-writers problem with POSIX threads | |
Exercise : | Maintain per-thread static data for the readers-writers problem |
Exercise : | Create a kernel-mode execution barrier using kernel synchronization primitives | |
Exercise : | Create a kernel event synchronization object, using basic synchronization primitives |
Exercise : | Sending messages between AMP cores demonstration |