Politecnico di Bari
Traditionally, operating systems have been in charge of serving as a convenient layer between applications and the bare-metal hardware by both providing an abstraction of hardware itself and allocating available resources to the applications. Both of these roles are becoming ever more important due to the increasing complexity of modern computer architectures. The rise of Chip Multi-Processors (CMP) brought to consolidation of multiple applications and systems (i.e., through hardware-supported virtualization) on a single piece of silicon. Heterogeneous System-on-Chips (SoCs) are becoming ubiquitous, while deep memory hierarchies (i.e., multiple level of caches) are around since the beginning of this millennium.