BR112015025326B1 - Processo de ordenação off-line dos tratamentos que formam uma tarefa de acordo com um modelo flexível para um sistema multitarefa em tempo real - Google Patents

Processo de ordenação off-line dos tratamentos que formam uma tarefa de acordo com um modelo flexível para um sistema multitarefa em tempo real Download PDF

Info

Publication number
BR112015025326B1
BR112015025326B1 BR112015025326-1A BR112015025326A BR112015025326B1 BR 112015025326 B1 BR112015025326 B1 BR 112015025326B1 BR 112015025326 A BR112015025326 A BR 112015025326A BR 112015025326 B1 BR112015025326 B1 BR 112015025326B1
Authority
BR
Brazil
Prior art keywords
treatment
time
treatments
alternative
execution
Prior art date
Application number
BR112015025326-1A
Other languages
English (en)
Other versions
BR112015025326A2 (pt
Inventor
Vincent David
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 BR112015025326A2 publication Critical patent/BR112015025326A2/pt
Publication of BR112015025326B1 publication Critical patent/BR112015025326B1/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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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
    • 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Abstract

PROCESSO DE EXECUÇÃO DE TAREFAS EM UM SISTEMA TEMPO REAL CRÍTICO. A invenção é relativa a um processo de execução de uma tarefa formada por um conjunto de tratamentos sequenciais e alternativos. O processo compreende as etapas seguintes: a) atribuir a cada tratamento uma necessidade em recursos materiais e uma restrição temporal; b) associar a cada tratamento um intervalo temporal que tem uma duração que corresponde à restrição temporal do tratamento; c) identificar um ponto de ramificação no qual é decidida a execução de um ou outro de dois tratamentos alternativos (a, b); d) associar aos dois tratamentos alternativos um intervalo temporal comum (+2); e) atribuir ao intervalo temporal comum uma necessidade (max(a, b)) igual à maior das necessidades dos dois tratamentos alternativos; f) reiterar a partir da etapa c) para cada ponto de ramificação; g) organizar os intervalos temporais resultantes em um gabarito de execução associado à tarefa; e h) configurar um sistema multitarefa tempo real para restringir a execução da tarefa em função das necessidades atribuídas aos intervalos temporais do gabarito de execução.

Description

