Next: Event Channel Service
Up: Abordagem do TAO
Previous: Abordagem do TAO
O Scheduling Service (SS) é definido como um objeto CORBA, i.e., como uma implementação
de uma interface IDL, que pode portanto ser acessado local ou remotamente. Suporta
o escalonamento estático e dinâmico do uso da CPU, através de uma das seguintes
políticas: Rate Monotonic Scheduling (RMS), Earliest Deadline First (EDF), Maximum
Urgency First (MUF), Minimum Laxity First (MLF). A granularidade da especificação
dos parâmetros de QoS está no nível das operações IDL, tanto no lado dos clientes
quanto no dos servidores. Os papéis definidos no modelo do serviço são os seguintes:
- struct RT_info:
- Descritor com o qual o programador especifica e registra o
QoS junto ao objeto Scheduler. O descritor é instanciado pelo Scheduler
sob requisição de seus clientes, que obtem uma referência para o mesmo.
- RT_Operation:
- Qualquer operação de uma interface IDL da aplicação que requisite
e registre um descritor de QoS junto ao Scheduler é definida como uma
RT_Operation.
- Thread:
- Definida no nível do sistema operacional, é a unidade de execução concorrente.
A criação e o designação das prioridades das threads são responsabilidades
do Scheduler, sendo um processo completamente transparente ao programador,
que se concentra em definir
- OS dispatcher:
- O modelo requer que o despacho de threads pelo sistema
operacional seja preemptivo e que as prioridades designadas pelo Scheduler
sejam mantidas, i.e., o escalonador do sistema não pode designar prioridades
dinamicamente para as threads.
- Off-Line Scheduler:
- No escalonamento estático, é a implementação do Scheduler
que, de posse do descritores de QoS de todas as operações de tempo real da aplicação,
realiza a análise de escalonabilidade e, no caso de factibilidade, retorna as
tabelas de escalonamento a serem compiladas e ligadas com o run-time
da aplicação.
- Run-Time Scheduler:
- No escalonamento estático, é a implementação do Scheduler
que garante a execução periódica de threads nos clientes e das requisições
nos servidores em acordo com a tabela de escalonamento previamente gerada e
ligada ao código do run-time.
Figura:
Scheduler Service: passos do escalonamento estático.
|
A sequência de passos envolvidos no escalonamento estático no TAO está representada
na figura 1 e explicada na enumeração abaixo:
- O Scheduling Service constrói grafos de dependências entre as RT_Operations
utilizando as especificações de QoS registradas com ele pela aplicação. Estas
especificações estão guardadas em estruturas RT_Info, conforme descrito acima.
- Pelo exame dos nós terminais dos grafos construídos no passo 1, o SS determina
as threads da aplicação.
- Neste passo, o SS preenche um repositório com estruturas RT_Info realimentadas
com as informações obtidas no passo 2.
- Faz análise da escalonabilidade e atribui prioridades às threads conforme a
escala de execução construída.
- Gera as tabelas de escalonamento como código compilável a ser ligado à aplicação
e usado no passo 6.
- As tabelas de prioridades são acessadas pelas diversas partes do TAO
que delas necessitam através da implementação de run-time do Scheduler.
Nesta fase o Scheduler normalmente habita o espaço de endereçamento local.
Observe-se que os passos de 1 a 5 ocorrem na execução de configuração e que
somente o passo 6 ocorre no run-time da aplicação.
Next: Event Channel Service
Up: Abordagem do TAO
Previous: Abordagem do TAO
Carlos Mitidieri
2000-07-10