ABSTRACT

This chapter provides an introduction to multicore processors in the context of embedded systems. The first part of the chapter focuses on the motivation behind the widespread diffusion of multicore processors and provides a short overview of their architecture, going from more abstract aspects down to their practical implementation on contemporary ARM processors.

The second part of this chapter is entirely devoted to summarizing the significant challenges introduced by multicore in software development for embedded systems, especially in the areas of task scheduling, schedulability algorithms and analysis, and proper inter-task communication and synchronization. The next chapters will further analyze these issues and discuss some common ways to approach and solve them.