Domínio técnico da invenção
[0001] A invenção é relativa aos sistemas tempo real críticos proje tados para executar os tratamentos que têm prazos imperativos estabelecidos por uma base de tempo. A invenção se refere em especial aos sistemas tempo real que necessitam de um alto nível de desempenhos na utilização dos mesmos, assim como 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 a cada tarefa do sistema.
[0002] A invenção se aplica notadamente aos sistemas de contro- le-comando tais como aqueles utilizados nos domínios dos transportes (automóvel, ferroviário, naval, aeronáutico), dos autômatos industriais, da energia, assim como outros sistemas para os quais a atribuição controlada dos recursos é importante, como nas redes de comunicações.
Estado da técnica
[0003] Nos sistemas tempo real críticos, as tarefas são com fre quência modeladas como atividades periódicas, o que leva à realização de sistemas multitarefas baseados em uma política de prioridades fixas para a ordenação das tarefas, que oferecem garantias sobre os desempenhos atingidos. Um tal sistema é descrito, por exemplo, no artigo ["Scheduling algorithms for multiprogramming in a hard real-time enviroment", C. Liu, J. Layland, Journal of the ACM, vol. 20 no. 1, pp. 46-61].
[0004] Em contrapartida, esse tipo de abordagem tem falta de fle xibilidade quando o modelo muito simples de tarefas periódicas torna complexa o ou restringe a concepção do sistema multitarefa por uma divisão arbitrária em tarefas periódicas de certas atividades tempo real que não o são a priori. De fato, quando uma atividade tempo real não periódica é executada sob a forma de atividades periódicas, isso leva a multiplicar o número de tarefas ou a aumentar o ritmo das tarefas para satisfazer as restrições temporais de maneira separada, cada tarefa não sendo mais obrigatoriamente útil a cada execução periódica, o que impacta negativamente os desempenhos do sistema multitarefa.
[0005] Outras abordagens, com aquelas descritas nos artigos ["Gi otto: A Time-Triggered Language for Embedded Programming", Thomas A. Henzinger, Benjamin Horowitz, and Chistoph Meyer Kirsch, EMSOFT 2001, pp. 166-184, 2001, Springer-Verlag] e ["A method and a technique to model and ensure timeliness in safety critical real-time systems", C. Aussaguès, V. David, Fourth IEEEE International Conference on Engineering of Complex Computer Systems, 1998], propõem modelos de tarefas mais flexíveis que permitem descrever cada tarefa como sequencias de atividades temporais. Uma tarefa é nesse caso formalizada sob a forma de um gráfico de tratamentos com restrições de tempo, os tratamentos podendo ser se for o caso condicionais, como é proposto na patente US7299383.
[0006] É nesse caso possível ter uma grande flexibilidade e um alto nível de desempenhos do sistema multitarefa, e mesmo uma garantia formal da capacidade de ordenação, mas essa garantia impõe geralmente ao sistema uma ordenação dinâmica. Disso resultam interferências temporais entre as tarefas pelo fato de que as tarefas, ou os tratamentos que as constituem, entram em concorrência para a ordenação e de que uma tarefa pode assim ser executada antes ou depois de uma tarefa concorrente.
[0007] Em sistemas críticos, nos quais a segurança da execução tem a primazia, é preferido evitar os sistemas de ordenação dinâmica, pois não é possível testar de maneira exaustiva todas as combinações de ordenação possíveis ou provar a inexistência de situações que podem acarretar uma falha. São preferidos nesse caso sistemas que têm uma combinatória reduzida para as atividades de teste, e portanto visar sistemas que limitam as interferências temporais entre as tarefas. Isso leva classicamente a utilizar uma abordagem estática pouco flexível.
Resumo da invenção
[0008] É desejado assim poder construir sistemas tempo real ba seados em modelos de tarefas flexíveis, mas que oferecem uma execução que limita as interferências temporais.
[0009] Tende-se a satisfazer essa necessidade graças a um pro cesso de execução de uma tarefa formada por um conjunto de tratamentos sequenciais e alternativos, que compreende as etapas seguintes: a) atribuir a cada tratamento uma necessidade em recursos materiais e uma restrição temporal; b) associar a cada tratamento um intervalo temporal que tem uma duração que corresponde à restrição temporal do tratamento; c) identificar um ponto de ramificação no qual é decidida a execução de um ou outro de dois tratamentos alternativos; d) associar aos dois tratamentos alternativos um intervalo temporal comum; e) atribuir ao intervalo temporal comum uma necessidade igual à maior das necessidades dos dois tratamentos alternativos; f) reiterar a partir da etapa c) para cada ponto de ramificação; g) organizar os intervalos temporais resultantes em um gabarito de execução associado à tarefa; e h) configurar um sistema multitarefa em tempo real para restringir a execução da tarefa em função das necessidades atribuídas aos intervalos temporais do gabarito de execução.
[0010] De acordo com um modo de execução, o processo com preende as etapas que consistem em representar a tarefa com o auxílio de um gráfico que define um conjunto de tratamentos ligados por nós de transição, no qual cada nó de transição define um ponto de sincronização de acordo com uma base de tempo por ocasião da exe-cução da tarefa pelo sistema multitarefa; definir os limites do intervalo temporal associado a cada tratamento a partir dos nós de transição fonte e destino do tratamento; para dois tratamentos alternativos que têm um nó fonte comum e dois nós alvo respectivos, fusionar os dois nós alvo em um nó alvo fusionado; e definir o intervalo temporal comum aos dois tratamentos alternativos a partir do nó fonte comum e do nó alvo fusionado.
[0011] De acordo com um modo de execução, para dois tratamen tos alternativos que têm na etapa c) restrições temporais diferentes, o processo compreende as etapas que consistem em criar um nó de transição intermediário em um primeiro dos dois tratamentos alternativos, esse último tendo a restrição temporal mais longa, daí resulta um primeiro tratamento parcial alternativo entre o nó fonte e o nó intermediário, e um segundo tratamento parcial entre o nó intermediário e o nó alvo do primeiro tratamento alternativo; atribuir ao primeiro tratamento parcial alternativo uma primeira necessidade e uma restrição temporal igual à restrição temporal do segundo tratamento alternativo; atribuir ao segundo tratamento parcial uma segunda necessidade tal que a soma das primeira e segunda necessidades seja igual à necessidade do primeiro tratamento alternativo, e uma restrição temporal igual à diferença das restrições temporais dos dois tratamentos alternativos; e proceder com o primeiro tratamento parcial alternativo e o segundo tratamento alternativo de acordo com a etapa d).
[0012] De acordo com um modo de execução do processo, o pro cesso compreende as etapas que consistem, em cada intervalo temporal, em verificar por um temporizador de alarme que a execução do tratamento em curso respeita a necessidade atribuída ao intervalo temporal; e não assinalar anomalia pelo temporizador de alarme se a execução do tratamento em curso excede a necessidade e que o tratamento em curso é o primeiro tratamento parcial alternativo.
[0013] De acordo com um modo de execução, o processo com preende as etapas que consistem em ativar uma variável de estado na execução do primeiro tratamento parcial alternativo; não assinalar anomalia pelo temporizador de alarme se a execução do tratamento em curso excede a necessidade e que a variável de estado está ativa; e desativar a variável de estado a um ponto de sincronização que corresponde a um nó alvo fusionado.
[0014] De acordo com um modo de execução, o processo com preende, para uma parte cíclica do gráfico, as etapas que consistem em dividir cada tratamento que tem uma restrição temporal longa em um conjunto de tratamentos parciais que têm uma restrição temporal curta que é o máximo divisor comum das restrições temporais dos tratamentos da parte cíclica, disso resulta que a parte cíclica do gráfico é transformada em um subgráfico normalizado que define uma sucessão de tratamentos, completos ou parciais, que têm todos eles a mesma restrição temporal normalizada; e repartir a necessidade de cada tra-tamento de restrição temporal longa entre os tratamentos parciais correspondentes, disso resulta que a soma das necessidades dos tratamentos parciais é igual à necessidade do tratamento de restrição temporal longo.
[0015] De acordo com um modo de execução, o processo com preende as etapas que consistem em sobrepor o fim de uma primeira parte do subgráfico sobre o início de uma segunda parte do subgráfi- co, de modo que os nós de transição do fim da primeira parte do sub- gráfico sejam confundidos com nós respectivos do início da segunda parte do subgráfico, disso resulta que dois pares consecutivos de nós confundidos definem um intervalo temporal comum aos tratamentos que têm como origens respectivas os dois nós do primeiro par; e atribuir ao intervalo temporal comum assim definido uma necessidade igual à maior das necessidades dos tratamentos associados ao primeiro par de nós, e uma restrição temporal igual à restrição temporal normalizada. Descrição sumária dos desenhos
[0016] 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: - a figura 1 é um exemplo de gráfico de tarefa tempo real de acordo com um modelo de tarefa flexível, que tem alternativas de ramificação de restrições temporais idênticas; - as figuras 2A e 2B representam um traço de execução parcial de uma das sequencias de tratamentos possível do gráfico da figura 1, e um traço de execução de uma tarefa paralela; - as figuras 3A a 3C representam transformações do gráfico da figura 1 e um gabarito de execução estática resultante; - a figura 4 é um exemplo de gráfico de tarefa tempo real de acordo com um modelo de tarefa flexível, que tem alternativas de ramificação de restrições temporais diferentes; - as figuras 5A a 5C representam transformações do gráfico da figura 4 para uma primeira variante de restrições temporais, e um gabarito de execução estática resultante; - as figuras 6A a 6C representam transformações do gráfico da figura 4 para uma segunda variante de restrições temporais; e - as figuras 7A e 7B ilustram etapas de otimização do ga- barito de execução da figura 5C. Descrição de um modo de realização preferido da invenção
[0017] A figura 1 é um exemplo de gráfico de tarefa tempo real de acordo com um modelo de tarefa flexível. Nesse gráfico, como nos gráficos expostos mais adiante, cada tratamento que compõe a tarefa é representado por um arco orientado entre dois nós de transição, um nó fonte e um nó alvo. Os nós representam pontos de sincronização que servem ao sistema de exploração, por ocasião da execução da tarefa, para organizar o lançamento dos tratamentos. Cada tratamento é recebe uma restrição temporal que identifica a duração entre os pontos de sincronização correspondentes.
[0018] Por outro lado, para que um tratamento possa ser executa do dentro do limite de sua restrição temporal, ele tem também uma necessidade de recursos materiais (ocupação do processador, impressão da memória).
[0019] Cada arco (ou tratamento) do gráfico é anotado por uma informação x+N, na qual x é um indicador de necessidade de recursos e N um indicador de restrição temporal. A necessidade de recursos x pode ser expressa sob a forma de um tempo, a saber o tempo necessário para o acabamento do tratamento supondo-se que ele dispõe da totalidade dos recursos materiais. A restrição temporal pode ser um inteiro que enumera unidades de tempo. Assim, exprimindo-se x e N com a mesma unidade de tempo, os valores x e N são escolhidos tais que x < N. Se x = N, o tratamento precisa de todos os recursos materiais no conjunto do intervalo temporal definido pela restrição temporal, de modo que nenhum outro tratamento pode ser executado em paralelo no mesmo intervalo. (O cálculo das necessidades e das restrições temporais não faz parte do sujeito do presente pedido, e não será descrito em detalhe).
[0020] Abaixo, é identificado também um tratamento pela letra uti- lizada para designar a necessidade.
[0021] O gráfico ou a tarefa é dito de acordo com um "modelo fle xível" pelo fato de que ele compreende ramificações e laços organizados de maneira qualquer. Devido ao fato de que carda ramificação é decidida dinamicamente na execução, e isso de um modo não previsível, não é encontrada periodicidade na sequencia de execução dos tratamentos. As consequências serão compreendidas abaixo.
[0022] A figura 2A representa um traço de execução do gráfico da figura 1. Os nós percorridos por ocasião da execução são transportados sobre um eixo temporal com afastamentos definidos pelas restrições temporais dos tratamentos. Assim, os nós são posicionados em pontos de sincronização fixos nos quais o sistema de exploração lança os tratamentos correspondentes.
[0023] Cada tratamento pode levar um tempo variável de acordo com sua necessidade e os recursos efetivamente disponíveis. O sistema de exploração executa por outro lado um processo de "temporizador de alarme" que é configurado para contar o tempo passado na execução de cada tratamento. Se um tratamento excede a necessidade temporal que lhe é atribuída, o temporizador de alarme assinala uma anomalia. A necessidade temporal pode assim ser considerada como uma quota de tempo de execução.
[0024] A execução da tarefa do gráfico da figura 1 começa no nó 1, onde se apresenta uma primeira ramificação entre dois tratamentos alternativos a e b. O tratamento b é selecionado para execução, levando ao nó 2. Um tratamento d é executado entre os nós 2 e 4. No nó 4 se apresenta uma nova ramificação, entre um tratamento f e um tra-tamento g; o tratamento g é selecionado para execução, levando ao nó 3. Um tratamento c é executado entre os nós 3 e 5. No nó 5 se apresenta uma nova ramificação, entre um tratamento e e um tratamento h; o tratamento h é selecionado para execução, levando ao nó 2.
[0025] No caso geral, as necessidades definidas para os tratamen tos são nitidamente inferiores às restrições temporais, significando que a execução da tarefa deixa recursos livres para executar outras tarefas em paralelo.
[0026] A figura 2B representa um traço de execução de uma tarefa executada em paralelo com a tarefa da figura 2A. Essa tarefa paralela compreende a sequência de tratamentos m, n, p, q e r, que têm necessidades definidas com as mesmas notações. Para facilitar a compreensão, são representados para essa tarefa pontos de sincronização alinhados com aqueles da tarefa da figura 2A, com no entanto variações nas restrições temporais. Para que essa tarefa possa ser ordenada em paralelo com aquela da figura 2A, é desejável, em qualquer intervalo entre pontos de sincronização, que a soma das necessidades dos tratamentos seja compatível com as restrições temporais. Foi indicado sob o eixo dos tempos um jogo possível de inequações a satisfazer para o exemplo considerado.
[0027] Assim, para ordenar duas tarefas em paralelo, é preciso conhecer a sequência dos tratamentos para deduzir dela os parâmetros necessários. Se essa sequência pode ser determinada off-line, a ordenação pode também ser feita off-line, quer dizer de maneira estática. Quando a tarefa é de acordo com um modelo flexível, quer dizer que ela compreende notadamente ramificações, não é possível conhecer a sequência off-line. A ordenação é nesse caso feita tradicionalmente de maneira dinâmica, quer dizer na execução, à medida que as condições de ramificação são identificadas.
[0028] Em um sistema tempo real crítico, é desejado por outro la do verificar que o sistema é seguro para qualquer combinação de ordenação possível. Isso é feito tradicionalmente testando-se todas as combinações. Quando a ordenação é feita de maneira dinâmica, o número de combinações a testar pode se tornar proibitivo na prática.
[0029] É proposta abaixo uma metodologia que permite realizar uma ordenação estática, ou off-line, de tarefas de acordo com um modelo flexível. Essa metodologia permite ao mesmo tempo limitar o número de combinações de ordenação, de modo que elas possam ser verificáveis de maneira exaustiva com o auxílio de ferramentas clássicas.
[0030] Procura-se estabelecer para cada tarefa o que será cha mado de um "gabarito de execução" estático, que é explorável por uma ferramenta de ordenação off-line.
[0031] Para isso, associa-se aos dois tratamentos alternativos que podem seguir uma ramificação um intervalo temporal único no gabarito de execução. A necessidade atribuída ao intervalo único é definida como igual à maior das necessidades dos dois tratamentos alternativos. Resta definir a restrição temporal atribuída ao intervalo, quer dizer os limites do intervalo.
[0032] Em um primeiro tempo, é tratado o caso no qual os trata mentos alternativos têm a mesma restrição temporal. Em um caso mais geral, como será visto mais adiante, se será capaz de efetuar uma transformação que permite voltar ao caso no qual os dois tratamentos alternativos têm a mesma restrição temporal.
[0033] No gráfico da figura 1, os tratamentos alternativos que se guem cada ramificação (nós 1, 4 e 5) têm, justamente, restrições temporais idênticas.
[0034] A figura 3A ilustra uma primeira etapa de transformação do gráfico da figura 1. Os dois nós alvo 2 e 3 das duas tarefas alternativas a e b são fusionadas em um nó único 2_3. Os arcos que ligavam os nós 2 e 3 aos nós 4 e 5 são todos eles ligados ao nó 2_3. Os dois arcos que partiam do nó 1 para os nós 2 e 3 são fusionados em um arco único. Esse arco único é associado a um tratamento "ambivalente" que representa qualquer um dos tratamentos a e b, e anotado a|b+2. Como o indica essa notação, a restrição temporal comum (+2) dos tratamentos a e b se torna a restrição temporal do tratamento ambivalente. A necessidade do tratamento ambivalente é definida igual ao valor máximo, max(a, b), das necessidades dos tratamentos a e b.
[0035] É percebido que os tratamentos c e d, que não eram alter nativas de uma ramificação, se tornam alternativas que partem do nó fusionado 2_3. É percebido também que as alternativas f, g e e, h que partem cada uma delas dos nós 4 e 5 para os nós 2 e 3 são reunidas devido ao fato de que os nós 2 e 3 fusionaram. Teria sido possível desde essa etapa representá-las por um arco único, como o arco a I b+2.
[0036] A figura 3B ilustra uma etapa final de transformação do grá fico da figura 1. Os nós alvo 4 e 5 dos tratamentos alternativos c e d são fusionados em um nó 4_5. São reencontrados nesse caso dois tratamentos c e d de mesma restrição temporal (+4) que partem do nó 2_3 para o nó 4_5, e quatro tratamentos e, f, g e h de mesma restrição temporal (+2) que partem em sentido inverso. De acordo com as regras utilizadas para os tratamentos alternativos a e b, todos os arcos de um mesmo nó fonte para um mesmo nó alvo, e que têm a mesma restrição temporal, são fusionados em um arco único associado a um tratamento ambivalente, conservando a restrição temporal, e cuja necessidade é definida igual ao máximo das necessidades dos arcos fusionados. Obtém-se assim um tratamento único cId+4 do nó 2_3 para o nó 4_5, que tem uma necessidade max(c, d) e um tratamento ambi-valente único eIfIgIh+2 em sentido inverso, que tem uma necessidade max(e, f, g, h). Consegue-se assim suprimir todas as alternativas de um gráfico para produzir um gráfico do qual o percurso se termina por uma parte cíclica a executar de modo contínuo.
[0037] A figura 3C ilustra um gabarito de execução determinado a partir do gráfico transformado da figura 3B, no mesmo formato que o traço de execução da figura 2A. Uma diferença notável entre o gabarito e o traço é que o gabarito é determinado off-line com o auxílio do gráfico transformado da figura 3B.
[0038] A um instante t=0, a execução de uma das alternativas a e b é decidida no nó 1. Pouco importa a alternativa, ela é executada no intervalo único definido entre os nós 1 e 2_3, do qual a duração é compatível com as duas alternativas. Um dos tratamentos c e d é executado, pouco importa qual deles, no intervalo seguinte definido entre os nós 2_3 e 4_5. Finalmente, um dos tratamentos e, f, g e h é executado no intervalo definido entre os nós 4_5 e 2_3. A execução recomeça então de acordo com um novo ciclo R no nó 2_3.
[0039] As necessidades atribuídas aos intervalos entre os nós 1, 2_3, 4_5 e 2_3 são, respectivamente max(a, b), max(c, d), e max(e, f, g, h).
[0040] Esse gabarito de execução é um produto intermediário de uma cadeia de compilação que trata um código fonte que define o gráfico da tarefa. Esse gabarito fornece parâmetros que servem ao sistema de exploração para executar a tarefa e verificar seu correto desenvolvimento, notadamente as necessidades atribuídas aos intervalos temporais, necessidades que servem para configurar um temporizador de alarme para verificar que os tratamentos correspondentes são executados dentro dos tempos.
[0041] Será notado que essa metodologia não modifica o desen volvimento da tarefa, mas sim modifica as restrições de execução dos tratamentos, devido ao fato de que o temporizador de alarme é configurado para levar em consideração necessidades majoradas no lugar de necessidades exatas.
[0042] O gabarito permite por outro lado predizer a qualquer ins tante como a tarefa evolui do ponto de vista de suas necessidades e restrições temporais. De fato, se a parte cíclica R do gabarito da figura 3C é isolado, percebe-se que é possível repetir a mesma ao infinito a partir do primeiro nó 2 da figura 2A para predizer as necessidades e restrições temporais em qualquer ponto dão taco de execução, e isso quaisquer que sejam as alternativas executadas depois das ramificações. A única contrapartida é que os valores das necessidades são majorados no lugar de ser exatos.
[0043] Um gabarito similar é produzido para cada tarefa a executar no sistema. Os tempos de duração dos intervalos temporais e as necessidades correspondentes, definidos nesses gabaritos, são exploráveis por uma ferramenta de ordenação off-line que poderá produzir parâmetros de ordenação estática para o sistema de exploração.
[0044] A figura 4 é um exemplo de gráfico que compreende trata mentos alternativos que têm restrições temporais diferentes, o que corresponde a um caso mais geral do que aquele do gráfico da figura 1. A execução começa em um nó 1 por um tratamento a que chega a um nó 2. No nó 2 ocorre uma ramificação em um tratamento b, de restrição temporal +1, ou um tratamento c, de restrição temporal +4. O tratamento b chega a um nó 3, enquanto que o tratamento c chega a um nó 4. Um tratamento d, de restrição temporal +3 parte do nó 3 na direção do nó 4. Finalmente, um tratamento e parte do nó 4 na direção do nó 1.
[0045] É desejado modificar esse gráfico para que ele seja trans- formável como aquele da figura 1 para definir um gabarito de execução estática. As figuras 5A a 5C ilustram uma metodologia para isso.
[0046] A figura 5A ilustra uma primeira etapa de transformação do gráfico da figura 4. No tratamento alternativo que tem a restrição temporal mais longa, o tratamento c, é inserido um nó intermediário 3b. Considera-se que o arco que liga os nós 2 e 3b representa uma parte c1 do tratamento c, e atribui-se a ele a mesma restrição temporal +1 que o tratamento alternativo b. O arco que liga os nós 3b e 4 represen- ta a parte restante 2c do tratamento c, e atribui-se a ele o complemento +3 da restrição temporal do tratamento c. As necessidades dos tratamentos parciais c1 e c2 são tais que c1+c2 = c. A repartição da necessidade c nas necessidades c1 e c2 pode ser qualquer uma. É pre-ferido otimizar essa repartição, por exemplo de maneira a minimizar as diferenças entre as necessidades dos tratamentos alternativos e o valor majorado dos mesmos. Por exemplo, se c=2, b=0,8, e d=1, será possível tomar c1=0,9 e c2=1,1, produzindo uma diferença máxima de 0,1.
[0047] É possível notar aqui que o fato de ajustar uma necessida de (c1) corresponde à adição de uma restrição de execução a vigiar pelo temporizador de alarme, restrição que não é a priori exigida. Se nenhuma medição é feita, o temporizador de alarme verificará a partir do ponto 2 que a execução do tratamento parcial c1 respeita a neces-sidade c1, enquanto que a restrição inicial é que a execução do tratamento c respeite a necessidade c.
[0048] Uma primeira solução para satisfazer essas restrições é que o agente de desenvolvimento ou a cadeia de compilação gerencie a divisão do tratamento c em tratamentos parciais c1 e c2 adaptados. Isso permite utilizar o sistema de exploração existente sem modificação, em contrapartida de uma modificação das características de exe-cução da tarefa.
[0049] É preferida uma solução que implica uma modificação sim ples do sistema de exploração. Como o ilustra a figura 5A, associa-se às duas alternativas da ramificação do nó 2 uma variável de estado ou bandeira B para identificar a alternativa tomada na execução. Quando a alternativa executada corresponde ao arco não modificado (b), a bandeira B permanece em seu valor nominal (por exemplo, 0). Quando a alternativa corresponde ao arco modificado (c1) a bandeira B é definida pelo próprio tratamento ou pelo sistema de exploração. A utiliza- ção dessa bandeira será descrita em detalhe em relação com a figura 5C.
[0050] A figura 5B ilustra uma transformação final do gráfico da figura 5A. Devido à inserção do nó 3b, que cria dois tratamentos alternativos de mesma restrição temporal, foi possível fusionar seus nós alvo 3 e 3b de acordo com a metodologia descrita em relação com a figura 3A. Cria-se assim um tratamento ambivalente b|cl entre o nó 2 e o nó fusionado 3_3b, que tem a restrição temporal +1 e a necessidade max(b, c1).
[0051] Utilizando-se a bandeira B, o tratamento ambivalente é ano tado b(B=0)|c1(B=1).
[0052] Os tratamentos d e c2 que partiam dos nós 3 e 3b na dire ção do nó 4, que têm a mesma restrição temporal +3, podem ser fusionados em um tratamento ambivalente único c2|d que tem a restrição temporal +3 e a necessidade max(c2, d).
[0053] A figura 5C ilustra um gabarito de execução determinado a partir do gráfico transformado da figura 5B. Esse gabarito é repetitivo de acordo com a sequencia de nós 1, 2, 3_3b, 4.
[0054] Se a bandeira B não é utilizada, e que o tratamento parcial c1 é executado em seu intervalo correspondente, um temporizador de alarme verifica a partir do ponto 2 que o tratamento c1 respeita sua necessidade c1. O tratamento parcial c1 deve então ser projetado para satisfazer essa restrição, enquanto que ela não é imperativa na ori-gem.
[0055] A bandeira B serve para desativar o temporizador de alar me nessa situação, de modo que as restrições para tais tratamentos parciais possam ser flexibilizadas.
[0056] Se o tratamento alternativo b é executado, a bandeira B conserva seu estado inicial 0. Isso indica ao temporizador de alarme para verificar normalmente a execução do tratamento.
[0057] Se o tratamento alternativo c1 é executado, a bandeira B é colocada em 1 (pelo próprio tratamento ou pelo sistema de exploração). Nesse caso, mesmo se a necessidade c1 é excedida, o temporizador de alarme não assinala nenhuma anomalia. A bandeira B é recolocada em 0 no ponto 3_3b, de modo que o temporizador de alarme opera de modo normal a partir do ponto 3_3b.
[0058] Utilizando-se assim a bandeira B, torna-se inútil dividir re almente o tratamento c em dois tratamentos parciais. O tratamento c de origem é lançado desde o ponto 2, e sua execução pode durar além do ponto 3_3b sem que uma anomalia seja assinalada. É somente se a execução do tratamento c excede a necessidade c1+c2 que uma anomalia será assinalada, o que corresponde às restrições do gráfico inicial. Em contrapartida, para as necessidades da ordenação, é considerado sempre que a necessidade do tratamento c é repartida em dois valores c1 e c2.
[0059] Como foi notado mais acima, depois da inserção do nó in termediário 3b, os tratamentos c2 e d têm a mesma restrição temporal. Esses valores foram escolhidos para simplificar a exposição. No caso geral, as restrições temporais serão diferentes. Nesse caso, basta reiterar a técnica utilizada para o tratamento c, como ilustrado a título de exemplo abaixo.
[0060] As figuras 6A a 6C ilustram etapas de transformação do gráfico da figura 4 para um valor diferente da restrição temporal do tratamento d, aqui +6 no lugar de +3.
[0061] A figura 6A corresponde à etapa da figura 5A. A única dife rença é o valor da restrição temporal do tratamento d.
[0062] Na figura 6B, os nós 3 e 3b foram fusionados. Os nós 3_3b e 4 são ligados por dois arcos c2+3 e d+6 que têm restrições temporais diferentes.
[0063] Na figura 6C, o nó 4 é separado em dois nós, um, 4’, que serve de alvo para o tratamento c2+3 e o outro, 4’’, que serve de alvo para o tratamento d+6. Cada um dos nós 4’ e 4’’ é ligado ao nó 1 por um tratamento e+1.
[0064] A partir dessa etapa, reitera-se o procedimento da etapa da figura 6A ou 5A, inserindo-se um nó intermediário no tratamento de restrição temporal mais longa, d+6, para criar dois tratamentos alternativos de mesma restrição temporal, c2+3 e d1+3, e assim por diante, até transformar o gráfico em um gráfico cíclico, ou que se termina por uma parte cíclica.
[0065] A partir de um gráfico qualquer, obtém-se por essa metodo logia um gabarito de execução formado por um número limitado de intervalos temporais de durações diferentes, que compreende uma parte cíclica. Para ordenar diferentes tarefas em paralelo, uma ferramenta dedicada saberá explorar as informações de necessidade e de tempo de duração dos intervalos, contidas nos gabaritos, para encontrar combinações de gabaritos executáveis em paralelo, e portanto tarefas executáveis em paralelo. Assim, a ordenação se reduz a emparelhar gabaritos (um só por tarefa) no lugar de emparelhar sequencias de tratamentos (numerosas por tarefas).
[0066] Para simplificar ainda mais os testes de validação do siste ma, é desejável que os gabaritos de execução sejam curtos e que os intervalos temporais sejam idênticos.
[0067] As figuras 7A e 7B ilustram uma metodologia que permite normalizar a duração dos intervalos temporais, e encurtar os gabaritos.
[0068] A figura 7A ilustra uma etapa de tratamento do gabarito da figura 5C, a título de exemplo. Procura-se, na parte cíclica do gabarito, dividir os intervalos mais longos em vários intervalos curtos dos quais o comprimento é o máximo divisor comum dos intervalos da parte cíclica. No gabarito da figura 7A, divide-se o intervalo entre os nós 3_3b e 4, de comprimento 3, em três intervalos de comprimento 1. Isso é o mesmo que inserir nós de transição intermediários 4a e 4b no arco c21 d do gráfico.
[0069] O tratamento ambivalente c21d é assim dividido em três tra tamentos ambivalentes parciais [ c21 d] 0 a [ c21 d] 2 que têm a mesma restrição temporal +1. A necessidade inicial do tratamento c21 d, max (c2, d), é repartida entre os três tratamentos parciais com coeficientes de ponderação p0, p1 e p2, tais que p0+p1+p2 = 1.
[0070] Como para o nó intermediário 3b da figura 5A, os nós in termediários 4a e 4b se tornam pontos de sincronização a partir dos quais o temporizador de alarme vigia o tempo de execução dos tratamentos. Para evitar realmente dividir o tratamento c21 d, é preferido utilizar uma bandeira S que, como a bandeira B, indica ao temporizador de alarme para não assinalar uma anomalia se o tratamento excede sua necessidade. A bandeira S é colocada em 1 incondicionalmente desde o lançamento do tratamento c21d (portanto de fato desde o lançamento de qualquer um dos tratamentos c e d), e depois colocada em 0 no último ponto de sincronização intermediário (4b).
[0071] Essa técnica permite portanto normalizar os tempos de du ração dos intervalos temporais, o que constitui uma primeira melhoria para simplificar os testes de validação.
[0072] A figura 7B ilustra uma etapa que permite encurtar o gabari to de execução normalizado da figura 7A. A segunda metade do gabarito foi sobreposta à primeira metade, de modo que os nós 4a, 4b fusionam respectivamente com os nós 1, 2 e 3_3b. Só subsistem três intervalos temporais de duração 1. No primeiro, é prevista a execução de qualquer um dos tratamentos a e [c21d] 1, portanto de fato qualquer um dos tratamentos a, c e d se forem utilizadas as bandeiras B e S. No segundo intervalo é prevista a execução de qualquer um dos tratamentos b, c1, e [c21d]2, portanto de fato qualquer um dos tratamentos b, c e d. No último intervalo, é prevista a execução de qualquer um dos tra- tamentos e e [c21d]0, portanto de fato qualquer um dos tratamentos e, c e d.
[0073] As necessidades definidas para esses intervalos seguem as mesmas regras de determinação que para os tratamentos alternativos. Elas valem respectivamente max{a, pi*max(c2, d)}, max{b, c1, P2»max(c2, d)}, e max{e,po»max(c2, d)}.
[0074] Para o exemplo de gabarito considerado, completamente cíclico e que tem um número par de intervalos, consegue-se reduzir de metade o tamanho do gabarito. Em um caso qualquer, o gabarito compreende uma parte linear seguida por uma parte cíclica (figuras 3B, 3C) que pode ter um número ímpar de intervalos. O método de sobreposição se aplica à parte cíclica normalizada. Ele é aplicável mesmo se a parte cíclica normalizada compreende um número ímpar de intervalos - de fato a sobreposição pode só ser parcial, a contrapartida sendo que se reduz menos o tamanho do gabarito.

