Projeto de Formatura – Turmas 2009
PCS - Departamento de Engenharia
de Computação e Sistemas Digitais
Engenharia de Computação
Otimização do escalonador de processos para aplicações
soft real-time em sistemas multi-core com tarefas colaborativas
Motivação
Concepção
A necessidade de tarefas real-time em dispositivos comuns
O primeiro passo para um estudo das otimizações possíveis é uma análise de
do nosso dia-a-dia vem aumentando a cada dia: seja para
benchmarks das aplicações que se quer otimizar. Utilizando ferramentas como
processamento de áudio e vídeo, que têm uma
perf, oprofile, ftrace, sched_switch e gtkwave é possível ter uma visão bem
determinada exigência no tempo gasto para processar
próxima do que está acontecendo dentro do kernel do sistema operacional.
cada frame ou pedaço de áudio, seja para o controle
Particularmente nosso interesse é saber como, quando e em qual processador
de dispositivos físicos como motores elétricos presentes
cada tarefa é alocada.
em impressoras, portões eletrônicos, vidros elétricos, etc. Por outro lado, a
utilização de sistemas projetados especificamente para essas tarefas envolvem
gastos exorbitantes e muitas vezes proibitivos para o sucesso de produtos no
mercado. Como conseqüência, a adaptação de sistemas operacionais general
purpose, como o Linux, vem sendo pesquisada e realizada por diversas
empresas e pela Academia para que possa ser utilizado nesse tipo de tarefa.
Objetivo
O objetivo desse projeto é estudar as diversas otimizações
que podem ser feitas no escalonador de processos do
sistema operacional Linux para tarefas com exigências
real-time. Para a utilização de sistemas com vários processadores (ou vários
núcleos em um mesmo processador), a aplicação real-time é tipicamente
dividida em diversas tarefas menores que colaboram entre si, sendo cada uma
responsável pelo processamento de uma determinada parte da informação.
Otimizações realizadas:
 Diminuir o tempo necessário para uma tarefa sair do estado de
dormindo para o estado de rodando;
 Mover as tarefas para perto de onde os dados estão sendo produzidos.
Devido à organização de memória em uma arquitetura multi-core,
aumenta a probabilidade de os dados necessários estejam no cache local
de mais baixo nível. Em última instância, o tempo de execução de cada
tarefa é diminuído;
Produtor
1
 Quando uma tarefa está deixando o processador é melhor “acordar” a
próxima tarefa no mesmo processador do que colocá-la em um outro:
Mixer 1
entre outros fatores, há uma redução na quantidade de sincronizações
Produtor
2
(mutexes e spinlocks) necessários dentro do kernel.
Mixer
final
Produtor
3
Conclusões
Os resultados dos benchmarks realizados utilizando as otimizações mostram
Mixer 2
que é possível melhorar o desempenho e o determinismo no escalonamento
de processos do sistema operacional Linux em aplicações com tarefas
Produtor
4
colaborativas. O determinismo no tempo de execução de cada tarefa é
particularmente importante para tarefas real-time e pôde ser melhorado
através das soluções apresentadas neste trabalho.
Autor:
Lucas Martins De Marchi ([email protected])
Orientadora:
Prof.ª Dra. Liria Matsumoto Sato ([email protected])
Download

Apresentação do PowerPoint