Dissertação de mestrado integrado em Engenharia Eletrónica Industrial e ComputadoresThe microprocessor industry is in the midst of a dramatic transformation. Up
until recently, to boost microprocessors’ performance it was solely relied on increasing
clock frequency. Nowadays, however, the power consumption requirements,
coupled with the growing consumer demand, made the industry shift their
focus from singlecore to multicore solutions, which offer an increase in performance,
without a proportional increase in power consumption. The embedded
systems field is no exception and the trend to use multicore solutions has been
rising substantially in the last few years.
Managing control flow is one of the core responsibilities of an operating system.
Bearing this in mind, operating systems suffer from the existence of a bifid
priority space, dictated by the co-existence of synchronous threads, managed by
kernel scheduler, and asynchronous interrupt handlers, scheduled by hardware.
This induces a well-identified problem, termed rate-monotonic priority inversion.
Regarding safety-critical real-time systems, where time and determinism play a
critical role, the inherent possibility of delayed execution of real-time threads by
hardware interrupts with semantically lower priority can have catastrophic consequences
to human life.
Within this context, this dissertation presents the extension of a previous ’inhouse’
project, by proposing the implementation of a unified priority space approach
(Sloth) in a multicore environment. To accomplish this, it is proposed
the offloading of the scheduling decisions and synchronization mechanisms to a
Commercial Off-The-Shelf (COTS) hardware interrupt controller (removing the
need for a software scheduler) on an ARM Cortex-A9 MPCore platform.A indústria de microprocessores está envolta numa transformação dramática.
Até recentemente, para impulsionar a performance, a indústria dependia somente
do aumento gradual da frequência de relógio. Atualmente, os requisitos de consumo
energético, conjugados com as crescentes exigências do consumidor, levaram a
indústria a mudar o seu foco de soluções singlecore para soluções multicore. Estas
oferecem um aumento substancial de performance, sem o proporcional aumento
de consumo energético, característico das arquiteturas singlecore. Os sistemas
embebidos não são excepção e a tendência para a utilização de soluções multicore
tem aumentado substancialmente nos últimos anos.
Uma das principais responsabilidades de um sistema operativo é a gestão do
fluxo de controlo. Neste contexto, os sistemas operativos sofrem da existência de
um espaço de prioridades bifurcado, caracterizado pela existência de tarefas, geridas
pelo escalonador do kernel (software) e de interrupções, escalonadas por hardware.
Introduz-se, assim, um problema bem identificado na comunidade científica,
denominado rate-monotonic priority inversion. Em sistemas de tempo real, em
que a segurança assume um papel fulcral e onde a performance e o determinismo
são essenciais, a possibilidade da execução de tarefas de elevada prioridade ser
atrasada, por interrupções de hardware com prioridade semântica inferior, pode
ter consequências catastróficas para a vida humana.
Neste sentido, esta dissertação apresenta a extensão de um trabalho anterior,
propondo a implementação de um espaço de prioridades unificado (Sloth),
num ambiente multicore. Assim sendo, é proposto o offloading do escalonador e
mecanismos de sincronização para o controlador de interrupções (hardware) numa
plataforma ARM Cortex-A9 MPCore