Claims (7)

1. Processo de ordenação off-line dos tratamentos que formam uma tarefa de acordo com um modelo flexível para um sistema multitarefa em tempo real, processo caracterizado pelo fato de que compreende as etapas seguintes executadas em uma cadeia de compilação de um código fonte que define a tarefa: a) atribuir a cada tratamento uma necessidade em recursos materiais e uma restrição temporal; b) associar a cada tratamento um intervalo temporal que tem uma duração que corresponde à restrição temporal do tratamento; c) identificar um ponto de ramificação no qual é decidida a execução de um ou outro de dois tratamentos alternativos (a, b); d) associar aos dois tratamentos alternativos um intervalo temporal comum (+2); e) atribuir ao intervalo temporal comum uma necessidade (max(a, b)) igual à maior das necessidades dos dois tratamentos alternativos; f) reiterar a partir da etapa c) para cada ponto de ramificação; g) organizar os intervalos temporais resultantes em um gabarito de execução associado à tarefa, o gabarito resultante sendo definido por uma sucessão de intervalos temporais consecutivos, cada um associado a pelo menos um tratamento e uma necessidade de recurso; e h) produzir parâmetros de ordenação estáticos para o sistema multitarefa a partir do gabarito de execução, em que os intervalos temporais configuram pontos de sincronização do sistema multitarefa em tempo real para iniciar os tratamentos correspondentes, e a necessidade de recurso associada a cada intervalo configura um temporizador de alarme do sistema multitarefa em tempo real para monitorar que o tratamento correspondente execute dentro de seus limites.
2. Processo, de acordo com a reivindicação 1, caracterizado pelo fato de que o código fonte representa a tarefa com o auxílio de um gráfico que define um conjunto de tratamentos ligados por nós de transição, no qual cada nó de transição define um ponto de sincronização de acordo com uma base de tempo por ocasião da execução da tarefa pelo sistema multitarefa; o processo compreende as etapas seguintes: - definir os limites do intervalo temporal associado a cada tratamento a partir dos nós de transição fonte e destino do tratamento; - para dois tratamentos alternativos que têm um nó fonte comum (1) e dois nós alvo respectivos (2, 3), fusionar os dois nós alvo em um nó alvo fusionado (2_3); e - definir o intervalo temporal comum aos dois tratamentos alternativos a partir do nó fonte comum e do nó alvo fusionado (2_3).
3. Processo, de acordo com a reivindicação 2, caracterizado pelo fato de que compreende, para dois tratamentos alternativos (b+1, c+4) que têm na etapa c) restrições temporais diferentes, as etapas seguintes: - criar um nó de transição intermediário (3b) em um primeiro (c) dos dois tratamentos alternativos (c+4), esse último tendo a restrição temporal mais longa, daí resulta um primeiro tratamento parcial alternativo (c1) entre o nó fonte e o nó intermediário, e um segundo tratamento parcial (c2) entre o nó intermediário e o nó alvo do primeiro tratamento alternativo; - atribuir ao primeiro tratamento parcial alternativo uma primeira necessidade (c1) e uma restrição temporal (+1) igual à restrição temporal do segundo tratamento alternativo; - atribuir ao segundo tratamento parcial uma segunda necessidade (c2) tal que a soma das primeira e segunda necessidades seja igual à necessidade do primeiro tratamento alternativo (c), e uma restrição temporal (c2) igual à diferença das restrições temporais dos dois tratamentos alternativos; e - proceder com o primeiro tratamento parcial alternativo (c1+1) e o segundo tratamento alternativo (b+1) de acordo com a etapa d).
4. Processo de execução de uma tarefa ordenada, de acordo com a reivindicação 3, caracterizado pelo fato de que compreende as etapas seguintes executadas no sistema multitarefa: - em cada intervalo temporal, em verificar pelo temporizador de alarme que a execução do tratamento em curso respeita a necessidade atribuída ao intervalo temporal; e - não assinalar anomalia pelo temporizador de alarme se a execução do tratamento em curso excede a necessidade e que o tratamento em curso é o primeiro tratamento parcial alternativo (c1).
5. Processo, de acordo com a reivindicação 4, caracterizado pelo fato de que compreende as etapas seguintes: - ativar uma variável de estado (B=1) na execução do primeiro tratamento parcial alternativo (c1); - não assinalar anomalia pelo temporizador de alarme se a execução do tratamento em curso excede a necessidade e que a variável de estado está ativa; e - desativar a variável de estado a um ponto de sincronização que corresponde a um nó alvo fusionado (2_3).
6. Processo, de acordo com a reivindicação 3, caracterizado pelo fato de que compreende as etapas seguintes para uma parte cíclica do gráfico: -dividir cada tratamento (c21d) que tem uma restrição temporal longa em um conjunto de tratamentos parciais que têm uma restrição temporal curta que é o máximo divisor comum das restrições temporais dos tratamentos da parte cíclica, disso resulta que a parte cíclica do gráfico é transformada em um subgráfico normalizado que define uma sucessão de tratamentos, completos ou parciais, que têm todos eles a mesma restrição temporal normalizada; e - repartir a necessidade de cada tratamento de restrição temporal longa entre os tratamentos parciais correspondentes, disso resulta que a soma das necessidades dos tratamentos parciais é igual à necessidade do tratamento de restrição temporal longo.
7. Processo, de acordo com a reivindicação 6, caracterizado pelo fato de que compreende as etapas seguintes: - sobrepor o fim de uma primeira parte do subgráfico sobre o início de uma segunda parte do subgráfico, de modo que os nós de transição do fim da primeira parte do subgráfico (1, 2, 3_3b) sejam confundidos com nós respectivos (4a, 4b, 4) do início da segunda parte do subgráfico, disso resulta que dois pares consecutivos de nós confundidos definem um intervalo temporal comum aos tratamentos que têm como origens respectivas os dois nós do primeiro par; e - atribuir ao intervalo temporal comum assim definido uma necessidade igual à maior das necessidades dos tratamentos associados ao primeiro par de nós, e uma restrição temporal igual à restrição temporal normalizada.
BR112015025326-1A 2013-04-09 2014-03-17 Processo de ordenação off-line dos tratamentos que formam uma tarefa de acordo com um modelo flexível para um sistema multitarefa em tempo real BR112015025326B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR1353203A FR3004274A1 (fr) 2013-04-09 2013-04-09 Procede d'execution de taches dans un systeme temps-reel critique
FR1353203 2013-04-09
PCT/FR2014/050612 WO2014167197A1 (fr) 2013-04-09 2014-03-17 Procédé d'exécution de taches dans un system temps-réel critique

