Dissertação de mestrado em Engenharia Eletrónica Industrial e ComputadoresOs sistemas embebidos apresentam uma enorme heterogeneidade, incluindo desde pequenos controladores, para sistemas inteligentes operados a bateria até sistemas de computação de alto desempenho
em automóveis. Definitivamente, os sistemas embebidos cresceram exponencialmente nos últimos anos,
aumentando o seu nível de complexidade numa multiplicidade de indústrias. Tal facto, aportou naturalmente uma consolidação de várias camadas de critícidade sobre a mesma plataforma.
Para proporcionar um aumento de isolamento e segurança, a indústria começou a recorrer às capacidades da tecnologia de virtualização. A tecnologia de virtualização permitiu a consolidação e o isolamento
de múltiplos subsistemas numa mesma plataforma. Hipervisores, também designados de monitores de
máquinas virtuais, são responsáveis pela gestão dos recursos de hardware para as mesmas.
No entanto, os hipervisores tradicionais não foram desenhados para garantir requisitos de tempo-real
e para as restrições embebidas. Nesse sentido, tanto a indústria com a academia direcionaram esforços
para uma nova arquitectura de virtualização, os chamados hipervisores de partição estática. Um exemplo
destes hipervisores é o Jailhouse que aloca estáticamente o hardware no momento de inicialização. No
entanto, este hipervisor exige que o sistema operativo Linux o inicialize, o que se traduz em desvantagens
em termos de tempo de arranque e segurança.
Para abordar a maioria dos problemas do Jailhouse, o nosso grupo de investigação desenvolveu o Bao.
Bao é um hipervisor estático que não apresenta qualquer dependência externa. Este mesmo hipervisor
já implementa a partição da cache de modo a mitigar as interferências causadas pela contenção da
partilha da mesma entre máquinas virtuais. Contudo, existem outros pontos de contenção na hierarquia
de memória. Assim, a primeira parte desta dissertação concentra-se sobre a implementação de um
mecanismo para regulação da largura da banda de memória, cujo o objectivo é o isolamento temporal
do controlador DRAM. O mecanismo implementado irá ser avaliado para identificar o nível de capacidade
de redução de interferência na DRAM. A segunda fase desta dissertação, explora os possíveis casos de
”side-channel” através do uso de DMAs para avaliar os casos de interferência a nível da plataforma e não
apenas ao nível do CPU.Embedded systems range from tiny controllers in batery-operated smart devices to high-performance
computing systems in cars. Therefore, embedded systems have grown exponentially in recent years in
various industries, and this has lead to increased complexity, that naturally pushed towards consolidation
of several layers of criticality on the same platform.
To provide increasing isolation and security, industry started to leverage the capabilities of virtualization
technology. Virtualization technology enable the consolidation and isolation of multiple subsystems onto
the same platform. Hypervisors, also called as Virtual Machine Monitors are responsible for managing the
hardware resources for different virtual machines (VMs).
However, traditional hypervisors are not designed for real-time requirements and embedded con straints. This lead academia and industry to work towards a new virtualization architecture, the so called
static partitioning hypervisors. These hypervisors statically allocate hardware resources. An example of
a static partitioning hypervisor is Jailhouse, which statically allocates hardware at initialization time to the
different VMs. However, this hypervisor requires the Linux operating system to bootstrap itself, leading to
several bottlenecks in terms of boot time and security.
To address most of the issues of Jailhouse, our research group has developed Bao. Bao is a static
hypervisor that does not have any external dependencies. The Bao hypervisor already implements cache
partitioning to mitigate interference caused by the contention in the shared cache between guests. How ever, there are other points of contention downstream of the memory hierarchy. So the first part of this
dissertation focuses on implementing a mechanism to regulate VM memory bandwidth, where the goal
is the temporal isolation of the Dynamic Random Access Memory memory controller. The implemented
mechanism will be evaluated to identify the extent to which the mechanism helps solve the interference
problems in the DRAM.
The second phase of the dissertation explores possible cases of side-channels through the use of
Direct Memory Accesss to evaluate cases of interference at the platform level and not just at the Central
Processing Unit level