A crescente concorrência nos meios industriais leva as indústrias a tentarem optimizar a sua produção quer em termos de redução de custos quer de qualidade de produtos. O investimento cada vez maior na automação industrial é consequência desse factor. Para atingir os elevados níveis de automação, os sistemas industriais tomaram-se cada vez mais complexos, o número de equipamento instalado aumentou consideravelmente. A medida que a indústria requer maior poder de processamento, maior robustez, flexibilidade e modularidade, os sistemas de automação industrial tomam-se cada vez mais abrangentes, usando equipamento inteligente espalhado por toda a fábrica e ligado por uma ou várias redes de comunicação.
Em certos tipos de redes locais industriais, de que é exemplo o FIP - Factov Instrulnentation Protocol, o fluxo de informação periódica é controlado pelo estabelecimento de janelas temporais específicas nas quais devem ser transmitidas as variáveis dos processos. Essas janelas são definidas numa tabela de escalonamento off- line com base nos períodos de amostragem das diferentes variáveis do processo. A construção da tabela, ou escalonamento, pode ser baseada em algoritmos conhecidos ou em regras particulares.
No caso particular do FIP, a tabela de escalonamento é construída off-line e é carregada no árbitro de barramento e em todos os nodos que o podem substituir como árbitro em caso de falha daquele. Tal procedimento põe sérias restrições à alteração das características das variáveis ou à introdução de novas variáveis, sendo necessário parar todo o sistema para reconfiguração da tabela de escalonamento dos árbitros. Outro método de escalonamento poderá ser estudado com vista a melhorar o desempenho desse tipo de sistemas.
estático, dinâmico e, em particular, escalonamento por planos. Uma solução baseada em escalonamento por planos é aplicada num pequeno sistema construído para permitir a realização de testes experimentais.
O sistema é implementado por forma a constituir um sistema distribuído de tempo real crítico. Neste tipo de sistemas, os resultados são validados não só pelo valor calculado mas também pelo instante em que estão a ser consumidos, isto é, resultados fora do prazo, apesar de inicialmente correctos, podem tomar-se errados por desactualização. Nestes sistemas distribuídos, os diversos nodos inteligentes (nodos com capacidade de processamento) estão espalhados por todo o ambiente industrial e comunicam entre si através do barramento a que estão ligados. Neste caso, não só o atraso de produção dos dados deve ser determinístico mas também deve ser limitado o atraso que sofrem nas comunicações entre nodos e mesmo no processo de recepção.
O sistema de teste é constituído por três estações. Uma delas assume as funções de árbitro do barramento (BA). O árbitro é o responsável pela elaboração de planos que indicam qual a variável que deverá circular no barramento num dado instante. É também responsável por convidar a estação produtora dessa variável a enviá-la para o barramento. As outras duas estações produzem elou consomem as referidas variáveis. O protocolo de comunicação entre as estações é definido segundo o modelo Produtor(es) -
Distribuidor
- Consumidor(es).
Palavras chave:
Sistemas Distribuidos
Redes Locais Industriais
(Barramentos
de
campo).
I.
LISTA DE EQUAÇOES...
m
n
.
LISTA DE FIGURAS...
rv
111.
LISTA DE TABELAS...
V 2.
BARRAMENTO INDUSTRIAL...
5 2.1 CONCEITOS...
6 2.1.1 Ciclo-elementar e macro-ciclo...
62.1.2 Modelo Produtor(es) - Distribuidor - Consumidor(es) ... 7
...
2.1.3 Caracterização das transacções ... 92.1.4 Tarejàs versus mensagens ... 10
2.2 ESCALONAMENTO TEMPO REAL
...
112.2.1 Escalonamento estático -protocolo FIP ... 12
2.2.2 Escalonamento dinâmico
...
142.2.3 Escalonamento por planos @lanning schedule) ... 16
2.2.4 Análise de escalonabilidade ... 18
2.3 CONCLUS~ES
...
223
.
PROJECTO DO SISTEMA IMPLEMENTADO...
243.1 DESCRIÇÃO DO ÁRBITRO DE BARRAMENTO
...
24. . .
3.1.1 Tabela de varzaveis ...... ...
263.1.2 Scheduler
...
283.1.2.1 Estruturas envolvidas
...
28...
3.1.3.2 Funcionamento do dispatcher 35
3.1.4 Interface com o barramento
...
363.1.4.1 Verificação temporal
...
40-
3.1.5 Integraçao dos módulos...
41...
3.2 DESCRIÇÃO DAS ESTAÇÕES 43...
3.2.1 Tabela de produção/consumo 45 3.2.2 Interface com o barramento...
48...
3.3 EXEMPLO DE TRANSACÇÕES NO BARRAMENTO 50...
4.
SISTEMA JMPLEMENTADO 53...
4.1 COMUNICAÇ~ES NO BARRAMENTO 53 4.2 CONTROLO TEMPORAL...
56...
4.3 DESCRIÇÃO DO ARBITRO DE BARRAMENTO 59. . .
4.3.1 Tabela de variavea...
604.3.2 Schedziler e estrzituras associadas
...
614.3.3 Dispatcher e estrzituras associadas
...
624.3.4 Interface com o barramento ... 65
4.4 DESCRIÇÃO DAS ESTAÇÕES
...
664.4.1 Tabela deprodzição/consumo
...
674.4.2 Interface com o barramento
...
684.5 CENARIO DE FUNCIONAMENTO DO BA E ESTAÇÕES
...
684.6 RESULTADOS EXPERIMENTAIS
...
...
...
695
.
CONCLUS~ES...
786
.
GLOSSÁRIO DE TERMOS E ABREVIAÇÕES...
81Equação 2.1 -Expressão do número mhimo de vezes que o scheduler é invocado
...
17Equação 2.2 -Limite do factor de utiIização num sistema monoprocessador
...
20Equação 2.3 - Limite do factor de utilização no sistema implenzentado ... 21
Equação 2.4 . Expressão do cúlculo do tempo desperdiçado do barramento
...
22Equação 4.1 - Cúlculo da dimensão do campo de dados da mensagem
...
55Equação 4.2
-
Quociente entre o tempo de schedule e o tamanho do plano (Exp . 1) ... 72... Equação 4.3 - Tempo de schedule (Exp
. 2)
73...
Equação 4.4 - Tempo de schedule (Exp.
3 e Exp.
4)....
....
....
....
....
...
75...
Figura 2.1 -Definição de ciclo-elementar e macro.ciclo 7...
.
.
Figura 2.2 . Modelo Produtor(es) Distribuidor Consumidor(es) 9
...
Figura 2.3 . Diagrama de um escalonamento estático 13...
Figura 2.4 -Diagrama de um escalonamento dinâmico 15Figura 2.5 -Diagrama de um escalonamentoporpla7tos
... 16
...
Figura 2.6 . Diagrama da atribuição de bus time slotsporparte do scheduler 21 Figura 3.1 . Esquema do Árbitro de Barramento modificado...
26...
Figura 3.2 . Exenplo do conteúdo da lista e tabela de variáveis 28 ... Figura 3.3 . Lista de reservas (tabela de escalonamento ou plano) 29...
Figura 3.4 . D i a p t a de fluxo de sinal do scheduler 30...
Figura 3.5 . Escalonaine~zto durante um macro-ciclo (MMC de períodos) 32...
Figura 3.6.
Escalona~tiento por planos 33...
Figura 3.7 - Esquema de firi~cionamento do dispatcher 34 ... Figura 3.8 - Tabela de dispatcl~ 35 ... Figura 3.9 - Mecanisinos de protecção no arranque do dispatcher no início de cada Ec 36 Figura 3.10-
Estrutura da traina...
37Figura 3.11 - Diagra~ita do canpo de comando da trama
...
37Figura 3.12- Diagrama de fluxo de sinal da transmissão de cada caracter (no BA)
...
38Figura 3.13 - Diagrama dejluro de sinal da recepção de cada caracter (no BA) ... 39
...
Figura 3.14-
Diagrama da verificação temporal das transacções (no BA) 41 Figura 3.15 - Diagrama da integração dos módulos (no BA)... 43
Figura 3.16 - Esquema de uma estação
...
43Figura 3.1 7 - Conteúdo da lista e tabela de produção/consumo de variáveis
...
45Figura 3.18
-
Processo de verificação dos estados de cada variável (na estação)...
47Figura 3.19 -Diagrama de fluxo de sinal da recepção de cada caracter (na estação)
...
49...
Figura 3.20 - Diagrama da verificação temporal das transacções (na estação) 50...
Figura 3.21 -Possível cenário de funcionamento do BA e estações 52Tabela 2.1 . Características do escalonamento estático. dinâmico e planning
...
23Tabela 4.1 . Experiências deJinidas com base no KUB
...
71Tabela 4.2 . Conjuntos PHdas variáveis usadas nas experiências
...
.
.
...
71A crescente concorrência nos meios industriais leva as indústrias a tentarem optimizar a sua produção quer em termos de redução de custos quer de qualidade de produtos. O investimento cada vez maior na automação industrial é consequência desse factor. Nunca antes foram utilizados níveis de automação tão elevados como actualmente. Para atingir estes níveis de automação, os sistemas industriais tomaram-se cada vez mais complexos, o número de equipamento instalado aumentou consideravelmente (sensores, actuadores e controladores espalhados por todo o ambiente industrial). A medida que a indústria requer maior poder de processamento, maior robustez, flexibilidade e modularidade, os sistemas de automação industrial tomam-se cada vez mais abrangentes, usando equipamento inteligente espalhado por toda a fábrica e ligado por uma ou várias redes de comunicação.
Uma das topologias de rede que tem suscitado mais interesse nos ambientes industriais é
a topologia em barramento (bzis). Neste tipo de redes, o custo da cablagem é mínimo, a manutenção simples e a modularidade elevada. Devido à sua utilização ao mais baixo nível da fábrica (que assume a designação de campo
-
field na terminologia inglesa), estas redes são conhecidas por barramentos de campo fleldbus). Destinam-se, pois, a transmissão de resultados de medidas, cálculos e comandos. Como sobre estes barramentos circulam os dados utilizados em malhas de controlo de processos, as restrições temporais associadas a estes dados deverão ser cumpridas, sob pena de existir risco para as vidas humanas, equipamento e/ou ambiente. Trata-se, pois, de sistemas distribuídos de tempo real crítico. Neste tipo de sistemas, os resultados são validados não só pelo valor calculado mas também pelos instantes em que estão a ser consumidos, isto é, resultados fora dos prazos podem estar desactualizados, logo devem ser considerados errados.comunicar entre si. A transmissão de cada mensagem não pode ser interrompida, pelo que o barramento é um sistema não preemptivo.
Para garantir o cumprimento das restrições temporais dos dados, o acesso ao barramento deve ser efectuado de forma determinística. O barramento de campo
F P
(FactovInsbumentation Protocol) resolve o problema utilizando um árbitro de barramento
centralizado (BA - Bus Arbitrator) que utiliza um esquema de escalonamento estático para iniciar as transacções requeridas. O escalonamento é feito off-line e a resultante escala de transmissão é carregada na memória local do BA antes do arranque do funcionamento do sistema. Essa escala permite ao árbitro comandar a transmissão de variáveis periódicas. A transmissão de informação apenódica é deixada para os períodos de disponibilidade do barramento.
O escalonamento off-line é inconveniente para sistemas dinâmicos por não permitir que as suas características sejam alteradas on-line. Para evitar esta inflexibilidade, poderá ser usado o escalonamento dinâmico ou, conforme se propõe neste trabalho, o escalonamento por planos.
1.1
Objectivos
Pretende-se com este trabalho desenvolver e testar um método de escalonamento que permita obter maior flexibilidade numa rede tipo FIP. Isto permitirá, por exemplo, adicionar elou retirar sensores da rede industrial sem que para isso seja necessário desligar todo o sistema.
Para a validação deste método pretende-se desenvolver um sistema que implemente uma pequena rede industrial.
Pretende-se ainda que este sistema seja simples e que possa utilizar equipamento de baixo poder de cálculo.
1.2 Organização
No capítulo 2, são apresentados alguns conceitos necessários ao desenvolvimento deste trabalho, nomeadamente o mecanismo de troca de dados entre as estações e a caracterização das variáveis que circulam no barramento. São também estudados três métodos de escalonamento: o estático, o dinâmico e o escalonamento por planos
(planning scheduling).
No capítulo 3, é explicado o projecto do sistema a implementar, dividido nos seus módulos funcionais e sendo indicadas as respectivas especificações.
No capítulo 4, apresenta-se o sistema. Fazem-se considerações sobre a definição das variáveis que circulam no barramento tendo em conta as características das estações e descreve-se o sistema por módulos funcionais. Os testes efectuados para avaliar o método de escalonamento por planos são ainda descritos e os respectivos resultados analisados.
No capítulo 5, apresentam-se as conclusões e propostas para trabalhos futuros.
1.3 Contribuições
Com o algoritmo de escalonamento por planos apresentado podem-se instalar novos sensores na rede industrial e adicionar os correspondentes identificadores à tabela de variáveis a escalonar sem que para tal seja necessário desligar todo o sistema. Este melhoramento permite um aumento da rentabilidade da instalação onde o sistema se insere. Efectivamente, cada vez que um sistema industrial pára, não produz, além de que as paragens e arranques implicam maiores consumos de manutenção, energia e tempo. A reconfiguração dinâmica será pois particularmente importante em fases de arranque ou reconfiguração da instalação.
Pode-se também utilizar o sistema implementado em pequenas instalações desde que as variáveis de interesse apresentem restrições temporais compatíveis com as características do equipamento das estações e de comunicação.
Devido ao grande desenvolvimento tecnológico na área da informática, da electrónica e das comunicações, é hojepossível obter níveis de automação bastante elevados nos meios industriais. Para atingir estes níveis de automação, os sistemas industriais tomaram-se cada vez mais complexos. Cada vez há mais equipamento inteligente (sensores, actuadores e controladores) espalhado por toda a fábrica, portanto o sistema toma-se distribuído.
Para obter maiores rendimentos, a indústria necessita produzir, em menor tempo e com menos custos, produtos de melhor qualidade. Para atingir esse objectivo, o equipamento deve ter maior poder de processamento, ser mais robusto relativamente a falhas e mau funcionamento e deve, também, ser flexível. Um sistema flexível deve permitir a sua reconfiguração sempre que haja necessidade de introduzir alterações sem que tal implique a sua paragem.
Como foi referido, os sistemas industriais usam equipamento inteligente espalhado por todo o ambiente industrial e ligado por uma rede de comunicações do tipo bus. A rápida aceitação deste tipo de conexão deve-se à minimização do custo da cablagem, à
simplificação que introduz na manutenção e à elevada modularidade que confere ao permitir ligar elou desligar qualquer equipamento em qualquer ponto da rede. E sobre o barramento de campo (como é geralmente chamado este tipo de rede industrial) que circulam os dados utilizados em malhas de controlo de processos. As restrições temporais associadas aos dados deverão pois ser cumpridas, sob pena de risco para vidas humanas, equipamento elou ambiente.
Para garantir o cumprimento das restrições temporais dos dados, o acesso ao barramento deve ser determinístico. Tal só é possível com uma arbitragem de tempo real. Uma das soluções para este problema pode ser observada no barramento de campo FIP (Factory Znstrumentation Protocol) que usa um esquema de arbitragem do
acesso ao barramento do tipo TDM (Time Division Multiplex) [Che 881 onde são reservados tempos de barramento para cada transacção. Neste esquema de arbitragem, existe um árbitro centralizado do barramento (BA) que usa um escalonamento estático para iniciar as transacções periódicas. Este escalonamento, produzido off-line, tem como resultado uma tabela que é carregada na memória local do BA antes do início do funcionamento do sistema. Este processo é pouco prático em sistemas dinâmicos cujas características têm de ser alteradas on-line. Para colmatar esta inflexibilidade, poderão ser usados outros esquemas de escalonamento [Car 951.
Demonstraremos, neste trabalho, que a utilização de um escalonamento por planos pode ajudar a resolver a inflexibilidade referida. Este tipo de escalonamento parece representar um bom compromisso entre o escalonamento estático e o dinâmico.
2.1 Conceitos
Para fazer o estudo dos diversos tipos de escalonamento das variáveis a difundir pelo barramento de campo FIP toma-se necessário definir alguns conceitos pertinentes.
2.1.1 Ciclo-elementar
e
macro-cicloEm certos tipos de redes industriais, de que é exemplo o FIP [Let
921,
as variáveis periódicas envolvidas no sistema são transmitidas pelo barramento durante janelas temporais definidas para o efeito. A duração destas janelas édefinida off-line, na altura da configuração do sistema.
A
janela é designada por ciclo-elementar (Ec).Em cada Ec, são difundidas diferentes variáveis. Uma vez que as variáveis são periódicas, o período mínimo admissível será de um Ec. Se houver alguma variável nesta situação, ela será transmitida em todas as janelas temporais, como
Ecl Ec2 Ec3 ... Eci
...
macro-ciclo
Figura 2.1 - Definisão de ciclo-elementar e macro-ciclo.
Dado um conjunto de variáveis periódicas, ao fim de um determinado intervalo de tempo, a ordem com que foram difundidas volta-se a repetir. Este intervalo de tempo corresponde ao mínimo múltiplo comum (MMC) dos períodos das variáveis [Law 8 11 e é designado por macro-ciclo (Mc).
2.1.2 Modelo Produtor(es)
-
Distribuidor-
Consurnidor(es)Este modelo de comunicação é utilizado em sistemas cujos nodos consumidores necessitem de dados provenientes de um ou vários nodos produtores e quando existe uma entidade que controla a distribuição. Pode ser aplicado em situações nas quais existam restrições temporais tais que os dados devam ser produzidos e/ou difundidos numa janela de tempo bem definida. Para resolver este problema, o distribuidor decide quais os dados que deverão ser difundidos e em que janela temporal o deve fazer. [Let
921, [Tho 941 e [Pas 951.
O equipamento que realiza a função de árbitro de barramento (BA) dispõe na sua memória local de um conjunto de identificadores que correspondem, cada um, a uma única variável do sistema. Estas variáveis poderão ser a temperatura produzida por um sensor, a velocidade, a pressão, a posição, etc.
Além do conjunto de identificadores das variáveis, o BA dispõe também das correspondentes periodicidades de difusão no barramento, assim como das respectivas
dimensões em bytes (ou do seu tipo, o que nos casos comuns permite obter essa informação).
Cada nodo do barramento, designado por estação (e baseado em microprocessador), dispõe também de um conjunto de identificadores correspondentes a cada variável que produz e consome, assim como informação sobre as respectivas dimensões e periodicidade com que deverão ser produzidas ou consumidas.
Após o scheduler ter criado, segundo o critério adoptado, a tabela de escalonamento das variáveis que deverão ser difundidas, o dispatcher convida a estação produtora de cada variável a enviá-la pelo barramento. Para isso, difunde o identificador da variável numa trama própria.
Quando este convite é difundido pelo barramento, cada estação reconhece-se como:
1. Produtora da variável. Se é a estação quem gera o valor da variável. Esse valor pode ser produzido internamente ou por algum sensor, ligado à
estação, que o leia.
2. Consumidora da variável. Se a estação, por exemplo, controla algum processo em que essa variável é uma das entradas de controlo. Essa variável pode ser a temperatura de um fomo cerâmico controlado pela estação. Ao aperceber-se do convite de produção, a estação sabe que a seguir será difundido o valor dessa variável que faz parte da sua lista de consumo.
3. Indiferente à variável. Se for indiferente para a estação. Neste caso, a estação ignora o valor da variável que vai ser difundido a seguir.
Nesta altura, a estação produtora difunde o valor da variável pelo barramento e todas as estações que se reconheceram como consumidoras, copiam-na (praticamente ao mesmo tempo) do barramento para as suas memórias locais. Deste modo, garante-se que todas as instâncias de cada variável são iguais em todas as estações. Feito isto, o
BA passa a processar o identificador seguinte da sua tabela de escalonamento. A
Fi-ma 2.2 representa as diferentes fases de toda a transacção efectuada sobre o barramento. Este modelo está descrito em [Let 921 e [Car 94bl.
... . ' p .. r
c
: ;: .., .; ... . . . . . . valor 6. A. bus I I . . . ..: ... . .? ~:.p.. :':Figura 2.2 - Modelo Produtor(es) -Distribuidor - Consurnidor(es).
... ...
. .
2.1.3
Caracterização das transacções
1 I bus
Cada transacção Trans; efectuada no barramento contém a mensagem de convite
i
produção da variável Vari e a mensagem com o valor dessa variável. O tempo reservado para a transacção deve incluir também os possíveis atrasos no barramento e/ou em algum processarnento de recepção ou transmissão das mensagens.
Cada Transi é caracterizada pelo:
- período Ti - periodicidade com que a variável i é produzida, múltiplo inteiro do ciclo-elementar Ec,
- prazo crítico Di
- instante em que Transi tem que ter a sua execução
terminada (no sistema a implementar, considera-se que o prazo crítico de uma dada transacção é igual ao seu período, Di = Ti) e- tempo de execução Ci - tempo necessário para o BA difundir o convite de produção de Vari, para a estação produtora enviar para o barramento o valor da variável e o tempo adicional que inclui os possíveis atrasos no barramento elou em algum processamento de recepção ou transmissão das mensagens.
A execução de cada Transi não pode ser interrompida. Trata-se de um sistema não preemptivo.
Para verificar se são cumpridas as restrições temporais de cada variável, são associados a cada uma dois sinais lógicos (variáveis de estado) designados por refrescamento e prontidão. O sinal de refrescamento (refreshness) toma o valor TRUE sempre que a variável é produzida antes de terminar o tempo marcado pelo seu temporizador. Este temporizador é inicializado sempre que a respectiva variável
é actualizada na memória local do produtor. O sinal de prontidão @romptness) toma o valor TRUE sempre que a variável a consumir é copiada, do barramento para a memória local da estação, antes de terminar o tempo marcado pelo seu temporizador. Este temporizador é inicializado sempre que a respectiva variável é
actualizada na memória local do(s) consumidor(es).
2.1.4 Tarefas versus mensagens
Tomando em atenção as propriedades das tarefas a realizar num sistema monoprocessador e as propriedades das mensagens que contém as variáveis a difundir no barramento, reparamos que o escalonamento destas últimas pode ser estudado como se do escalonamento de tarefas se tratasse. É apresentada em [Car 94a] e [Car 951 uma análise detalhada do paralelismo tarefas-mensagens:
-Se as tarefas competem pela posse do processador, as mensagens competem pela posse do barramento.
-Se as tarefas possuem certas características tempo real tais como período, prazo crítico e tempo de execução, as mensagens possuem características semelhantes tais como período, prazo crítico e dimensão da mensagem a difundir.
-Se o tempo de execução é o tempo de utilização do processador por parte da tarefa, a dimensão da mensagem determina o tempo de utilização do barramento por parte desta.
-Se as tarefas são escalonadas para o processador pelo scheduler que está implementado no sistema monoprocessador, as variáveis a difundir no barramento são escalonadas pelo scheduler implementado no árbitro de barramento.
Podem-se então utilizar os resultados do escalonamento de tarefas (bastante estudados) no escalonamento de mensagens [Tin 951 e [Sha 931.
2.2
Escalonamento tempo realO escalonamento tempo real envolve a alocação de recursos e tempo para as tarefas de modo que os seus requisitos temporais se verifiquem. Fazendo a análise de escalonabilidade (schedz~labilip analysis) do conjunto de variáveis a difundir, pode-se prever se as correspondentes transações do sistema tempo real verificarão ou não as suas restrições temporais. O escalonamento é, pois, um dos principais problemas dos sistemas tempo real [Rarn 941.
No caso do escalonamento estático, considera-se que as propriedades do conjunto de variáveis não varia. Por conseguinte, a análise de escalonabilidade e o escalonamento são realizados uma só vez, antes de se iniciar o funcionamento do sistema. A tabela resultante do escalonamento é usada em tempo de execução (run-time) para decidir quando e qual a transacção que deve ser iniciada. Este tipo de escalonamento é
No caso do escalonamento dinâmico ou por planos, deve-se recorrer a um analisador de escalonabilidade sempre que se pretenda modificar o conjunto de variáveis a difundir. A análise será feita em tempo de execução e as modificações só serão aceites se e só se as restrições temporais de todo o conjunto de variáveis forem satisfeitas.
2.2.1 Escalonamento estático
-
protocoloFIP
No escalonamento estático, as transações são previstas de modo que os seus prazos críticos se verificarão mesmo no pior dos casos. Para transacções periódicas, existe um escalonamento possível Veasible) se e só se existir um escalonamento possível para o mínimo múltiplo comum dos períodos [Law 811. De facto, em tempo de execução, a ordem com que as tarefas são executadas é repetida todos as MMC unidades de tempo.
É por isso que o schedziler elabora um escalonamento de tamanho igual ao MMC dos períodos das transações.
O protocolo FIP usa
um
esquema de multiplexagem no tempo (TDM) [Che 881 para reservar intervalos de tempo (bus time slots) impossíveis de serem interrompidos (non- preempti~e). Cada intervalo de tempo é usado para a transacção de uma variável no barramento. Como já foi referido, essa reserva é controlada pelo BA de acordo com um escalonamento estático periódico [Car 951 e [Let 921.Antes do início do funcionamento do sistema, é construída uma tabela de escalonamento segundo, por exemplo, o critério Rate-Monotonic [Liu 731 e [Kle 931. Segundo esta heurística, é seleccionada em primeiro lugar a transacção com o menor período. A tabela de escalonamento é então carregada na memória local do BA. Em tempo de execução, o
BA
lê esta tabela sequencialmente e sabe, em cada instante, qual a variável que deverá ser difundida pelo barramento (Figura 2.3).id bytes período tipo tempo
. . . ...
...
... ......
... ... ...
... ... ...
Tabela de variáveis
I
(off-/fine) (On-iine)v
Difunde cada variável para o bus
Figura 2.3 -Diagrama de um escalonamento estático.
Devido as características do escalonamento estático realizado off-line, o protocolo FIP tem algumas vantagens e inconvenientes inerentes ao uso desse tipo de scheduler. Eis
algumas das vantagens:
Determinismo total. O schedzrler 08-line utiliza as características das
variáveis para produzir uma tabela de escalonamento periódica (Mc) que descreve completamente toda a actividade no barramento. Sempre que for possível elaborar uma tabela de escalonamento em que todas as restrições temporais são verificadas, a escalonabilidade de todo o conjunto de variáveis é garantida para todo o funcionamento do sistema.
O custo de desempenho on-line é baixo. A produção de uma tabela de escalonamento estática é, quase sempre, computacionalmente intensiva. Contudo, como ela é feita uma só vez e off-line, antes da inicialização do
funcionamento do sistema, este custo de desempenho não é considerado. Uma vez construída a tabela, ela é colocada na memória local do BA. O envio (dispatch) on-line das variáveis pelo barramento é bastante rápido e o custo de desempenho (overhead) introduzido é bastante baixo, o que permite maiores velocidades de transmissão sobre o barramento.
Por outro lado, os maiores inconvenientes são:
Inflexibilidade operacional. Talvez seja este o maior inconveniente, pois sempre que existir uma alteração no conjunto de variáveis (novo sensor ligado ao barramento, por exemplo), todo o sistema tem que parar para receber a nova tabela de escalonamento, reflectindo as alterações efectuadas. Só depois, o sistema pode reiniciar o seu funcionamento.
Tamanho do escalonamento potencialmente enorme. Em processos industriais complexos, o número de equipamentos ligados a um barramento de campo pode chegar facilmente às centenas. No caso da amostragem periódica de centenas de variáveis cujos períodos sejam grandes e primos entre si, o mínimo múltiplo comum MMC dos penodos poderá ser enorme. Tal implica que a tabela de escalonamento também seja enorme, necessitando de grandes quantidades de memória local no BA.
Uma das possíveis formas de melhorar a flexibilidade do protocolo FIP é
recorrer ao uso de schedulers dinâmicos.
2.2.2 Escalonamento dinâmico
Nos sistemas que usam schedulers dinâmicos, é calculado um valor de prioridade para cada transacção baseado nas características da mesma. O scheduler selecciona a variável cuja transacção se irá iniciar de acordo com as respectivas prioridades. É claro que o maior inconveniente neste tipo de escalonamento é a falta de previsão (predictability) e a sua sub-optimabilidade (um algoritmo de escalonamento dinâmico
é óptimo se produz sempre um escalonamento possível quando um algoritmo de escalonamento com total conhecimento apriorístico das transacções o pode produzir). Contudo, na maior parte das situações do mundo real, não existe um algoritmo dinâmico óptimo [Che 891, [Der 891, [Hon 881 e [Mok 831. Até expirar o prazo ou a transacção finalizar, não se sabe se a restrição temporal foi verificada, o que é um grande inconveniente.
Por outro lado, a grande flexibilidade destes schedulers poderia permitir introduzir uma configuração on-line no protocolo FIP. Ao contrário do scheduler estático, o scheduler dinâmico só determina a próxima variável a ser difundida para o barramento, escolhendo-a de todo o conjunto de variáveis utilizando um determinado critério (Figura 2.4). Terá pois de ser invocado aquando do término de cada transacção. Qualquer alteração entre duas invocações consecutivas poderá ser introduzida no conjunto de variáveis e imediatamente tida em conta pelo scheduler.
Neste tipo de escalonamento, o scheduler só precisa da memória necessária para suportar a tabela de variáveis, ocupando, obviamente, menos espaço que a tabela do scheduler estático (Mc).
I
id byies período tipo tempoI
1
. . .
2 . . .
:I:
:::
k~
Scheduler Difunde cada3
. . .
. . .
& Dispatcher variável para o bus/
N . . .. . .
Tabela de variáveis (Totalmente On-lhe)
Figura 2.4 - Diagrama de um escalonamento dinâmico.
Os inconvenientes inerentes a este tipo de schedulers são o considerável overhead introduzido on-line e a incapacidade de garantir a escalonabilidade futura do conjunto de variáveis. Nestas situações, deve-se recorrer a um analisador de escalonabilidade que será invocado sempre que houver uma alteração no conjunto de variáveis, de modo a garantir a correcta operacionalidade do sistema [Che 881, [Sta 951 e [Kle 931.
É de salientar que os schedulers estáticos e dinâmicos podem ser considerados os extremos de uma série de possíveis schedulers. Um bom compromisso entre estes dois extremos pode ser o scheduler por planos @lanning scheduler) apresentado em [Pas 961.
2.2.3 Escalonamento por planos (planning schedule)
Este tipo de escalonamento permite combinar a flexibilidade dos dinâmicos e a previsão dos estáticos. De facto, ao passo que o scheduler dinâmico só selecciona a próxima transacção a efectuar no barramento, o scheduler por planos (Figura 2.5) selecciona as próximas transações a efectuar durante um intervalo de tempo predefinido designado por plano. O escalonamento é, pois, estático durante cada plano, sendo actualizado pelo scheduler sempre que o plano termina. Desta forma, as alterações efectuadas on-line no conjunto de variáveis são consideradas na elaboração do plano seguinte.
1
id bytes periodo tipo tempoI
1 . . . . . . 2
. . .
. . .
Scheduler 3. . .
. . .. . .
. . .
N . . . Tabela de variáveis Dispafcher 1 2 ... 1 2 3 v 1 3 ...Difunde cada 2'k (Totalmente On-line)
variável para o bus plan (i) plan (i+l)
Figura 2.5 - Diagrama de um escalonamento por planos.
Um schedziler dinâmico, se se considerar um intervalo de tempo W, uma transacção i com período Pi e um conjunto de N variáveis a escalonar, é invocado no máximo S vezes, como indica a Equação 2.1. Além disso, em cada invocação, o schedziler tem que fazer uma procura sobre as N variáveis. Por conseguinte, o número total de operações efectuadas pelo scheduler durante o período de tempo W é da ordem de N*S.
Equação 2.1 - Expressão do número máximo de vezes que o scheduler é invocado
Contudo, no caso do escalonamento por planos, o scheduler só é invocado uma vez durante cada plano. O scheduler reserva os intervalos de tempo para as transações se efectuarem no barramento até ao fim do período de tempo
W
e, por conseguinte, o número de operações efectuadas é agora de apenas S (as operações referidas em ambos os casos não são exactamente idênticas).Por consequência, as principais características de um scheduler por planos são:
Maior flexibilidade operacional, comparada com o sclieduler estático. Uma vez que os planos são actualizados sempre que termina a última transacção do plano em curso, as alterações efectuadas no conjunto de variáveis são introduzidas no próximo plano.
Menor overliend introduzido on-line, comparado com o sclieduler dinâmico. O envio (dispatching) das variáveis pelo barramento é
semelhante ao realizado pelo FIP. O overhead introduzido pela actividade do dispatcher é irrelevante quando comparado com o já existente devido à
actividade do scheduler. O overhead introduzido pelo scheduler por planos
é inferior ao introduzido pelo scheduler dinâmico. Além deste ser invocado mais vezes, quando é necessário seleccionar uma variável que verifique o critério adoptado, o scheduler dinâmico tem de percorrer todo o conjunto de variáveis enquanto que o scheduler por planos selecciona a primeira que o verificar.
Necessidade de memória limitada. A quantidade de memória necessária para suportar o escalonamento por planos está limitada pela duração fixa dos mesmos. Contudo, em sistemas onde o número de variáveis é
tamanho do plano pode ser significativamente menor que o tamanho da tabela de escalonamento FIP (macro-ciclo).
Garantia limitada de escalonabilidade. O scheduler só tem um conhecimento total da actividade do barramento durante cada plano. Mas, tal como acontece com os schedulers dinâmicos, não é possível garantir a escalonabilidade do conjunto de variáveis para além do próximo plano. Pelo que também é necessário que se faça uma análise de escalonabilidade sempre que haja uma alteração no conjunto de variáveis.
As propriedades deste schedziler dependem da duração W do plano. De facto, à
medida que o tamanho do plano diminui (W+O), o scheduler identifica-se cada vez mais com o scheduler dinâmico. Por outro lado, se o tamanho do plano for igual ao mínimo múltiplo comum dos períodos do conjunto de variáveis, isto é,
se tiver a duração do macro-ciclo, e se não for necessário fazer nele mais nenhuma actualização então os planos passarão a ser todos iguais e portanto, o scheditler comporta-se como o schedztler estático.
2.2.4 Análise d e escalonabilidade
Nos sistemas industriais é por vezes necessário instalar novos equipamentos elou desligar outros por motivos de manutenção. Também pode ser preciso fazer uma amostragem mais rápida de uma dada variável a controlar. É pois conveniente que o conjunto das variáveis envolvidas no sistema possa ser alterado on-line. Sempre que ocorra uma alteração, o analisador de escalonabilidade (schedulabilify) deve ser invocado a fim de verificar se é possível garantir o cumprimento das restrições temporais do novo conjunto de variáveis. Se tal acontecer, a alteração é aceite e o scheduler te-la-á em conta da próxima vez que for invocado.
A execução do analisador não deve comprometer o cumprimento das restrições temporais do conjunto de variáveis. Por esta razão, estamos interessados num analisador de escalonabilidade que possa fazer uma verificação rápida.
Para encontrar uma solução para o problema do escalonamento não preemptivo, que é
o caso de interesse em comunicações deste tipo, pode-se recorrer a diversas técnicas de análise :
- Procura branclz-and-bound [Bra 711 e [Bak 741, onde é geralmente
usada uma árvore para representar o espaço de procura. A raiz representa um escalonamento vazio, cada nodo do nível k conesponde ao escalonamento parcial contendo K tarefas e as folhas da árvore representam escalonamentos comp1eto.s. Geralmente, há um valor máximo (bounã) associado a cada nodo, calculado de uma forma heurística. A partir de um nodo do nível k, há (n-k) ramos (branch). Cada ramo corresponde a uma extensão do escalonamento parcial adicionando- lhe mais uma tarefa. Por conseguinte, há n! folhas correspondendo a n! escalonamentos possíveis. Este processo de enumeração é moroso e computacionalmente pesado, pelo que é comum recorrer a heurísticas.
- Procura heurística [Zha 87a] e [Zha 87b], em que se tenta reduzir o
espaço de procura a custa da obtenção de uma solução potencialmente sub-óptima. Para determinar quais as variáveis que deverão ser escalonadas em primeiro lugar, é usada uma função de avaliação H(). Em cada ponto de escalonamento, a variável que tiver o mínimo valor de H()
é a seleccionada. Eis algumas das heuristicas usadas: earliest-deadline-
jirst [Jac 551, least-lawity-jirst [Sor 741 e [Der 741, minimum-
compzctation-jirst e earliest-ready-time-jirst [Lar 781.
-
Decomposição [Yua 941, em que se decompõe um dado conjunto devariáveis em sequências de subconjuntos de modo que o escalonamento dos subconjuntos seja independente de cada um, o que pode levar, em termos médios, a uma redução substancial no custo de desempenho do escalonamento.
- Avaliação dos tempos de finalização (completion time) [Kle 931, em
dos casos. O cálculo do tempo de finalização de cada transacção é feito iterativamente por aproximações e termina quando o valor da aproximação actual é igual ao da iteração anterior ou quando ultrapassou o prazo crítico definido para aquela transacção.
- Avaliação dos limites de utilização (utilization bounds) [Liu 731 e [Kle 931, onde se verifica de uma forma rápida, para a técnica Rate-Monotonic (RM), a escalonabilidade de um dado conjunto de tarefas (que admitem preempção) recorrendo a uma simples condição suficiente. Esta condição define um limite de utilização do recurso (neste caso do barramento) abaixo do qual é garantida a escalonabilidade de um dado conjunto de tarefas com qualquer faseamento.
Todas estas técnicas de análise da escalonabilidade, excepto a última, envolvem cálculos complexos e introduzem um custo de desempenho razoável. Não são pois interessantes para o presente caso. Pelo contrário, a avaliação dos limites de utilização
é bastante rápida e simples, uma vez que só é verificada uma simples condição.
Em [Liu 731 é apresentado o algoritmo Rate-Monotonic bem como uma condição suficiente de escalonamento de tarefas que admitem preempção. Se o factor de utilização U verificar a condição definida pela Equação 2.2 (sendo N o número de tarefas do conjunto, Pi o período da tarefa i e Ci o seu tempo de execução), o conjunto de tarefas é escalonável.
Equação 2.2 -Limite do factor de utilização num sistema monoprocessador.
No caso particular do escalonamento por planos, o scheduler selecciona, segundo o algoritmo Rate-Monotonic, a variável com o menor período e atribui-lhe, até ao fim do plano, os intervalos de tempo necessários para as respectivas transacções. O número de intervalos de tempo atribuído é definido de acordo com o período e a fase inicial de
cada variável. Se, durante o processo de atribuição, o ciclo-elementar onde a transacção deve ser colocada não dispõe de tempo suficiente para ela ter-se-á de a adiar para o Ec seguinte, dando origem a tempos mortos (Figura 2.6-Xn), pois as transacções não admitem preempção. Caso o próximo Ec também não disponha de capacidade temporal, proceder-se-á a adiamentos sucessivos até se encontrar um Ec com capacidade suficiente.
b
tempo
duração E
I
Fi;ura 2.6
-
Diagrama da atribuição de bus time slots por parte do scheduler,Tomando em consideração estas características, a Equação 2.2 pode ser modificada [Alm 97a] obtendo-se a Equação 2.3, onde E corresponde à duração do Ec e X' ao máximo dos tempos Xn (Figura 2.6).
"
C,
IE - X '
U = x -
<N ( ~ * .
- 1)*
,=I
p,
E
Equação 2.3 - Limite do factor de utilização no sistema implementado.
Se a condição da Equação 2.3 for verdadeira, o conjunto de N variáveis é escalonável com qualquer fase.
Nas situações em que o valor de X' não é facilmente determinado, recorre-se ao limite superior do pior dos casos, definido na Equação 2.4. Todavia, esta definição é muito pessimista porque considera que todos os Ecs estão sobrecarregados e que o tempo desperdiçado Xi ocorre em todos os Ecs e tem urna duração igual à da máxima transacção. Note-se que,
i
medida que a duração da máxima transacção diminui, o limite de escalonabilidade aproxima-se do limite definido na Equação 2.2.X =
max(X,)
= .max(C,)
allEc, z=l..NEquação 2.4 -Expressão do cálculo do tempo desperdiçado do bamamento.
Se a duração da maior transacção for de 10% da duração do Ec e o número de variáveis enorme, a máxima utilização possível de se garantir a escalonabilidade do conjunto de variáveis será de 63%. Este limite tão baixo pode não ser um grave problema se atendermos a que os tempos desperdiçados Xi do barramento poderão ser ocupados pelo tráfego aperiódico que não tem restrições temporais tempo real. Esse aproveitamento é feito em muitos sistemas tempo real, incluindo o caso do barramento FIP.
2.3
ConclusõesAnalisando as características dos três tipos de schedulers analisados, nomeadamente a flexibilidade operacional, o overhead introduzido on-line, o tamanho do escalonamento e a garantia de escalonabilidade (resumidas na Tabela 2.1), pode-se concluir que, em sistemas tempo real onde é usado o schedziler estático de que é
exemplo o barramento de campo FIP, o uso do planning scheduler no árbitro de barramento pode melhorar a flexibilidade operacional, enquanto é mantida a maior parte das características funcionais. Neste barramento de campo, é possível a reconfiguração dinâmica, isto é, pode-se adicionar elou remover sensores, controladores, por exemplo, sem parar todo o sistema. Porém, esta flexibilidade é
essencialmente obtida à custa de baixa utilização do barramento para garantia da escalonabilidade. Este método pode, no entanto, ser um bom compromisso entre o scheduler estático e o dinâmico.
. . . . . . . -~ .:
..:.
.: ...i,.. ... .::,.. :~ ~ . . . . . , d e ,....
; . ' Z . , :=-.: , . - : .- , . . . : , .\,: ... ..-.. . .:..::... . . . . . . :fleiibi1Gadi ~ @ r i i & n i l .\ r< . . . : . .~~ ~ . . . . .* Depende da duração do plano
Tabela 2.1
-
Caracteristicas do escalonamento estático, dinâmico eplanning.- ~.
~ v e r h e a d i n t o d ~ i d o ,;., .. . . . o>!-&,e ?
. . ' .,:--:..:;
. . . . ..-. <: ...:...
... . : . . . . : - .... .i.<: ':.
~ & & h < d o . ~. . . . &i%lontimkt~: , .. ..
. . . . , . : . . . . ~ . . . ~. ~:cal&abilidade. . . . . . . ... .:.: ...
:
'., ..,:; .;.. . : >: . = . : . . . . ..: . %.<..>ac.- ... *...
>.. .. . : .; ... ~ & t i ~ $ ' y : ~ ; , .. . . ..';
.- !. >&. . . . . ^_i,ii.;, . . . . . . . Baixa Baixo Potencialmente grande Garantida ...,. ? .'~..,.
< .. ..c,r ::;:~i"â,&&-' ... . , ...:... Elevada .,*:,$7 ..L...?:..
:". ~<:- 7 ,:<:.. . . . .;;jjji..:~;;:;;pl&j&g?.'-..
. l i . : - . . <..::::. - . i :::., . . . . . . .. . . . . . . . Razoável Considerável Desprezivel Não garantida Razoavelmente baixo* Limitado* Garantida em cada plano*Como já foi referido, pretende-se desenvolver um sistema que implemente uma pequena rede industrial visando a validação do método de escalonamento por planos (planning schedirler). Adicionalmente, obtém-se uma solução de interligação consistente, aplicável na prática, com possível utilização em pequenos sistemas de controlo.
O sistema deve compreender duas ou mais estações que comunicam entre si através de um barramento. Uma destas estações assume o papel de árbitro de barramento (BA). Algumas das suas funções são a elaboração de planos que indicam qual a variável que deverá circular num dado instante (função de scheditler) e o convite para a estação produtora dessa variável a difundir (função de dispatcher).
O protocolo de comunicação entre as estações é definido segundo o modelo Produtor(es) - Distribuidor
-
Consumidor(es) apresentado no capitulo anterior. Implementações deste protocolo atribuem um intervalo de tempo do barramento a cada variável para que esta seja produzida, distribuída e consumida pelas estações.3.1
Descrição do árbitro de barramento
O árbitro é uma estação que tem por função controlar o acesso ao barramento, evitando assim situações de contenção por tempo indeterminado na atribuição do recurso. O BA detemina qual a estação que deve aceder ao barramento e durante quanto tempo o deve fazer. Para tal, o BA dispõe na sua memória local de urna tabela de variáveis que contém, para cada uma, o identificador, a dimensão e a periodicidade com que deve ser produzida.
Quando a função do schedttler é invocada, a tabela é consultada a fim de seleccionar as variáveis a difundir durante um determinado período de tempo. O resultado do escalonamento obtido é armazenado numa tabela, o plano. Uma vez construído o
primeiro plano, é criada uma cópia noutra tabela chamada a tabela de dispatch. A partir desse momento, quando o dispatcher for invocado para encetar as transacções, a tabela de dispatch é consultada a fim de determinar qual a variável a difundir. Enquanto se efectuam as transacções, o scheduler é novamente invocado e cria o plano seguinte. Uma vez difundidas todas as variáveis de um plano, a tabela de dispatch é actualizada com um novo plano e o dispatcher volta a iniciar as transacções. É de salientar que o plano seguinte é criado enquanto se efectuam as transacções do plano actual (Figura 3.1).
As funções do scheduler e dispatcher são executadas concorrentemente sendo a segunda de maior prioridade. A execução do scheduler processa-se nos tempos de processador correspondentes ao desenrolar das transacções. Esse processo é interrompido pelo
dispatcher sempre que for necessário iniciar uma nova transacção.
O BA possui ainda uma interface (shell) que permite ao operador alterar elou consultar a tabela de variáveis em produção no sistema. Devido ao carácter não regular destas operações, a interface com o operador deve ter um atendimento assíncrono mas tempo real (considerando as temporizações especificas nestes casos).
Sempre que o operador tentar modificar a tabela de variáveis, um analisador de escalonabilidade é invocado para verificar se o novo conjunto pode ser produzido cumprindo todos os seus prazos críticos. Só em caso afirmativo, a alteração é aceite.
O árbitro desenvolvido pode ser utilizado num barrarnento de campo tipo FIP, como descrito em [Let 921, mediante algumas pequenas modificações apresentadas em [Pas 961. O árbitro modificado, ilustrado na Figura 3.1, mantém a maior parte das características do árbitro FIP, nomeadamente o modelo de comunicação, a eficiência e a robustez do protocolo.
Árbitro de barramento modificado
,
......
n
i j j variável a difundir : ... ...f
Barrarnento de campof
Figura 3.1 -Esquema do Árbitro de Barramento modificado.
3.1.1 Tabela de
variáveis
Nos sistemas industriais, as variáveis envolvidas nos processos devem ser definidas antes da respectiva inicialização. A grande maioria destas variáveis tem um carácter periódico. De facto, os valores de uma dada variável a controlar (a temperatura de um fomo cerâmica, por exemplo) são periodicamente lidos e enviados pelo barramento para uma estação que a controla.
Cada variável deve possuir um e um só identificador, que não é passível de repetição. Uma vez que o BA reserva tempo do barramento para que se efectue cada transacção, é
necessário que conheça também a dimensão de cada variável (a dimensão pode, em geral, ser calculada a partir do seu tipo).
A
lista das variáveis é definida antes do início do funcionamento do sistema e deve conter o identificador de cada uma, a sua periodicidade e tipo, conforme se ilustra na Figura 3.2. Ainda antes de se iniciar o sistema, o BA consulta esta lista e constrói a tabela de variáveis que será utilizada pelo scheduler.A referida tabela deve conter as propriedades essenciais de cada variável: identificação, período, tipo, tempo de scan e periodicidade (em Ecs). Os valores do
offset,
jitter e jitter máximo de cada variável podem ser modificados durante os processos de transmissãoou de recepção. Os valores do jitter podem ser utilizados para fins estatísticos. A utilidade do jitter é permitir saber se a colocação efectiva das variáveis no plano está a ser feita com atraso relativamente ao instante de produção pretendido. Não se pretendendo utilizar o jitter máximo como valor histórico, pode-se reservar o campo para permitir a definição de prazos críticos diferentes dos que são actualmente preestabelecidos (iguais ao período da variável). Tal implica apenas uma pequena alteração no programa.
Características estáticas das variáveis:
id
- identificação da variável
(2 bytes),per
-
periodicidade (arredondada a um múltiplo inteiro da duração de um ciclo-elementar),tipo - utilizada para calcular a dimensão da variável (3 bits),
relper
- periodicidade medida em número de Ecs e
tempo de scaii - tempo necessário para que se efectue a transacção* (como é
óbvio, o tempo de scan não pode ser superior ao seu período, pois o prazo crítico definido nunca seria cumprido).
Propriedades das variáveis cujos valores são dinâmicos:
jitter - intervalo de tempo que decorre desde o instante pretendido para a produção da variável até à sua efectiva colocação num Ec (medido em Ecs),
jitter máximo
-
Como o nome indica, regista o valor máximo de jitter ocorrido até esse instante eCalculado a partir do tipo, dos campos acessórios da trama e outros atrasos inerentes a produção e comunicaçáo.
offset
- determina quando deverá ocorrer a primeira invocação da variável
no plano seguinte (medido em Ecs).valores estáticos valores dinàrnicos
,
-1 164700a
164700 219600 E 384300 Lista de variáveisI
E/
3843001
21
71
20756 O 2 2 Tabela de variaveis . .Figura 3.2 - Exemplo do conteúdo da lista e tabela de variáveis
i d
A
B
C
D
Nesta tabela, as variáveis são ordenadas por ordem crescente dos seus períodos, o que toma o escalonamento mais rápido quando se usa o critério Rate-Monotonic.
3.1.2
Scheduler
per (us) 54900 164700 164700 219600O scheduler tem como função escalonar as variáveis que devem ser difundidas pelo
barramento de acordo com a heuristica adoptada. O algoritmo de escalonamento implementado é baseado no Rate-itionotonic [Liu 731, pois a atribuição de prioridades é
feita do mesmo modo. Assim, as variáveis com os periodos mais curtos são as que têm maior prioridade, pelo que serão as primeiras a ser escalonadas.
3.1.2.1
Estruturas
envolvidas tipo O O 1 1Para efectuar o escalonamento, o scheduler consulta a tabela de variáveis, selecciona a de maior prioridade e tenta reservar-lhe tempo de barramento. Feita a reserva (ou reservas pois a variável pode ter de ser difundida múltiplas vezes durante um plano), consulta novamente a tabela, selecciona a variável seguinte e o processo repete-se até se atingir o final da tabela. A lista das reservas ou tabela de escalonamento (Figura 3.3) é
referida como plano. A sua duração é fixa e definida previamente, antes do início do funcionamento do sistema. Cada reserva desta lista contém o identificador da variável a difundir, assim como a duração da reserva (tempo de scan), isto é, o tempo da
relper (Ec) 1 3 3 4 tempo de Scan(us) 14504 14504 16588 16588 jiner (Ec) O O O O jinermáximo (Ec) O O O 1 offset (Ec) O 1 1 3
transacção. Se a periodicidade da variável é inferior ao tamanho do plano, poderão nele ocorrer múltiplas reservas dessa variável.
...
Figura 3.3 - Lista de reservas (tabela de escalonamento ou plano).
3.1.2.2 Funcionamento do
scheduler
A ordenação da tabela de variáveis por ordem crescente de períodos implica, já que se utiliza o critério Rate-Monotonic, que a prioridade diminua ao longo da tabela. O scheduler limita-se pois a percorrer sequencialmente a tabela e, de cada vez que retira os dados de uma variável, utiliza-os de imediato para lhe atribuir tempo de barramento (Figura 3.4).
Se o período da variável for inferior ê duração do plano, pode ser necessário reservar tempo de barramento para mais que uma transacção. O número de transacções depende também da distância, em Ecs, do inicio do plano ê primeira transacção da variável. O valor está indicado no campo offset. Na construção do plano N utiliza-se o valor de offset calculado no plano N-I.
Sendo o tempo de barramento limitado, é necessário controlar a sua atribuição. Cada Ec dispõe de um registo totalizador do tempo já nele atibuído para produção de variáveis.
É pois possível que uma dada variável de prioridade mais baixa já não disponha de tempo suficiente para ser produzida no Ec adequado. Nesta situação, o scheduler limita- se
a
percorrer os Ecs subsequentes até encontrar tempo disponível. Para evitar umadiminuicão incremental da frequência, utiliza-se, para cálculo do Ec que deverá alocar a transacqào K da variável, o valor do Ec onde deveria ter sido colocada a transacção K-I e não o Ec onde efectivamente o foi.
Selecciona a var. seguinte da tabela Selecciona a '1 var.
da tabela de vars.
N
Figura 3.4
-
Diagama de fluxo de sinal do scheduler.piano anterio0
Posiciona-se no 1" Ec do plano
Após a colocação da transacção de uma variável num Ec posterior ao adequado, se o valor do atraso (jitter) for superior ao jitter máximo, o campo correspondente a este é
actualizado com esse valor. O campo jitter é depois inicializado a zero. v
A
necessidade de atrasar a transacção por falta de tempo disponível pode implicar que a variável só possa ser produzida já no plano seguinte. Neste caso, o campo jitter mantémPosiciona-se no Ec Coloca a "ar. nesse Ec correspondente à próxima
invocaçáo da var
Posiciona-se no próximo Ec do piano
! Calcula e guarda a p o s i ~ ã o do1 plano seguinte onde será
novamente invocada
o valor do atraso. No plano seguinte, ao retirar os respectivos dados a fim de lhe atribuir tempo de barramento, o scheduler lê o valor do campo jitter e verifica que a variável ainda não foi produzida, pelo que tenta colocá-la no primeiro Ec do referido plano com tempo disponível.
Neste sistema- considerou-se que o prazo crítico das variáveis coincide com o respectivo período. Assim, quando a colocação de uma variável no plano sofre um jitter (atraso) igual ao seu período então o respectivo prazo crítico não foi cumprido.
Dado o cariz experimental do sistema, não se implementaram mecanismos de recuperação do não cumprimento dos prazos críticos. Assim, sempre que o prazo crítico não é respeitado, o sistema simplesmente pára, indicando a violação temporal ocorrida.
Após todas as variáveis terem sido escalonadas, o scheduler termina a sua execução. É novamente invocado para criar o plano seguinte logo que o actual possa ser copiado para a tabela a utilizar pelo dispatcher. O scheduler pode ser interrompido por processos de maior prioridade (dispatcher, transmissão, recepção e controlo temporal).
Para exemplificar o funcionamento do scheduler, considera-se um dado conjunto de variáveis definidas pelos pares (identidade; periodicidade em Ecs) (A;l), (B;3), (C;4), (D;4) e (E;4). Por simplicidade, considera-se que as transacções das variáveis têm todas a mesma duração. O resultado do seu escalonamento para um período de tempo correspondente ao mínimo múltiplo comum MMC dos períodos será semelhante ao ilustrado na Figura 3.5.
Neste caso, o scheduler selecciona a variável mais prioritária (A), coloca-a nos Ecs em que será invocada, selecciona a seguinte (B) e repete o processo até não haver mais variáveis por escalonar.
Para ilustrar, agora, a resolução do problema da indisponibilidade de tempo num Ec, utiliza-se o mesmo conjunto de variáveis e apresentam-se, na Figura 3.6, três planos gerados pelo scheduler.
A
duração atribuída para cada plano é de 5 Ecs. Supondo que cada ciclo-elementar não tem capacidade temporal para suportar mais de três transacções, as restantes (menos prioritárias) são colocadas nos Ecs seguintes. Nestasituação, o schedirler selecciona a variável mais prioritária (A)! distribui-a pelos Ecs em que será invocada ao longo do plano 1, calcula qual o próximo Ec do plano 2 onde será invocada novamente, selecciona a variável seguinte e repete o procedimento. Quando o
scheduler pretende colocar a variável D no Ec onde deverá ser invocada, verifica que o
ciclo-elementar não tem capacidade temporal para a sua transacção e coloca-a no Ec seguinte (que ainda tem espaço suficiente). O mesmo sucede com a variável E. Contudo, quando o scheduler verifica que não pode colocá-la no Ec 5, o jiffer da variável não é
inicializado a zero. O valor não nulo desse campo indica que a variável deverá ser colocada no primeiro Ec do plano 2.
Na invocação seguinte, o scheduler volta a seleccionar as variáveis pela mesma ordem e
distribui-as ao longo do plano 2. Quando a variável E é seleccionada, o scheduler
verifica que ainda está por colocar e reserva-lhe tempo de barramento no Ec 1, uma vez que ainda tem espaço para a respectiva transacção. De sesuida, repete o processo para distribuir cada variável pelo plano de modo a colocar a variável E nos Ecs onde deverá ser invocada.
Ecl Ec?. Ec: ... Eci ...
Plano 1 Plano 2 Plano 3
...
Ecl Ec2...
Ec6 Ec7 ... E c l l E c l 2...
...
, .
x - variável x transferida para o próximo Ec com capacidade temporal para a receber
Figura 3.6 - Escalonamento por planos.
3.1.3 Dispatcher
Inicialmente' a tabela de variáveis é guardada na memória local do BA e o plano, criado pelo schedirler, é copiado para uma tabela de disparch (Figura 3.8). O disparcher. quando for invocado, consulta esta tabela para saber qual a variável a difundir pelo barramento e quanto tempo durará a sua transacção.
Uma vez que as transacções de cada ciclo-elementar devem ser efectuadas dentro dessa janela temporal, a sua difusão deve ser desencadeada periodicamente, ao ritmo de cada Ec (Figura 3.7). Dentro de um plano, o dispatcher é, por isso, invocado no inicio de cada Ec. Além disso, é também invocado, dentro do Ec, após a conclusão da transacção de uma variável até que já não exista mais nenhuma a produzir.
Ciclos pen6dicos ao ritmo dos Ecs
+ ~ i m do plano
Figura 3.7 - Esquema de funcionamento do dirpotcher
Quando se tiver efectuado a última transacção do plano actual. a tabela do escalonamento seguinte, que já foi criada entretanto pelo schedirler. é copiada para a tabela de disporch. A partir deste momento, o dispotcher pode ser novamente invocado para processarnento do plano seguinte.
3.1.3.1 Estruturas envolvidas
Para iniciar as transacções, o dispatcher deve ter conhecimento de quais as \.ariáveis a enviar e quanto tempo durarão as respectivas transacções (tempo de scan). Tal informação encontra-se na tabela de dispatch que é obtida retirando os elementos necessários da tabela que contém o plano, gerada pelo scheduler. Na tabela de dispatch, não há indicação dos Ecs onde são transaccionadas as variáveis. Tal não é um problema já que o número de Ecs é conhecido à partida e utilizou-se um identificador negativo com o tempo de transacção nulo para sinalizar o fim da lista de variáveis de um Ec (Figura 3.8).
id tempo de scan(us)
t 5 + - x K -
Figura 3.8 - Tabela de dispatch,
3.1.3.2 Funcionamento do dispatcher
A partir do momento em que é criada a tabela de dispatch, pode-se dar início às transacções. Para iniciar cada transacção, o dispatcher (Figura 3.9) consulta a tabela de
dispatch. Essa situação ocorre quando termina uma transacção ou quando se inicia uma
janela temporal Ec.
O dispatcher é invocado todos os Ecs para processamento das respectivas transacções.
Em cada Ec as transacções são processadas em sequência até se esgotarem. O final de cada transacção provoca uma chamada ao dispatcher para processamento da transacção seguinte. Após a última transacção, o dispatcher autosuspende-se sendo novamente invocado no início do próximo Ec. No fim de cada plano, o dispatcher começa por actualizar a respectiva tabela e só depois inicia o processamento das transacções.