Publications (2)

Publication Number Publication Date
BR112015025326A2 BR112015025326A2 (pt) 2017-07-18
BR112015025326B1 true BR112015025326B1 (pt) 2022-05-03

Family

ID=48906285

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112015025326-1A BR112015025326B1 (pt) 2013-04-09 2014-03-17 Processo de ordenação off-line dos tratamentos que formam uma tarefa de acordo com um modelo flexível para um sistema multitarefa em tempo real

Country Status (11)

Country Link
US (1) US9946575B2 (pt)
EP (1) EP2984565B1 (pt)
JP (1) JP6524064B2 (pt)
KR (1) KR102178574B1 (pt)
CN (1) CN105144104B (pt)
AU (1) AU2014252942A1 (pt)
BR (1) BR112015025326B1 (pt)
CA (1) CA2907808C (pt)
FR (1) FR3004274A1 (pt)
RU (1) RU2660614C2 (pt)
WO (1) WO2014167197A1 (pt)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9740529B1 (en) * 2013-12-05 2017-08-22 The Mathworks, Inc. High throughput synchronous resource-constrained scheduling for model-based design
CN105912390A (zh) * 2016-04-07 2016-08-31 四川大学 云计算环境下基于模板的任务调度策略
US11243949B2 (en) 2017-04-21 2022-02-08 Microsoft Technology Licensing, Llc Query execution across multiple graphs
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
FR3084187B1 (fr) * 2018-07-18 2021-01-01 Commissariat Energie Atomique Procede d'acceleration de l'execution d'un programme a chemin unique par execution en parallele de sequences conditionnellement concurrentes
CN109460277B (zh) * 2018-10-30 2022-08-05 北京小米移动软件有限公司 商品抢购流程的展示方法及装置
US11244106B2 (en) * 2019-07-03 2022-02-08 Microsoft Technology Licensing, Llc Task templates and social task discovery
RU2751441C1 (ru) * 2020-09-11 2021-07-13 Федеральное государственное бюджетное образовательное учреждение высшего образования «Московский государственный университет имени М.В.Ломоносова» (МГУ) Способ формирования вычислительного комплекса
US11726817B2 (en) 2020-09-25 2023-08-15 Red Hat, Inc. Scheduling multiple processes with varying delay sensitivity
DE102020214144A1 (de) 2020-11-11 2022-05-12 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren und Vorrichtung zum Überwachen zyklischer Aufgaben in Maschinensteuerung

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2816730B1 (fr) 2000-11-13 2004-10-15 Commissariat Energie Atomique Procede de securisation rendant deterministe l'execution en temps reel d'applications multitaches du type controle- commande avec confinement d'erreur
RU2239228C2 (ru) * 2001-07-05 2004-10-27 Всероссийский научно-исследовательский институт автоматики Способ распределения времени центрального процессора между задачами в автоматизированных системах управления технологическими процессами
US7614037B2 (en) * 2004-05-21 2009-11-03 Microsoft Corporation Method and system for graph analysis and synchronization
KR20070031307A (ko) * 2004-05-27 2007-03-19 코닌클리즈케 필립스 일렉트로닉스 엔.브이. 신호 스트림 처리 작업의 조합을 실행하기 위한 방법, 장치및 시스템, 실행 파라미터를 계산하는 방법 및 장치,컴퓨터 프로그램 제품
FR2873830B1 (fr) * 2004-07-30 2008-02-22 Commissariat Energie Atomique Procede d'ordonnancement de traitement de taches et dispositif pour mettre en oeuvre le procede
GB0513045D0 (en) * 2005-06-27 2005-08-03 Vidus Ltd Resource scheduling method and system
FR2893156B1 (fr) * 2005-11-04 2008-02-15 Commissariat Energie Atomique Procede et systeme de calcul intensif multitache et multiflot en temps reel.
CN100580632C (zh) * 2008-02-22 2010-01-13 浙江大学 嵌入式系统rm低功耗调度中松弛时间在线重分配方法
US8214245B2 (en) * 2009-05-04 2012-07-03 International Business Machines Corporation Method and system for synchronizing inclusive decision branches
US8606377B2 (en) 2009-07-23 2013-12-10 Biosense Webster, Inc. Preventing disruptive computer events during medical procedures
JP5069325B2 (ja) 2010-03-11 2012-11-07 株式会社豊田中央研究所 タスク実行制御装置及びプログラム
EP2568346B1 (en) * 2011-09-06 2015-12-30 Airbus Operations Robust system control method with short execution deadlines

