next up previous
Next: Event Channel Service Up: Abordagem do TAO Previous: Abordagem do TAO

Scheduling Service

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.
\resizebox* {0.85\textwidth}{!}{\includegraphics{fig1.eps}}

A sequência de passos envolvidos no escalonamento estático no TAO está representada na figura 1 e explicada na enumeração abaixo:

  1. 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.
  2. Pelo exame dos nós terminais dos grafos construídos no passo 1, o SS determina as threads da aplicação.
  3. Neste passo, o SS preenche um repositório com estruturas RT_Info realimentadas com as informações obtidas no passo 2.
  4. Faz análise da escalonabilidade e atribui prioridades às threads conforme a escala de execução construída.
  5. Gera as tabelas de escalonamento como código compilável a ser ligado à aplicação e usado no passo 6.
  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 up previous
Next: Event Channel Service Up: Abordagem do TAO Previous: Abordagem do TAO
Carlos Mitidieri
2000-07-10