BR112016013088B1 - Método de composição e de execução de um plano de sequenciamento de tarefas em tempo real - Google Patents

Método de composição e de execução de um plano de sequenciamento de tarefas em tempo real Download PDF

Info

Publication number
BR112016013088B1
BR112016013088B1 BR112016013088-0A BR112016013088A BR112016013088B1 BR 112016013088 B1 BR112016013088 B1 BR 112016013088B1 BR 112016013088 A BR112016013088 A BR 112016013088A BR 112016013088 B1 BR112016013088 B1 BR 112016013088B1
Authority
BR
Brazil
Prior art keywords
tbj
dai
dbj
frame
time
Prior art date
Application number
BR112016013088-0A
Other languages
English (en)
Other versions
BR112016013088A2 (pt
Inventor
Vincent David
Adrien BARBOT
Original Assignee
Krono-Safe
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Krono-Safe filed Critical Krono-Safe
Publication of BR112016013088A2 publication Critical patent/BR112016013088A2/pt
Publication of BR112016013088B1 publication Critical patent/BR112016013088B1/pt

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Debugging And Monitoring (AREA)
  • Devices For Executing Special Programs (AREA)
  • Advance Control (AREA)

Abstract

método de composição e de execução de um plano de sequenciamento de tarefas em tempo real a invenção refere-se a um método de execução de duas tarefas em tempo compartilhado, compreendendo etapas de decompor off-line cada tarefa em uma sequência repetitiva de tramas sucessivas, onde cada trama é associada a uma operação atômica com necessidade de execução, e define datas de início e de prazo para a operação poder começar e dever estar terminada, assim cada trama define uma margem de tempo na qual a operação pode começar; verificar para cada trama de uma primeira das sequências repetitivas que a operação correspondente pode ser executada entre duas operações sucessivas quaisquer de um grupo de tramas da segunda sequência repetitiva, sobrepondo-se à trama (fai) da primeira sequência repetitiva, ao mesmo tempo respeitando as datas de início e prazos das operações; e se a verificação for satisfeita, permitir a execução das duas tarefas. as operações das duas tarefas são então ordenadas de acordo com os casos seguintes avaliados em cada data chave, onde uma data chave sobrevém a cada prazo, cada data de início, e cada fim de execução de operação: se duas operações podem começar, executar aquela que tem o prazo mais curto; e se uma só operação pode começar, executar a mesma somente se sua necessidade de execução for inferior ao tempo que resta até a data de início da próxima trama da outra sequência, aumentado da margem de tempo associada à dita próxima trama da outra sequência.

Description

Domínio técnico da invenção
[001] A presente invenção refere-se aos sistemas multitarefas de tempo real críticos, tais como os sistemas de controle-comando utilizados nos domínios dos transportes (automóvel, ferroviário, naval, aeronáutico), dos autômatos industriais, da energia, assim como de outros sistemas para os quais a alocação controlada dos recursos é importante, como nas redes de comunicações. A invenção se refere tanto aos sistemas de tempo real para os quais um alto nível de desempenho na execução é exigido quanto aos sistemas críticos para os quais um alto nível de garantia é exigido no que diz respeito à utilização dos recursos materiais de execução atribuídos para cada sistema.
Plano de fundo da invenção
[002] Nos sistemas de tempo real críticos, quer dizer que não po dem tolerar nenhuma violação de prazo por uma colocação em atraso da execução de uma operação, as tarefas são com frequência executados de acordo com métodos de ordenação estática. É construída então off-line uma alocação temporal estática da necessidade de utilização dos recursos de execução, o que permite demonstrar a independência temporal das tarefas entre si no que diz respeito à utilização dos recursos, e em especial do processador. Uma tal abordagem é descrita, por exemplo, no artigo ["A method and a technique to model and ensure timeliness in safety critical real-time systems", C. Aus- saguès, V. David, Fourth IEEE International Conference on Engineering of Complex Computer Systems, 1998], e nos pedidos de patente WO2006-050967 e US2010-0199280.
[003] No entanto, esse tipo de abordagem impõe só considerar um plano de sequenciamento único para todas as atividades, e portan- to só considerar uma única base de tempo para determinar os prazos. Isso torna difícil uma execução sem interferência, em um mesmo processador, de tarefas que têm bases de tempo não correlacionadas, como um atarefa que utiliza um relógio para determinar seus prazos e uma tarefa que utiliza uma posição de um objeto de velocidade variável para determinar seus prazos. Seria preciso para isso construir dois planos de sequenciamento cadenciados por uma mesma base de tempo para poder compô-los em um só plano de sequenciamento sem interferência entre tarefas. Isso só é na prática realizável se os recursos de execução são amplamente superdimensionados para poder considerar o pior caso de cada situação.
[004] Nos sistemas de tempo real com alto grau de desempenho, que não são ditos "críticos" pois eles podem tolerar violações de prazo dentro de uma certa margem, a composição de dois planos de se- quenciamento cadenciados por bases de tempo diferentes é realizada por algoritmos de ordenação dinâmicos. Tais algoritmos são descritos, por exemplo, em ["Scheduling algorithms for multiprogramming in a hard real-time environment", C. Liu, J. Layland, Journal of the ACM, vol. 20, n° 1, pp. 46-61] e ["Foundations of Real-Time Computing: Scheduling and Resource Management", edited by André M. Van Til- borg, Gary M. Koob, 1991, Kluwer Academic Publishers], e também em ["A method anda a technique to model and ensure timeliness in safety critical real-time systems", C. Aussaguès, V. David, Fourth IEEE International Conference on Engineering of Complex Computer Systems, 1998].
[005] Com esses algoritmos, preempções são inevitáveis, quer dizer que o sistema de exploração pode interromper uma operação em curso para executar uma operação mais urgente. A ordenação sendo dinâmica, o número e o tempo de duração das preempções não é determinável, e cada preempção consome um tempo de sistema para efetuar uma mudança de contexto. Isso cria interferências entre tarefas, de modo que os sistemas são mais difíceis de dimensionar, menos preditivos e não reprodutíveis em arquiteturas de processadores complexas. Os projetistas desses sistemas encontram por outro lado dificuldades para regular corretamente as prioridades das tarefas ou os prazos em um sistema com duas bases de tempo diferentes. As opiniões escolhidas, como a variação das necessidades de execução de acordo com o valor de parâmetros aplicativos, tornam mais complexos e não controláveis os sistemas construídos dessa maneira.
Sumário da invenção
[006] É desejado assim dispor de uma técnica que permite exe cutar em tempo compartilhado dois planos de sequenciamento sem interferência, e isso mesmo se as bases de tempo dos dois planos são diferentes.
[007] Tende-se a satisfazer essa necessidade prevendo para isso um método de execução de duas tarefas em tempo compartilhado, que compreende as etapas que consistem em decompor off-line cada tarefa em uma sequência repetitiva de quadros sucessivos, onde cada quadro é associado a uma operação atômica que tem uma necessidade de execução, e define uma data de início a partir da qual a operação pode começar e uma data de prazo na qual a operação deve estar terminada, daí resulta que cada quadro define uma margem de tempo na qual a operação pode começar; verificar para cada quadro de uma primeira das sequências repetitivas que a operação correspondente pode ser executada entre duas operações sucessivas quaisquer de um grupo de quadros da segunda sequência repetitiva, se sobrepondo ao quadro (Fai) da primeira sequência repetitiva, ao mesmo tempo em que são respeitadas as datas de início e dos prazos das operações; e se a verificação for satisfeita, permitir a execução das duas tarefas.
[008] As operações das duas tarefas são então ordenadas de acordo com os casos seguintes avaliados em cada data chave, onde uma data chave sobrevém a cada prazo, cada data de início, e cada fim de execução de operação: se duas operações podem começar, executar aquela que tem o prazo mais curto; e se uma só operação pode começar, executar a mesma somente se sua necessidade de execução for inferior ao tempo que resta até a data de início do próximo quadro da outra sequência, aumentado da margem de tempo associada ao dito próximo quadro da outra sequência.
[009] De acordo com um modo de execução, cada quadro com preende por outro lado um intervalo de tempo de reserva que pode ser nulo, situado depois do prazo do quadro ou antes da data de início do quadro, os intervalos de tempo de reserva de qualquer uma das sequências repetitivas podendo ser utilizados para executar uma operação da outra sequência repetitiva.
[0010] De acordo com um modo de execução, a etapa de verifica ção compreende as etapas seguintes: • para cada quadro Fai da primeira sequência repetitiva, avaliar as condições seguintes para cada quadro Fbj da segunda sequência repetitiva: [A.1] Dai ≤ Tbj+i [B.[1] Dai ≤ Rbj + Tbj+i e Dbj ≤ Tai, e [C.i] Dbj ≤ Tai, onde D, T e R são a necessidade de execução, a margem de tempo, e o tempo de reserva, indexados por um identificador de sequência repetitiva e pelo número de quadro na sequência; • repetir as avaliações das condições intervertendo para isso aos quadros Fai e Fbj; • permitir a execução das tarefas se as três condições [A.i], [B.i] e [C.i] são satisfeitas para qualquer par (i, j).
[0011] De acordo com um modo de execução, a etapa de verifica ção compreende as etapas seguintes: • se a condição [A.1] for falsa, avaliar a condição seguinte: [A.2] Dai ≤ Tbj+i + Rbj+i + Tbj+2 e Dai + Dbj+1 ≤ Tai + Tbj+1 • se a condição [B.i] for falsa, avaliar a condição seguinte: [B.[2] Dai ≤ Tbj+1 + Rbj+1 + Tbj-2 e Dbj + Dai + Dbj+1 ≤ Tai + Tbj+1 • se a condição [C.1] for falsa, avaliar a condição seguinte: [C.2] Dbj ≤ Tai + min[Tbj-Dai, Rai, Rai-1] • permitir a execução das tarefas se as condições [A.1] ou [A.2], e [B.1] ou [B.2] e [C.1] ou [C.2] são satisfeitas para qualquer par (i, j).
[0012] De acordo com um modo de execução, as bases de tempo que determinam os tempos de duração dos quadros são variáveis de modo que as margens de tempo T e as reservas de tempo R variam de um fator 1 a za para os quadros Fa e de 1 a zb para os quadros Fb, a etapa de verificação compreendendo então as etapas seguintes: • se a condição [A.1] for falsa, avaliar a condição seguinte: [A.2] Dai ≤ Tbj+1 + Rbj+1 + Tbj+2 e min[q1(zb•(Tbj + Rbj) + (zb-1)Dbj), Dai] + Dbj+1 ≤ Tai onde q1 = (Dai - Tbj+1)/(Tbj + Rbj) • se a condição [B.1] for falsa, avaliar a condição seguinte: [B.[2] Dai ≤ Tbj+1 + Rbj+1 + Tbj-2 e Dbj + min[q1(zb•Tbj + (zb-1)Dbj) + zb•Rbj, Dai] + Dbj+1 ≤ Tai onde q1 = (Dai - Rbj - Tbj+1)/Tbj; • se a condição [C.1] for falsa, avaliar a condição seguinte: [C.2] Dbj ≤ Tai + min[Tbj-Dai, Rai, Rai-1] • permitir a execução das tarefas se as condições [A.1] ou [A.2], e [B.1] ou [B.2] e [C.1] ou [C.2] são satisfeitas para qualquer par (i, j).
[0013] De acordo com um modo de execução, a etapa de verifica ção compreende as etapas seguintes: • se a condição [B.1] for falsa, avaliar antes da condição [B.2] a condição seguinte: [B.1.[1] Dai ≤ Tbj + Rbj + Tbj+i e Dbj-1 ≤ TI + min[Tbj-1 + Dbj-1 + Rbj-1 - Daw, Rai-2] onde q1 = (Dai - Rbj - Tbj+1)/Tbj e T1 = Tai-1 - (1-q1)Tbj + Rai-1 • permitir a execução das tarefas se as condições [A.1] ou [A.2], e [B.1] ou [B.1.1] e [C.1] ou [C.2] são satisfeitas para qualquer par (i, j).
Descrição resumida dos desenhos
[0014] Modos de realização serão expostos na descrição seguinte, feita a título não limitativo em relação com as figuras anexas entre as quais:
[0015] - a figura 1 ilustra um exemplo de sequência repetitiva de quadros que serve para compor um plano de sequenciamento de uma tarefa;
[0016] - a figura 2 representa a composição de um quadro de uma sequência repetitiva e diferentes possibilidades de partida de uma operação no quadro;
[0017] - as figuras 3A a 3C ilustram diferentes possibilidades de desenvolvimento em tempo compartilhado de duas sequências repetitivas de quadros, a figura 3C ilustrando uma situação de erro;
[0018] - as figuras 4A a 4C ilustram casos de desenvolvimento em tempo compartilhado de duas sequências de acordo com uma primeira hipótese na elaboração dos critérios de validação de uma composição de duas sequências;
[0019] - as figuras 5A e 5B ilustram casos de desenvolvimento em tempo compartilhado de duas sequências de acordo com uma segunda hipótese na elaboração dos critérios de validação de uma composição de duas sequências;
[0020] - a figura 6 ilustra um caso de desenvolvimento em tempo compartilhado de duas sequências de acordo com uma terceira hipótese na elaboração dos critérios de validação de uma composição de duas sequências;
[0021] - a figura 7 ilustra um exemplo de sucessão de quadros que serve para estabelecer uma outra condição de validade na situação da figura 5A; e
[0022] - a figura 8 representa um caso suplementar de desenvol vimento de duas sequências de acordo com uma terceira hipótese, que permite elaborar condições de validade alternativas.
Descrição de um modo de realização da invenção
[0023] Uma tarefa de tempo real pode ser considerada como uma sequência de tratamentos ou operações elementares a executar uma depois da outra, onde cada operação tem um prazo em uma base de tempo associada à tarefa. Em um sistema de tempo real crítico, os prazos são imperativos, quer dizer que uma operação que excedesse seu prazo provocaria uma condição de erro e uma paralisação do sistema, por exemplo. As tecnologias descritas abaixo são aplicáveis a um tal sistema e permitem melhorar apesar de tudo o grau de desempenho pelo fato de que várias tarefas, mesmo tendo bases de tempo não correlacionadas, poderão der executadas em tempo compartilhado no sistema.
[0024] A figura 1 ilustra uma decomposição de uma tarefa em uma sequência repetitiva de quadros RSF, na qual cada quadro F é associado a uma operação sequencial da tarefa. A tarefa é executada executando-se em laço a sequência repetitiva RSF.
[0025] A figura 2 representa a estrutura temporal de um quadro F. O início do quadro corresponde à data a partir da qual a operação pode começar. O quadro define um prazo E no qual a operação deve estar terminada. A operação é suposta atômica, quer dizer que ela não pode ser suspensa para executar uma outra operação. O prazo E pode ser separado do fim do quadro por um intervalo de tempo de reserva R opcional, quer dizer que pode ser nulo. Um intervalo de tempo D é a necessidade de execução da operação associada ao quadro. A necessidade de execução D corresponde, por exemplo, ao número de ciclos de relógio de processador exigido para executar a operação - ela pode assim ser expressa em um tempo fixo em função das características do processador do sistema alvo. Um intervalo T corresponde à margem de tempo entre o início do quadro e o prazo E para executar a operação.
[0026] Assim, como o representa a figura 2, a operação D pode começar a qualquer instante entre o início do quadro, onde o intervalo T separa o fim da operação e o prazo, e um tempo T depois do início do quadro, onde a operação se termina justo no prazo E. Para as situações intermediárias, é anotado qT o intervalo entre o fim da operação e o prazo, com 0 ≤ q ≤ 1, e (1-q)T o intervalo complementar entre o início do quadro e o início da operação.
[0027] A soma dos intervalos de reserva R corresponde, por exemplo, a um tempo que o programador atribui ao sistema para efetuar operações não de tempo real, como entradas/saídas.
[0028] Duas tarefas que se deseja executar em tempo comparti lhado em um sistema de tempo real crítico são assim decompostas em sequências repetitivas de quadros. Para que as tarefas possam ser executadas sem interferência, quer dizer respeitando-se a atomicidade das operações, procura-se compor as sequências de modo que cada operação de uma sequência possa a qualquer momento ser executada entre duas operações sucessivas da outra sequência, ao mesmo tempo em que são respeitadas as restrições dos quadros das duas sequências, a saber os prazos e os inícios de quadro.
[0029] As figuras 3A a 3C representam diferentes situações que podem ser encontradas no desenvolvimento de duas sequências RSFa e RSFb. É suposto, para simplificar as explicações, que os intervalos de reserva R são nulos.
[0030] Na figura 3A, a título de exemplo, a sequência RSFa com preende três quadros Fa1 a Fa3 de parâmetros respectivos (Da1 = 3, Ta1 = 6), (Da2 = 2, Ta2 = 1), e (Da3 = 1, Ta3 = 1), onde os valores de tempo são expressos em unidades normalizadas. A sequência RSFb começa 3 unidades depois do início do quadro Fa1 e ala compreende dois quadros Fb1 e Fb2 de parâmetros respectivos (Db1 = 4, Tb1 = 5) e (Db2 = 3, Tb2 = 4).
[0031] A operação Da1 começa uma unidade depois do início do quadro correspondente. No fim da operação Da1, não se pode ainda começar a operação Da2, mas se pode começar a operação Db1. No fim da operação Db1, nenhuma operação está pronta para ser executada. Espera-se o início do quadro Fa2, aqui o prazo Ea1, para começar a operação Da2. No fim da operação Da2, a operação Db2 está pronta para a execução, mas não se pode lançá-la. De fato, se a operação Db2 fosse lançada imediatamente, ela se terminaria até o prazo Ea3, de modo que a operação Da3 não poderia ser executada antes desse prazo Nesse caso, espera-se o início do quadro Fa3 para lançar a operação Da3. Finalmente, no fim da operação Da3, é possível começar a operação Db2.
[0032] Na figura 3B, os mesmos parâmetros são conservados, ex ceto que a operação Da1 começa três unidades depois do início do quadro. As operações Db1 e Da2 se encontram retardadas de duas unidades em relação à figura 3A, ao mesmo tempo em que são respei- tadas as restrições dos quadros correspondentes. A operação Da2 se termina justo em seu prazo Ea2.
[0033] Na figura 3C, os mesmos parâmetros são conservados, ex ceto que a operação Da1 começa quatro unidades depois do início do quadro. As operações Db1 e Da2 se encontram retardadas de três unidades em relação à figura 3A. A operação Db1 pode ainda ser executada respeitando-se seu prazo Eb1, mas a operação Da2 viola seu prazo Ea2.
[0034] Uma primeira etapa comum às técnicas visadas aqui é a composição, para duas tarefas a executar em tempo compartilhado, de duas sequências repetitivas RSFa e RSFb que posam ser desenvolvidas nas condições da figura 3A ou 3B, qualquer que seja a decalagem temporal entre os inícios das sequências. Essa composição é estática, quer dizer feita off-line pelo programador.
[0035] Uma segunda etapa é a verificação que duas sequências quaisquer são compatíveis, quer dizer que elas podem ser desenvolvidas de modo que cada operação possa ser executada respeitando para isso suas restrições, como nas figuras 3A e 3B.
[0036] Essa verificação de compatibilidade pode ser executada em uma ferramenta de desenvolvimento que permite que o programador componha as sequências de ensaios sucessivos. Ela é de preferência executada também no próprio sistema de tempo real, no carregamento para execução dos planos de sequenciamento definidos pelas duas sequências repetitivas. O sistema pode nesse caso ser configurado para se recusar a funcionar se as sequências são detectadas como incompatíveis.
[0037] Uma terceira etapa é a ordenação no sistema de tempo real das operações das duas sequências. Como o mostram as figuras, não basta alternar as operações da primeira sequência com as operações da segunda sequência ou começar uma operação desde que ela está pronta para a execução. A ordenação é efetuada de acordo com os casos seguintes, avaliados a cada data chave. As datas chaves são os inícios de quadro das duas sequências, os prazos, e os fins de operação. Quando os intervalos de tempo de reserva R (figura 2) são nulos, como é o caso nos exemplos apresentados, os prazos coincidem com os inícios de quadro. Para uma data chave dada associada a uma primeira das sequências, é chamada de "quadro concorrente" o quadro em curso da segunda sequência.
[0038] 1) Nenhuma operação pode começar. Esse caso se produz quando uma operação já está em curso (como no prazo Eb1 da figura 3A), ou então no fim de uma operação que se executou entre a operação do quadro concorrente e seu prazo, como para a operação Db1 da figura 3A. Nesse caso, espera-se a data chave seguinte.
[0039] 2) Duas operações podem começar. Esse caso se produz geralmente quando começa um quadro e que uma operação está em espera no quadro concorrente, como é o caso no prazo Ea2 das figuras 3A e 3B. Executa-se então a operação que tem o prazo mais curto (Da3 nas figuras 3A e 3B). O caso se produz também quando dois quadros concorrentes começam ao mesmo tempo.
[0040] 3) Uma só operação pode começar. Esse caso se produz geralmente no fim de uma operação (Da1), ou no início de um quadro quando a operação do quadro concorrente terminou (Ea1, figura 3A). Executa-se então a operação somente se sua necessidade de execução é inferior ou igual ao tempo que resta até o início do próximo quadro concorrente, aumentado da margem de tempo associada a esse quadro concorrente. Por exemplo, na figura 3A, a operação Da2 está pronta para começar no prazo Ea1, restam 3 unidades até o início do quadro Fb2, e Tb2 = 4. A operação Da2 é começada pois Da2 = 4 < 3 + 4.
[0041] No caso contrário, espera-se a próxima data chave para reavaliar a situação. Por exemplo, na figura 3A, a operação Db2 está pronta para execução no fim da operação Da2. No entanto, resta uma unidade até o início do quadro Fa3 e Ta3 = 1, daí Db2 = 3 > 1 + 1.
[0042] São definidos agora critérios de compatibilidade entre duas sequências repetitivas RSFa e RSFb quaisquer que servem para definir planos de sequenciamento para um sistema de tempo real.
[0043] Uma verificação de compatibilidade exaustiva consistiria em examinar todas as combinações possíveis de posições das operações em seus quadros e todas as posições possíveis de uma das sequências em relação à outra, com uma granularidade de um ciclo de relógio, para avaliar se as operações concorrentes podem ser executadas de acordo com as restrições impostas.
[0044] Uma tal verificação exaustiva seria difícil de realizar em um tempo razoável. São buscados critérios simplificados que possam ser avaliados on-line no sistema de tempo real no momento do carregamento dos planos de sequenciamento que acompanham o código executável das tarefas. Para isso, são consideradas três hipóteses gerais de posicionamento de cada quadro de uma das sequências em relação a cada quadro da outra sequência. Para cada hipótese, buscase verificar que a operação do quadro considerado Fai pode ser executada em um intervalo livre deixado pelos quadros concorrentes Fbj, Fbj+1...que se sobrepõem ao quadro Fai. Dois quadros Fai e Fbj são considerados como compatíveis quando a verificação é satisfeita para cada uma das três hipóteses.
[0045] • Hipótese (A): o quadro considerado Fai começa quando a operação Dbj do primeiro quadro concorrente Fbj foi executada.
[0046] • Hipótese (B): a operação do primeiro quadro concorrente está em curso de execução.
[0047] • Hipótese (C): a operação do quadro concorrente não co meçou.
[0048] Para cada hipótese são buscados critérios independentes da posição relativa dos quadros. Para isso, de modo geral, minora-se os intervalos de tempo desconhecidos que servem para encontrar períodos de tempo para executar as operações, e majora-se os intervalos de tempo desconhecidos que servem para verificar o respeito dos prazos.
[0049] As figuras 4A a 4C ilustram exemplos de quadros que po dem servir para a elaboração de critérios de compatibilidade de acordo com a hipótese (A). O quadro considerado Fai começa durante o quadro concorrente Fbj, enquanto que a operação Dbj desse quadro concorrente está terminada. O quadro Fai se sobrepõe ao quadro concorrente seguinte Fbj+1. Tudo o que se sabe do início do quadro Fai é que ele está situado em um intervalo qTbj que segue o fim da operação Dbj, onde 0 ≤ q ≤1.
[0050] Na figura 4A, o quadro Fai se termina antes do quadro Fbj+1. A operação Dai poderia ser lançada desde o fim da operação Dbj em um intervalo qTbj + Tbj+1. Mas q sendo desconhecido e qualquer, é considerado o pior caso com q = 0, quer dizer no qual a operação Dai começa no início do quadro Fbj+1. Assim, a operação Dai pode ser executada se: Dai < Tbj+1. [A.1]
[0051] Na figura 4B, a operação Dai não satisfaz a condição A.1. É considerado nesse caso executar a operação Dai sobreposta sobre os quadros Fbj+1 e Fbj+2, significando que o quadro Fai se sobrepõe aos três quadros Fbj a Fbj+2. Isso exige satisfazer ao mesmo tempo uma condição para garantir que a soma dos intervalos Tbj+1 e Tbj+2 seja suficiente, e uma condição para garantir que o prazo Eai seja respeitado: Dai ≤ Tbj+1 + Tbj+2 E qTbj + Dbj+1 + Dai < Dai + Tai, ou seja qTbj + Dbj+1 ≤ Tai
[0052] O pior caso para o respeito do prazo é q = 1, majorando o membro esquerdo da desigualdade. Portanto o prazo Eai é respeitado em todos os casos se: Tbj + Dbj+1 ≤ Tai
[0053] No entanto, não é realista considerar em um mesmo con texto situações pior caso utilizando os dois valores extremos de uma mesma variável. Na realidade, uma certa faixa de valores para a variável q pode ser excluída se for considerado o comportamento do sistema real na situação da figura 4A.
[0054] A figura 4C ilustra o comportamento do sistema real na si tuação da figura 4A. A operação Dbj estando terminada, o sistema, co-nhecendo os parâmetros dos quadros on-line, lança a operação Dai desde o início do quadro Fai do momento que: Dai ≤ qTb+j+ + Tbj+1 quer dizer se as condições 3) do método de ordenação são respeitadas.
[0055] Será anotado q1 o valor limite de q para atingir a igualdade na desigualdade acima: Dai = q1Tbj + Tbj+1, ou seja q1 = (Dai - Tbj+1)/Tbj
[0056] Se q > qi, tem-se certeza que a execução no sistema real ocorreu de acordo com a figura 4C e que não se é levado a considerar a situação da figura 4B. O pior caso para a figura 4B é então q = q1, de modo que: q1Tbj + Dbj+1 ≤ Tai, ou seja, substituindo-se q1 por seu valor, Dai - Tbj+1 + Dbj+1 ≤ Tai, ou ainda Dai + Dbj+1 ≤ Tai + Tbj+1
[0057] A expressão utilizada para calcular o valor q1 não é limitado a 1. Se ele excede 1, isso não tem sentido prático. O valor q1 é então limitado a 1.
[0058] As condições que resultam da situação da figura 4B são portanto: Dai ≤ Tbj+i + Tbj+2 E [A.2] q1Tbj + Dbj+1 ≤ Tai
[0059] A condição A.1 é verificável em uma situação na qual o quadro Fai se sobrepõe a pelo menos dois quadros Fb consecutivos. A condição A.2 é verificável em uma situação na qual o quadro Fai se sobrepõe a pelo menos três quadros Fb consecutivos. É possível encontrar de maneira similar condições A.3 e seguintes verificáveis em situações nas quais o quadro Fai se sobrepõe a pelo menos quatro quadros Fb consecutivos ou mais, mas a satisfação de tais condições é cada vez menos provável. As condições A.1 e A.2 (e, se for o caso, A.3 e seguintes) são alternativas, quer dizer que basta que qualquer uma dessas condições seja verificada para que se prossiga pela validação das outras hipóteses.
[0060] As figuras 5A e 5B ilustram exemplos de quadros que po dem servir para a elaboração de critérios de compatibilidade de acordo com a hipótese (B). O quadro considerado Fai começa durante o quadro concorrente Fbj, enquanto a operação Dbj desse quadro concorrente está em curso. No pior caso, como está representado, a operação Dbj começa. As situações são similares àquelas das figuras 4A e 4B, exceto que se leva em consideração o tempo de duração Dbj para verificar o respeito do prazo Eai.
[0061] De acordo com a figura 5A, tem-se:
[0062] Dai ≤ Tbj+1, e, para respeitar o prazo Eai, Dbj + Dai ≤ Dai + Tai, ou seja Dbj ≤ Tai
[0063] As condições que resultam da situação da figura 4B são portanto: Dai ≤ Tbj+1 E [B.1] Dbj ≤ Tai
[0064] De acordo com a figura 5B, seguindo-se o mesmo raciocí nio que para a figura 4B, obtém-se: Dai ≤ Tbj+i + Tbj+2 E [B.2] Dbj + q1Tbj + Dbj+1 ≤ Tai
[0065] Como para a condição A.1, a condição B.1 é verificável em uma situação na qual o quadro Fai se sobrepõe a pelo menos dois quadros Fb consecutivos. A condição B.2 é verificável em uma situação na qual o quadro Fai se sobrepõe a pelo menos três quadros Fb consecutivos. É possível encontrar de maneira similar condições B.3 e seguintes verificáveis em situações nas quais o quadro Fai se sobrepõe a pelo menos quatro quadros Fb consecutivos ou mais, mas a satisfação de tais condições é cada vez menos provável. As condições B.1 e B.2 (e, se for o caso, B.3 e seguintes) são alternativas, quer dizer que basta que qualquer uma dessas condições seja verificada para que se prossiga pela validação das outras hipóteses.
[0066] A figura 6 ilustra um exemplo de quadros que podem servir para a elaboração dos critérios de compatibilidade de acordo com a hipótese (C). No âmbito da hipótese (C) é suposto que a operação Dbj ainda não foi executada. Se o prazo do quadro Fai chega depois do prazo do quadro Fbj, são encontradas as mesmas situações que aquelas das figuras 5A e 5B, nas quais a operação Dbj começa tal e qual. Assim, só é considerado no âmbito da hipótese (C) o caso no qual o prazo do quadro Fai chega antes do prazo do quadro Fbj.
[0067] As duas operações Dai e Dbj estão prontas para execução no início do quadro Fai. É possível supor que a operação Dbj não foi lançada no início de seu quadro, pois as condições 3) da ordenação não foram satisfeitas, por exemplo, como está representado, quando a operação Dai-j se termina em seu prazo no início do quadro Fai. O prazo Eai sendo o mais curto, a operação Dai é lançada primeiro. A ope- ração Dbj é lançada no fim da operação Dai. No pior caso nos limites da hipótese (C), os prazos dos quadros Fai e Fbj coincidem, caso no qual, se deve ter: Dbj ≤ Tai [C.1]
[0068] É encontrada essa mesma desigualdade supondo-se que a operação Dbj começa no início do quadro Fai, embora o método de ordenação previsto não procedesse assim. Para que a operação Dai se termine antes de seu prazo, é verificado Dbj + Dai < Dai + Tai, ou seja a mesma desigualdade que acima.
[0069] Cada quadro Fai é assim comparado com cada quadro Fbj, verificando-se que os prazos dos quadros Fai são respeitados, sem no entanto verificar o respeito dos prazos dos quadros Fbj. Isso forma uma primeira passagem de verificação. Uma segunda passagem para completar a verificação consiste então em repetir as operações acima comparando-se cada quadro Fbj com cada quadro Fai, verificando-se devido a isso o respeito dos prazos dos quadros Fbj.
[0070] A verificação da compatibilidade de duas sequências repeti tivas RSFa e RSFb, que têm respectivamente Na e Nb quadros, pode ser resumida pelo pseudocódigo seguinte. Nesse pseudocódigo, foram condensadas condições alternativas em expressões min(x, y) no lado esquerdo das desigualdades, e max(x, y) no lado direito das desigualdades, e foram condensadas condições necessárias em expressões min(x,y) no lado direito das desigualdades, e max(x, y) no lado esquerdo das desigualdades. Foram previstas condições A.3 e B.3, mencionadas precedentemente, para levar em consideração a eventualidade na qual o quadro Fai se sobreporia a quatro quadros Fbj a Fbj+3. As operações nos índices i e j são evidentemente efetuadas de acordo com a relação de equivalência do valor máximo do índice (Na para i, e Nb para j), visto que as sequências de quadros são repetíveis ao infinito. Para cada i entre 0 e Na-1 fazer: Para cada j entre 0 e Nb-1 fazer: [A.1] se Dai ≤ Tbj+i então continuar em [B.1] [A.2] q1 := (Dai - Tbj+1)Tbj se q1 > 1 ou Tbj = 0 então q1 := 1 se Dai ≤ Tbj+1 + Tbj+2 e q1Tbj + Dbj+1 ≤ Tai então continuar em [B.1] [A.3] se Dai ≤ Tbj+2 + Tbj+3 e q1Tbj + Dbj+1 + Dbj+2 + min[Tbj+1, Dai] ≤ Tai então continuar em [B.1] terminar o laço com falha [B.1] se Dai ≤ Tbj+1 e Dbj ≤ Tai então continuar em [D] [B.1.1] q1 := (Dai - Tbj+1)Tbj se q1 > 1 ou Tbj = 0 então q1 := 1 e continuar em [B.2] T1 := Tai - (1-q1)Tbj se Dbj-1 ≤ T1 então continuar em [C.1] [B.2] se Dai ≤ Tbj+1 + Tbj+2 e Dbj + q1Tbj + Dbj+1 ≤ Tai então continuar em [C.1] [B.3] se Dai ≤ Tbj+2 + Tbj+3 e Dbj + qiTbj + Dbj+i + mln[Tbj+i, Dai] + Dbj+2 ≤Tai então continuar em [C.1] terminar o laço com falha [C.1] se Dbj ≤ Tai então continuar em [D] terminar o laço com falha [D] Passar ao j seguinte Passar ao i seguinte
[0071] Para completar a verificação, como foi precedentemente indicado, esse laço é reiterado intervertendo para isso os quadros Fa e Fb.
[0072] Nesse laço, de acordo com uma variante em relação ao que foi descrito precedentemente, antes de passar para a avaliação da condição B.2, é avaliada uma condição B.1.1.
[0073] A figura 7 ilustra um exemplo de sucessão de quadros que servem para estabelecer a condição B.1.1. Os quadros Fai e Fbj estão nas mesmas condições que na figura 4A, mas no lugar de começar a operação no início do quadro Fbj+1, é suposto que é possível começá- la imediatamente depois da operação Dbj, e busca-se nos quadros precedentes Fai+1 e Fbj-1 as condições gerais que o permitem com q = q1. A condição B.1, como a condição B.1, é baseada na hipótese de que o quadro Fai se sobrepõe a dois quadros (Fbj e Fbj+1), o que corresponde a uma situação mais provável de encontrar do que aquela na qual o quadro Fai se sobrepõe a três quadros ou mais.
[0074] Como foi precedentemente indicado, os quadros podem incorporar um tempo de reserva R que pode ser utilizado pelo sistema para efetuar tarefas não de tempo real. Um tal tempo de reserva pode ser utilizado para executar operações de tempo real. Ele vem se acrescentar às margens de tempo T de uma sequência para favorecer a execução das operações D da outra sequência, mas ele pode tornar mais rígidas as condições de respeito dos prazos.
[0075] Tempos de reserva R não nulos podem notadamente sua vizar a condição C.1.
[0076] A figura 8 ilustra um exemplo de sucessão de quadros que servem para estabelecer uma restrição suavizada no caso em que a condição C.1 não é satisfeita, quer dizer se Dbj > Tai. No âmbito da hipótese C, é suposto que a operação Dbj ainda não começou no início do quadro Fai. A operação Dai, que tem o prazo mais curto, começa desde o início do quadro Fai. O quadro Fbj começa antes do quadro Fai, supõe- se durante o intervalo Rai-1 do quadro Fai-1. É anotado kRai-1 o intervalo entre o início do quadro Fbj e o início do quadro Fai, com 0 ≤ k ≤ 1.
[0077] Se a operação Dbj não foi ordenada no início de seu quadro Fbj, é que: Dbj > kRai-1 + Tai.
[0078] É anotado k1 o valor limite de k tal que Dbj = k1Rai-1 +Tai, ou seja k1 = (Dbj - Tai)/Rai-1. Se k > k1, tem-se a certeza que a operação Dbj pode ser ordenada antes do início do quadro Fai - esse caso não deve ser considerado, pois ele não corresponde à hipótese C. Só são considerados então os valores de k compreendidos entre 0 e k1.
[0079] Para que Dai possa se executar, é preciso que Dai ≤ Tbj - kRai-1. O pior caso é k = k1, caso no qual tem-se: Dai ≤ Tbj - k1Rai-1, ou seja, substituindo-se k1 por seu valor: Dai ≤ Tbj - (Dbj - Tai), ou Dbj ≤ Tai + Tbj - Dai
[0080] O coeficiente k1 é no máximo igual a 1, o que se exprime por: Dbj - Tai ≤ Rai-1, ou seja Dbj ≤ Tai + Rai-1
[0081] Finalmente, para não impedir a execução da operação Dai- 1, a operação Dbj não deve transbordar sobre o quadro Fai+1. Isso é satisfeito se: Dbj ≤ Tai + Rai.
[0082] Chega-se assim à condição seguinte, alternativa à condição C.1: Dbj ≤ Tai + Tbj - Dai E Dbj ≤ Tai + Rai-1 [C.2] E Dbj ≤ Tai + Rai
[0083] O pseudocódigo seguinte leva em consideração as reser vas de tempo R. Para cada i entre 0 e Na-1 fazer: Para cada j entre 0 e Nb-1 fazer: [A.1] se Dai ≤ Tbj+i então continuar em [B.1] [A.2] q1 := (Dai - Tbj+1)/(Tbj + Rbj) se q1 > 1 ou Tbj + Rbj = 0 então q1 := 1 se Dai ≤ Tbj+1 + Rbj+1 + Tbj+2 e q1(Tbj + Rbj) + Dbj+1 ≤ Tai então continuar em [B.1] [A.3] se Dai ≤ Tbj+2 + Rbj+2 + Tbj+3 e Dbj+1 + q1(Tbj + Rbj) + Dbj+2 + min[Tbj+1 + Rbj+1, Dai] ≤ Tai então continuar em [B.1] terminar o laço com falha [B.1] se Dai ≤ Rbj + Tbj+i e Dbj ≤ Tai então continuar em [C.2] q1 := (Dai - Rbj - Tbj+1)/Tbj se q1 > 1 ou Tbj = 0 então q1 := 1 e continuar em [B.2] [B.1.1] T1 := Tai-1 - (1 - q1)Tbj)Tbj + Rai-1 se Dbj-1 ≤ T1 + min[Tbj-1 + Dbj-1 + Rbj-1 - T1 - Dai-1, Rai-2] então continuar em [C.1] [B.1.2] se Dbj-1 + Rbj-1 ≤ T1 e Dai-1 ≤ Tbj-2 + Rbj-2 + Tbj-1 e Tbj-2 + Dbj-2 + Rbj-2 + Tbj-1 + Dbj-1 + Rbj-1 ≤ Rai-2 + T1 + Dai-1 então continuar em [C.1] [B.2] se Dai ≤ Tbj+1 + Rbj+1 + Tbj+2 e Dbj + q1Tbj + Rbj + Dbj+1 ≤ Tai então continuar em [C.1] [B.3] se Dai ≤ Tbj+2 + Rbj+2 + Tbj+3 e Dbj + q1Tbj + Rbj+1, Dai] + Dbj+2 ≤ Tai então continuar em [C.1] terminar o laço com falha [C.1] se Dbj ≤ Tai então continuar em [D] [C.2] se Dbj ≤ Tai + min[Tbj - Dai, Rai, Rai-1] então continuar em [D] terminar o laço com falha [D] Passar ao j seguinte Passar ao i seguinte
[0084] A condição B.1.2 que aparece nesse pseudocódigo é esta belecida de acordo com o mesmo procedimento que a condição B.1.1 aprofundando para isso as pesquisas nos quadros Fai-2 e Fbj-2.
[0085] Até agora, foi suposto que as bases de tempo que servem pa ra cadenciar as duas tarefas era isócronas, quer dizer que os tempos dos intervalos de uma das sequências não eram variáveis em relação àqueles da outra sequência. Na prática, é possível ser levado a compor duas tarefas que utilizam bases de tempos não correlacionadas, como tarefas alinhadas nas posições de elementos móveis de velocidades variáveis.
[0086] Para tratar esse caso, é introduzido um coeficiente de vari abilidade z > 1 para cada sequência repetitiva, za e zb respectivamente para as sequências RSFa e RSFb. Os coeficientes za e zb são fixos e representam a desaceleração máxima sofrida pelos intervalos T e R nas duas sequências. Supondo-se que as notações utilizadas nas relações precedentes representam os valores mínimos dos intervalos, cada um dos valores T e R pode assim tomar dois valores T ou zT e R ou zR. As necessidades de execução D são fixas, pois elas dependem somente do relógio do sistema.
[0087] Nas relações precedentes, quando um intervalo serve para encontrar um período de tempo para executar uma operação, conserva-se seu valor minorado T ou R. Quando o intervalo serve para verificar o respeito de um prazo, toma-se seu valor majorado zT ou zR. Obtém-se então o pseudocódigo seguinte. Para cada i entre 0 e Na-1 fazer: Para cada j entre 0 e Nb-1 fazer: [A.1] se Dai ≤ Tbj+i então continuar em [B.1] [A.2] q1 := (Dai - Tbj+1)/(Tbj + Rbj) se q1 > 1 ou Tbj + Rbj = 0 então q1 := 1 se Dai ≤ Tbj+i + Rbj+i + Tbj+2 e min[qi(zb*(Tbj + Rbj) + (zb-i)Dbj), Dai] + Dbj+i ≤ Tai então continuar em [B.1] [A.3] se Dai ≤ Tbj+2 + Rbj+2 + Tbj+3 e Dbj+i + min[qi(zb*(Tbj + Rbj) + (zb-1)Dbj, Dai] + Dbj+2 + min[zb*(Tbj+i + Rbj+i) + (zb-i)Dbj+i, Dai] ≤ Tai então continuar em [B.1] terminar o laço com falha [B.1] se Dai ≤ Rbj + Tbj+i e Dbj ≤ Tai então continuar em [C.2] [B.1.1] qi := (Dai - Rbj - Tbj+i)/Tbj se qi > i ou Tbj = 0 então qi := i e continuar em [B.2] Ti := Tai-i - (i - qi)Tbj + Rai-i se Dbj-i ≤ Ti + min[Tbj-i + Dbj-i + Rbj-i - Ti - Dai-i, Rai-2] então continuar em [C.1] [B.1.2] se Dbj-i + zb»Rbj-i ≤ Ti e Dai-i ≤ Tbj-2 + Rbj-2 + Tbj-i e zb*(Tbj-2 + Dbj-2 + Rbj-2 + Tbj-i + Dbj-i + Rbj-i ≤ Rai-2 + Ti + Dai-i então continuar em [C.1] [B.2] se Dai ≤ Tbj+i + Rbj+i + Tbj+2 e Dbj + min[qi(zb»Tbj + (zb-1)Dbj) + zb*Rb + Dai] + Dbj+i ≤ Tai então continuar em [C.1] [B.3] se Dai ≤ Tbj+2 + Rbj+2 + Tbj+3 e Dbj + min[qi(zb*Tbj + (zb-1)Dbj) + zb»Rbj, Dai] + Dbj+i + min[zb»(Tbj+i + Rbj-i) + (zb-1)Dbj+i, Dai] + Dbj+2 ≤ Tai então continuar em [C.1] terminar o laço com falha [C.1] se Dbj ≤ Tai então continuar em [D] [C.2] se Dbj ≤ Tai + min[Tbj - Dai, Rai, Rai-i] então continuar em [D] terminar o laço com falha [D] Passar ao j seguinte Passar ao i seguinte
[0088] Para o caso 3 do método de ordenação descrito mais aci ma, a margem de tempo a considerar é o valor mínimo, a saber T e não zT.
[0089] Os princípios que acabaram de ser apresentados foram descritos em relação com duas tarefas a executar em tempo compartilhado, mas eles se aplicam a um número de tarefas qualquer. De fato, o método descrito permite na prática compor um plano de sequencia- mento único para duas tarefas compatíveis. O plano de sequencia- mento assim obtido pode ser composto de novo, utilizando para isso as mesmas técnicas, com um plano de sequenciamento de uma terceira tarefa compatível, e assim por diante.

Claims (6)

1. Método de execução de duas tarefas em tempo compartilhado, caracterizado pelo fato de que compreende as etapas seguintes: • decompor off-line cada tarefa em uma sequência repetitiva de quadros sucessivas (RSF) em uma base de tempo associada, onde cada quadro (F) é associado a uma operação atômica que tem uma necessidade de execução (D), e define uma data de início a partir da qual a operação pode começar e uma data de prazo (E) na qual a operação deve estar terminada, daí resulta que cada quadro define uma margem de tempo (T) na qual a operação pode começar; • verificar para cada quadro (Fai) de uma primeira das sequências repetitivas (RSFa) que a operação correspondente (Dai) pode ser executada entre duas operações sucessivas quaisquer de um grupo de quadros (Fbj, Fbj+1) da segunda sequência repetitiva (RSFb), sobrepondo-se ao quadro (Fai) da primeira sequência repetitiva, ao mesmo tempo em que são respeitadas as datas de início e dos prazos das operações; e • se a verificação for satisfeita, permitir a execução das duas tarefas e ordenar as operações das duas tarefas de acordo com os casos seguintes avaliados em cada data chave, onde uma data chave sobrevém a cada prazo, cada data de início, e cada fim de execução de operação: • se duas operações (Da3, Db2) podem começar, executar aquela (Da3) que tem o prazo mais curto; e • se uma só operação pode começar, executar a mesma somente se sua necessidade de execução for inferior ao tempo que resta até a data de início do próximo quadro da outra sequência, aumentado da margem de tempo (T) associada ao dito próximo quadro da outra sequência.
2. Método de acordo com a reivindicação 1, caracterizado pelo fato de que cada quadro (F) compreende por outro lado um intervalo de tempo de reserva (R) que pode ser nulo, situado depois do prazo (E) do quadro ou antes da data de início do quadro, os intervalos de tempo de reserva de qualquer uma das sequências repetitivas podendo ser utilizados para executar uma operação da outra sequência repetitiva.
3. Método de acordo com a reivindicação 1, caracterizado pelo fato de que a etapa de verificação compreende as etapas seguintes: • para cada quadro Fai da primeira sequência repetitiva, avaliar as condições seguintes para cada quadro Fbj da segunda sequência repetitiva: [A.1] Dai ≤ Tbj+i [B.[1] Dai ≤ Rbj + Tbj+i e Dbj ≤ Tai, e [C.i] Dbj ≤ Tai, onde D, T e R são a necessidade de execução, a margem de tempo, e o tempo de reserva, indexados por um identificador de sequência repetitiva e pelo número de quadro na sequência; • repetir as avaliações das condições intervertendo para isso aos quadros Fai e Fbj; • permitir a execução das tarefas se as três condições [A.i], [B.i] e [C.i] são satisfeitas para qualquer par (i, j).
4. Método de acordo com a reivindicação 3, caracterizado pelo fato de que a etapa de verificação compreende as etapas seguintes: • se a condição [A.i] for falsa, avaliar a condição seguinte: [A.2] Dai ≤ Tbj+i + Rbj+i + Tbj+2 e Dai + Dbj+i ≤ Tai + Tbj+i • se a condição [B.1] for falsa, avaliar a condição seguinte: [B.2] Dai ≤ Tbj+i + Rbj+i + Tbj-2 e Dbj + Dai + Dbj+i ≤ Tai + Tbj+i • se a condição [C.i] for falsa, avaliar a condição seguinte: [C.2] Dbj ≤ Tai + min[Tbj-Dai, Rai, Rai-i] • permitir a execução das tarefas se as condições [A.i] ou [A.2], e [B.i] ou [B.2] e [C.i] ou [C.2} são satisfeitas para qualquer par (i, j).
5. Método de acordo com a reivindicação 3, caracterizado pelo fato de que as bases de tempo que determinam os tempos de duração dos quadros são variáveis de modo que as margens de tempo T e as reservas de tempo R variam de um fator i a za para os quadros Fa e de i a zb para os quadros Fb, a etapa de verificação compreendendo então as etapas seguintes: • se a condição [A.i] for falsa, avaliar a condição seguinte: [A.2] Dai ≤ Tbj+i + Rbj+i + Tbj+2 e min[q-(zb≤Tb + Rbj) + (zb-i)Dbj), Dai] + Dbj+i ≤ Tai onde qi = (Dai - Tbj+i)/(Tbj + Rbj) • se a condição [B.i] for falsa, avaliar a condição seguinte: [B.[2] Dai ≤ Tbj+i + Rbj+i + Tbj-2 e Dbj + min[qi(zb^Tbj + (zb-i)Dbj) + zb^Rbj, Dai] + Dbj+i ≤ Tai onde qi = (Dai - Rbj - Tbj+i)/Tbj; • se a condição [C.i] for falsa, avaliar a condição seguinte: [C.2] Dbj ≤ Tai + min[Tbj-Dai, Rai, Rai-i] • permitir a execução das tarefas se as condições [A.i] ou [A.2], e [B.i] ou [B.2] e [C.i] ou [C.2] são satisfeitas para qualquer par (i, j).
6. Método de acordo com a reivindicação 5, caracterizado pelo fato de que a etapa de verificação compreende as etapas seguintes: • se a condição [B.1] for falsa, avaliar antes da condição [B.2] a condição seguinte: [B.1.[1] Dai ≤ Tbj + Rbj + Tbj+i e Dbj-1 ≤ TI + min[Tbj-1 + Dbj-1 + Rbj-1 - Daw, Rai-2] onde q1 = (Dai - Rbj - Tbj+1)/Tbj e T1 = Tai-1 - (1-q1)Tbj + Rai-1 • permitir a execução das tarefas se as condições [A.1] ou [A.2], e [B.1] ou [B.1.1] e [C.1] ou [C.2] são satisfeitas para qualquer par (i, j).
BR112016013088-0A 2013-12-18 2014-11-27 Método de composição e de execução de um plano de sequenciamento de tarefas em tempo real BR112016013088B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR1362893 2013-12-18
FR1362893A FR3015067B1 (fr) 2013-12-18 2013-12-18 Procede de composition et d'execution d'un plan de sequencement de taches temps-reel
PCT/FR2014/053055 WO2015092188A1 (fr) 2013-12-18 2014-11-27 Procede de composition et d'execution d'un plan de sequencement de taches temps-reel

Publications (2)

Publication Number Publication Date
BR112016013088A2 BR112016013088A2 (pt) 2017-08-08
BR112016013088B1 true BR112016013088B1 (pt) 2022-02-15

Family

ID=50543160

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112016013088-0A BR112016013088B1 (pt) 2013-12-18 2014-11-27 Método de composição e de execução de um plano de sequenciamento de tarefas em tempo real

Country Status (10)

Country Link
US (1) US10198290B2 (pt)
EP (1) EP3084602B1 (pt)
JP (1) JP6441349B2 (pt)
KR (1) KR102261021B1 (pt)
CN (1) CN105830030B (pt)
BR (1) BR112016013088B1 (pt)
CA (1) CA2932690C (pt)
FR (1) FR3015067B1 (pt)
RU (1) RU2678469C1 (pt)
WO (1) WO2015092188A1 (pt)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6428493B2 (ja) * 2015-06-05 2018-11-28 株式会社デンソー 自動走行制御装置、自動走行用車載装置、自動走行制御方法
FR3072197B1 (fr) 2017-10-10 2019-10-11 Krono-Safe Procede d'execution de plans de sequencement assurant une communication a faible latence entre taches temps-reel

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2823520B2 (ja) * 1993-12-17 1998-11-11 テキサス インスツルメンツ インコーポレイテツド リアルタイムアプリケーションタスクスケジューリング及び処理システム
JPH10171667A (ja) * 1996-12-13 1998-06-26 Chokosoku Network Computer Gijutsu Kenkyusho:Kk タスク管理方法
US7234139B1 (en) * 2000-11-24 2007-06-19 Catharon Productions, Inc. Computer multi-tasking via virtual threading using an interpreter
JP4074296B2 (ja) * 2005-03-25 2008-04-09 株式会社東芝 スケジューリング可能性判定方法、リアルタイムシステム及びプログラム
KR20070074764A (ko) * 2006-01-10 2007-07-18 주식회사 팬택앤큐리텔 시분할 시스템에서 프로세스를 스케줄링하는 시스템 및 그방법
US8789059B2 (en) * 2007-11-02 2014-07-22 International Business Machines Corporation Dynamic scheduling feasibility analysis of event-driven applications based on reducing tasks of overlapping events
US8621475B2 (en) * 2007-12-06 2013-12-31 International Business Machines Corporation Responsive task scheduling in cooperative multi-tasking environments
CN101408850B (zh) * 2008-11-27 2011-11-23 中国人民解放军信息工程大学 一种在任务流方式下求解复杂问题的方法
FR2949876B1 (fr) * 2009-09-08 2016-04-29 Thales Sa Procede d'ordonnancement temps reel d'un ensemble de taches multi-trames non cycliques
US20120079486A1 (en) * 2010-09-23 2012-03-29 International Business Machines Corporation Integration of dissimilar job types into an earliest deadline first (edf) schedule
CN103365711B (zh) * 2013-07-03 2017-06-30 南京邮电大学 应用于物联网业务平台的任务调度系统和方法

Also Published As

Publication number Publication date
RU2678469C1 (ru) 2019-01-29
KR102261021B1 (ko) 2021-06-04
BR112016013088A2 (pt) 2017-08-08
US10198290B2 (en) 2019-02-05
CN105830030B (zh) 2019-07-12
RU2016128917A (ru) 2018-01-23
CA2932690A1 (fr) 2015-06-25
CA2932690C (fr) 2023-09-05
FR3015067A1 (fr) 2015-06-19
JP2017503251A (ja) 2017-01-26
EP3084602A1 (fr) 2016-10-26
US20170004011A1 (en) 2017-01-05
EP3084602B1 (fr) 2021-07-14
CN105830030A (zh) 2016-08-03
JP6441349B2 (ja) 2018-12-19
FR3015067B1 (fr) 2017-03-17
KR20160100377A (ko) 2016-08-23
WO2015092188A1 (fr) 2015-06-25

Similar Documents

Publication Publication Date Title
US20110067015A1 (en) Program parallelization apparatus, program parallelization method, and program parallelization program
Lombardi et al. Robust scheduling of task graphs under execution time uncertainty
Huang et al. Search strategy for scheduling flexible manufacturing systems simultaneously using admissible heuristic functions and nonadmissible heuristic functions
US20200225960A1 (en) Handling exceptions in a machine learning processor
CN105144104A (zh) 关键实时系统中执行任务的方法
Laalaoui et al. Pre-run-time scheduling in real-time systems: Current researches and artificial intelligence perspectives
Balasubramanian et al. Radical-cybertools: Middleware building blocks for scalable science
Chen et al. Hare: Exploiting inter-job and intra-job parallelism of distributed machine learning on heterogeneous gpus
Choi et al. Toward practical weakly hard real-time systems: A job-class-level scheduling approach
BR112016013088B1 (pt) Método de composição e de execução de um plano de sequenciamento de tarefas em tempo real
US20140052432A1 (en) Method for a design evaluation of a system
Ekberg et al. An optimal resource sharing protocol for generalized multiframe tasks
Glonina et al. On the correctness of real-time modular computer systems modeling with stopwatch automata networks
Fan et al. An improved task duplication based clustering algorithm for DAG task scheduling in heterogenous and distributed systems
Amin et al. Time-triggered scheduling of query executions for active diagnosis in distributed real-time systems
Dürr et al. Finding total unimodularity in optimization problems solved by linear programs
McElvany Guaranteeing deadlines in MAFT
Magdich et al. A uml/marte-based design pattern for semi-partitioned scheduling analysis
Chang et al. Evolvement of scheduling theories for autonomous vehicles
Shi Analyses and optimizations of timing-constrained embedded systems considering resource synchronization and machine learning approaches
Wang et al. Schedulability analysis and symbolic verification method for heterogeneous multicore real-time systems
Glonina et al. A Stopwatch Automata-Based Approach to Schedulability Analysis of Real-Time Systems with Support for Fault Tolerance Techniques
Chen et al. Packing sporadic real-time tasks on identical multiprocessor systems
Li et al. Reducing worst case reaction time of synchronous programs on chip-multiprocessors with application-specific TDMA scheduling
Morris et al. State-based scheduling via active resource solving

Legal Events

Date Code Title Description
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 27/11/2014, OBSERVADAS AS CONDICOES LEGAIS.