Also Published As

Publication number Publication date
AU2014252942A1 (en) 2015-11-19
RU2015147897A (ru) 2017-05-16
US20160070600A1 (en) 2016-03-10
US9946575B2 (en) 2018-04-17
CN105144104B (zh) 2020-03-17
BR112015025326A2 (pt) 2017-07-18
WO2014167197A1 (fr) 2014-10-16
KR20150140708A (ko) 2015-12-16
CA2907808A1 (fr) 2014-10-16
WO2014167197A9 (fr) 2015-01-08
RU2660614C2 (ru) 2018-07-06
EP2984565A1 (fr) 2016-02-17
KR102178574B1 (ko) 2020-11-13
EP2984565B1 (fr) 2019-08-21
CA2907808C (fr) 2021-06-08
JP6524064B2 (ja) 2019-06-05
CN105144104A (zh) 2015-12-09
FR3004274A1 (fr) 2014-10-10
JP2016519821A (ja) 2016-07-07

Similar Documents

Publication Publication Date Title
BR112015025326B1 (pt) Processo de ordenação off-line dos tratamentos que formam uma tarefa de acordo com um modelo flexível para um sistema multitarefa em tempo real
Fraigniaud et al. Towards a complexity theory for local distributed computing
US9582321B2 (en) System and method of data processing
BR112013019824A2 (pt) aparelho e método de processamento de dados, método para compilar um aplicativo para execução por um processador de dados, produto de programa de computador, e, máquina virtual
US9734033B2 (en) Implementing processor functional verification by generating and running constrained random irritator tests for multiple processor system and processor core with multiple threads
US9563719B2 (en) Self-monitoring object-oriented applications
US9043746B2 (en) Conducting verification in event processing applications using formal methods
US20150331407A1 (en) Apparatus for program management of programmable logic controller
CN106598747B (zh) 网络数据包的并行处理方法及装置
Hierons et al. Parallel algorithms for generating harmonised state identifiers and characterising sets
CN111158890A (zh) 控制任务集中的任务并行的系统及其方法
Waldherr et al. Decomposition algorithms for synchronous flow shop problems with additional resources and setup times
Khomenko et al. An algorithm for direct construction of complete merged processes
Salmon et al. Scheduling real-time systems with periodic tasks using a model-checking approach
Zibaeenejad et al. Weak invariant simulation and its application to analysis of parameterized networks
BR112016013088B1 (pt) Método de composição e de execução de um plano de sequenciamento de tarefas em tempo real
Devismes et al. Weak vs. self vs. probabilistic stabilization
Roy et al. A scalable deadlock detection algorithm for UPC collective operations
JP2020153804A (ja) 試験装置、試験方法及びコンピュータプログラム
BR102012028278A2 (pt) método para fornecer um relatório de situação de um sistema de gerenciamento de integridade de uma aeronave e sistema de gerenciamento de integridade para uma aeronave
CN105808632B (zh) 链接生成方法和装置
Sun et al. A test generation method based on model reduction for parallel software
Berthomieu et al. Abstract state spaces for time petri nets analysis
Manz et al. An approach to detect the origin and distribution of software defects in an evolving cyber-physical system
Rihm et al. A mip-based decomposition heuristic for resource-constrained project scheduling

Legal Events

Date Code Title Description
B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
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 17/03/2014, OBSERVADAS AS CONDICOES LEGAIS.