Most embedded systems today runs multithreaded software on top of Linux or an RTOS. The multithreaded architecture offers many advantages for developers, but it may also make the software more complicated and make system verification difficult.
Read the full article (the article appears on page #30).