Save Big on Coursera Plus. 7,000+ courses at $160 off. Limited Time Only!
Explore the intricacies of concurrent processing in embedded Linux systems through this comprehensive conference talk. Gain a clear understanding of various programming models, including processes, light-weight processes, threads, fibers, co-routines, and tasks. Navigate the threads landscape on Linux, starting with an overview of the clone(2) system call and its relation to processes and threads at the user-space level. Examine the thread life cycle, focusing on creation, joining, detaching, and exiting. Delve into thread stack management, comparing implementations in glibc and musl. Learn about memory synchronization, mutexes, and condition variables with practical examples. Conclude by investigating the interaction between threads and signal delivery. Benefit from hands-on demonstrations, code analysis, and the use of tools like pmap, strace, and ltrace to gain deeper insights. Address common issues such as compilation problems with "-pthread", thread startup failures, stack size considerations, mutex implementation, condition variables, and signal handling in multi-threaded processes.