Advanced Embedded Systems ITRONIX CERTIFIED

Linux Multithreaded Programming Industrial Training


Course Title

Linux Multithreaded Architecture & Programming

Course Overview

This intensive training course teaches about multi-threaded, multi-core, parallel and/or concurrent programming techniques & architectures using Linux and C. Besides explaining about user and kernel level threads, it helps attendees understand the difference between single thread/process model and multithreaded programming models, thereby allowing the programmer to understand the intricacies involved in developing multithreaded, multi-core, parallel and/or concurrent programs and how to troubleshoot them.
The hands-on lab familiarize attendees with multithreaded programming model with threads creation and execution followed by complex scenarios likes races, synchronization, deadlock situation and troubleshooting them. The lab will consist of pthreads library in a Linux environment.

Course Highlights

  1. Course will be delivered by our Founder/Director who is an Expert with 17+ years of experience in Linux Kernel and SAN software development.
  2. The course flow will be an assignment driven model so that participants can have a hands-on experience of multithreaded and parallel programming techniques.

Course Delivery

  1. Lectures, Classroom Discussions and Lab Exercises
  2. 30% Theory, 70% Lab
  3. Location: Sanfoundry Institute, Bangalore, India


  1. A sound knowledge of C programming language
  2. Linux/Unix Systems Programming

Target Audience

IT Professionals / Developers who are doing development & sustenance of complex system software products in any domain (systems, kernels, databases, search engines, applications, browsers, routers,  switches, etc…)

Course Details

  1. Introduction to Threads
  2. Parallelism
  3. Multi-cores
  4. Introduction to Thread
  5. Threads – Application
  6. User Level Threads (ULT)
  7. Advantage of ULT
  8. Disadvantage of ULT
  9. Kernel Level Threads (KLT)
  10. Advantage of KLT
  11. Disadvantage of KLT
  12. Threads Vs Processes
  13. Process Memory Layout
  14. Child Process Memory
  15. Threads Inside Processes
  16. Thread Memory Layout
  17. Thread Programming – I
  18. Introduction to Pthreads (POSIX Threads)
  19. Thread Creation
  20. Thread Termination
  21. Thread Id & Attributes
  22. Thread Joining & Detaching
  23. Thread Priorities
  24. Thread Cancellations
  25. Thread Cleanup Handling
  26. Passing Info to Threads
  27. Thread Programming – II
  28. Thread Synchronizations
  29. Mutual Exclusions
  30. Condition Variables
  31. Thread Safe Operations
  32. Thread Signal Handling
  33. Thread Signal Masking
  34. Issues @ Threads
  35. Races & Deadlocks
  36. Threads  & Process Resources
  37. Threads – File Handling
  38. Threads – IPC Handling