Uma Abordagem Flexível para Escalonar Tarefas Hard e Soft em Sistemas de Tempo Real Multiprocessados
real-time systems, EDF, scheduling, soft tasks, multiprocessors
The increasing number of modern applications, that rely on the processor capacity of multicore CPUs, has been pushing the area of real-time systems towards multiprocessor architecture. In fact, such applications are present in a wide variety of areas, such as automotive, avionics and personal electronics industries, most of them being composed of both time critical (hard) and non-critical (soft) services.
Indeed, for multiprocessor real-time systems that deal with both hard and soft tasks, one is interested in minimizing the response time of the soft tasks, while not jeopardizing timeliness of hard tasks. Several scheduling approaches have been proposed to deal with hard and soft tasks on a single processor, while for a multiprocessor environment such approaches are less common and are typically extensions of the mechanisms described for uniprocessor systems.
This work describes a flexible scheduling approach designed for multiprocessor real-time systems composed of both hard and soft tasks. According to the proposed approach, hard tasks are assigned to processors in an off-line manner and do not migrate during their execution. As for soft tasks, two main configurations are possible. They may be placed either in each processor's local queue, for which migration is not allowed, or in a global queue, being accessed by all processors. The scheduling approach described in this thesis is strictly linked to the concept of servers, which are scheduling proxies responsible for scheduling the tasks (or other servers) assigned to them. Two special servers are described, whose definition, rules and correctness proof are also presented in this thesis. Together, these servers are able to (a) encapsulate soft tasks so that their execution does not put at risk the timing requirements of hard tasks and to (b) reclaim system unused slack to favor the execution of soft tasks. By doing so, the average response time of soft tasks are improved, without jeopardizing the timeliness of hard tasks.