Bachelor and Master Theses

Title:

Multi-resource Server Implementation for Multi-core Architecture

Subject:

Computer Science

Level:

Advanced

Description:

Introduction
Contemporary scheduling of real-time tasks on multi-core architectures is inherently unpredictable, and activities in one core can have negative impact on performance in unrelated parts of the system (on other cores). A major source of such unpredictable negative impact is contention for shared physical memory. In commercially existing hardware, there are currently no mechanisms that allow a subsystem to protect itself from negative impact if other subsystems start stealing its memory bandwidth. For performance-critical real-time systems, overcoming this problem is paramount.
Hierarchical Scheduling Framework (HSF) [1] also called server-based scheduling is used to provide the temporal isolation among components. In hierarchical scheduling the CPU is partitioned into many servers that are scheduled by a global (system-level) scheduler. Using HSF subsystems can be developed and analyzed in isolation from each other. We have experience in implementing a two-level hierarchical scheduling [1, 2] support in an open source real-time operating system, FreeRTOS for single-core architecture. And we have tested our implementations and performed experimental evaluations on AVR-based 32-bit board.

Proposal
Our goal is to develop a multi-resource server technology that allows a subsystem (i.e. a set of tasks allocated to a server) by extending traditional server-resources with associating a memory-bandwidth to each server [4]. Thus a multi-resource server has both CPU-bandwidth and memory bandwidth allocated to it [3]. Further, we want to achieve this goal using Commercial Off-The-Shelf (COTS) hardware. We need a continuous determination and tracking of the consumed memory bandwidth for this server. We propose to use hardware performance counters to determine memory bandwidth for FreeScale P4080 [5] architecture.
The thesis work demands the following activities: (1) Literature study about hierarchical scheduling; (2) understanding the target hardware and software platforms; (3) The design and implementation of multi-resource server and the test of its correctness and efficiency; (4) Writing the thesis; (5) [optional] Writing and publishing a scientific article based on the thesis.