Brevet FR2648927A1 — publié le 19901228

METHODE ET ARRANGEMENT DE CONTROLE DES PROGRAMMES DE GESTION DES TACHES La presente invention se rapporte en grneral å une méthode et à un a r r a ngemen t de contrôle des programmes de gestion des taches, et plus spécifiquement a une méthode et un arrangement conçus pour autoriser une tache à attendre plusieurs conditions Cévénements externes) dont chacune est générée par une autre tache. La présente invention permet une grande simplification du schéma habituel selon lequel les programmes sont gérés, et favori se par consewquent l'accélération de la vitesse d'exécution. Une tache est un ensemble d' instructions et d'informations de données et de contrôle pouvant etre exécutées par l'unité centrale de traitement (UCT) d'un ordinateur numérique, pour effectuer certains objectifs. Dans un environnement de multiprogrammation, une pluralité de taches se complétant pour contrtler l'unité centrale de traitement. Selon un procédé connu de gestion des taches, lorsqu'une tache active en cours est transférée vers un état d'attente, et attend une condition ou un événement externe obtenu en provenance d'une autre tache, la tache qui va vers l'état d'attente enregistre uniquement un emplacement selon lequel l'instruction appartenant à la tache en attente est la tache suivante que l'unité centrale de traitement devra exécuter. Par conséquent, l'emplacement enregistré au préalable est l'unique moyen par lequel une tache activante peut démarrer la tache en attente. Ceci signifie que la tache en attente a une relation de un pour un avec la tache activante. Il s'ensuit par conséquent que, si une tâche en attente a besoin d'obtenir une pluralité d'événements externes (conditions) avant d'cotre reprise, il est nécessaire de répéter plusieurs cycles d' exécution-attente-activation- exécution, de manière à obtenir le nombre de conditions voulu. PJr conséquent, le type connu de procédé de gestion des taches mentionné précédemment doit prendre en compte le problème lié au fait que le sous-programme devient long et complexe, et nécessite par là-meme de façon inhérente, un temps d'exécution long. L'un des objets de la présente invention est de fournir une méthode de contrôle d'un programme de gestion des tâches, évitant le type d'approche une à une qui prolonge le temps d'exécution et rend un programme complexe. Griévement, les objets mentionnés ci-dessus sont atteints par un arrangement dans lequel un procédé de contrdle des programmes de gestion des tâches autorise une tache à attendre une pluralité de conditions (c'est-å dire des événements externes), dont chacune est générée par une autre tache, d'ou il résulte que si une tâche A doit attendre les résultats de l'exécution des tâches S et C, la tâche A enregistre tout d'abord les conditions qui doivent entre comparées, avec celles qui ont été acquises par l'exécution des taches C, C, puis active les tâches B et C et entre dans un état d'attente. Dans le cas ou les conditions précédemment enregistrées coincident avec les conditions obtenues après l'achèvement des taches e et C, la tache A redevient active. La tâche A n'est pas activée tant que les tâches S et C n'ont pas été complètement exécutées. Plus spécifiquement, un premier aspect de la présente invention se présente sous la forme d'un arrangement pour exécuter une pluralité de tâches sous le contrôle d'un procédé de gestion des taches, l'une des tâches de l'ensemble étant activée et transférée dans l'etatd'attente, cette tache faisant partie de l' ensemble étant reprise et complétant son exécution uniquement lorsque l'une des taches faisant partie de l'ensemble de taches satisfait chacune des conditions émises par les autres taches faisant partie de l'ensemble des tâches; l'arrangement comprend: un premier moyen pour gérer indépendamment l'ensemble des tâches étant dans l'état exécutable; un second moyen pour stocker les premières conditions, ces premières conditions étant appliquées à partir de l'une des taches de l'ensemble avant que celle-ci ne passe dans l'état d'attente, les premières conditions ayant une relation de tune à une avec les conditions dérivées des autres tâches de l'ensemble des tâches; un troisième moyen pour stocker les secondes conditions à l'intérieur du premier moyen, les seondes conditions étant produites à partir des autres taches faisant partie de l'ensemble des tâches; un quatrième moyen pour implémenter des comparaisons un pour un entre les premières conditions et les secondes conditions après que chacune des autres taches faisant partie de l'ensemble des tâches a achevé son exécution; un cinquième moyen pour supprimer l'une des premières conditions dans le cas où l'une de ces premières conditions coincide avec une condition correspondante parmi les secondes conditions; un sixième moyen de vérification pour s'assurer que toutes les premières conditions ont été supprimées; et un septième moyen pour reprendre l'une des tâches faisant partie de l'ensemble des tâches, dans le cas où le sixième moyen indique que toutes les premières conditions ont été supprimées par le cinquième moyen. Un second aspect de la présente invention se présente sous la forme d'une méthode pour exécuter une pluralité de tâches, selon un procédé de gestion des tâches, dans lequel une des taches de l'ensemble des taches est activée et transférée dans l'état d'attente, cette tache étant reprise et achevant l'exécution de celle-ci uniquement lorsque la tâche faisant partie de l'ensemble des tâches satisfait chacune des conditions émises par les autres taches faisant partie de l'ensemble des tâches; la méthode comprend les etapes de: taj gestion indépendante de l'ensemble des taches se trouvant dans l'état exécutable-; (b) enregistrement des premières conditions à l'intérieur du premier moyen, les premières conditions étant appliquées à partir de celle des taches faisant partie de l'ensemble des taches avant que celleci ne passe à l'état d'attente, les premieres conditions ayant une relation de une à une avec les conditions dérivees des autres taches faisant partie de l'ensemble des tâches; (c) enregistrement des secondes conditions à l'intérieur du premier moyen, les secondes conditions étant produites par les autres tâches faisant partie de l'ensemble des tâches; (d) implémentation de comparai sons une à une des premières conditions avec les secondes conditions après que chacune des autres taches de l'ensemble des taches a effectué son exécution complète; (e) suppression de l'une des premières conditions dans le cas ou l'une des premières conditions coïncide avec une condition correspondante parmi les secondes conditions; (f) contrôle pour vérifier que l'ensemble des premières conditions a éte supprimé; et (g) reprise de L'une des tâche de l'ensemble des tâches dans le cas ou la totalité des premières conditions a été supprimée à l'étape (e). Les caractéristiques et avantages de la présente invention pourront etre plus clairement appréciés à la lecture de la description qui Suit prise conjointement avec les dessins annexes, dans lesquels les elements semblables portent les mimes numéros de référence, et dans lesquels: la Fig. 1 est un schéma synoptique illustrant un programme d'exécution de tâche selon la présente invention; et la Fig. 2 est un schéma synoptique illustrant schématiquement tes modules du logiciel pour l'implémentation des étapes de la Fig. 1. Un mode de réalisation préféré de cette invention va etre décrit en se reportant aux Figs. 1 et 2. La Fig. 1 est un diagramme de circulation montrant les étapes qui caractérisent le fonctionnement de cette invention. Brièvement, une tache A doit attendre les résuLtats de L'exécution des taches B, C. La tâche A enregistre tout d'abord les conditions qui doivent etre comparées avec les conditions obtenues par L'exécution des tâches B, C. Puis, la tâche A active les tâches 8 et C et va vers un état d'attente. Dans le cas où les conditions préalablement enregistrées coïncident avec les conditions obtenues par l'exécution complète des tâches 3 et C, la tâche A redevient active. En d'autres termes, la tâche A n'est pas activée tant que l'exécution des tâches B et C n'est pas achevee. Ces opérations sont contrôlées par une section 10 de gestion des tâches. On se référera de nouveau à la Fig. 1, plus en détail. La Fig. 2 est un schéma synoptique qui illustre schématiquement un arrangement de module logiciel, illustrant les opérations implémentées par les diverses étapes, tel qu'illustré à la Fig. 1. La section 10 de gestion des tâches comprend un contrôleur de taches 100, fonctionnellement divise en quatre sous-sections: un contrôleur 100a de génération de bloc de contrôle des tâches (SCT), un contrôleur 100b d'attente de tâche, un contrôleur 100c d'activation de tâche et un contrôleur 10ûd de suppression de bloc de contrôle des tâches. Un bloc de contrôle de tâches 200, 'qui est affecté à la tache A, est doté d'une table qui enregistre les informations pour le contrôle de la tache A, tant que celle-ci est en phase d'exécution. Plus spécifique ent, le bloc de contrôle des taches 200 est créé par le contrôleur 100a de génération de bloc de contrôle des tâches, en réponse à une demande qui lui est transmise en provenance de la tâche A et qui est supprimée par le contrôleur 100d de suppression de bloc de contrôle des tâches, en réponse à une demande qui lui est transmise en provenance de la tâche A. Le bloc de contrôle des taches 200 inclut quatre indicateurs V, R, W, et N, dont chacun est un bit. L'indicateur V indique la validité du bloc de contrôle des tâches 200 lorsqu'il est positionné sur (ON) et son invalidité lorsqu'il est remis à l'état initial (OFF), alors que l'indicateur R indique si la tache A est ou n'est pas dans un état activé (ou état de marche). L'indicateur w indique que la tâche A est dans un étant d'attente en fonction d'un état logique de celle-ci, alors que l'indicateur N indique que la tâche A est dans un état d'attente de redémarrage, dépendant égal-ment d'un état logique de celle-ci. Le bloc de contrôle des taches 200 inclut de plus des sections d'enregistrement 200a, 200b et 200c. La section 200a mémorise une identification de bloc de contrôle des tâches, indiquant que ta tâche A saisit le bloc de contrôle des taches 200, alors que la section d'enregistrement 200b enregistre les conditions mentionnées précédemment, nécessitées ou attendues par ta tache A. D'autre part, la section d enregistrement 200c enregistre une indication selon laquelle l'instruction appartenant à la tâche A est celle qui doit cotre exécutée ensuite par L'uni té centrale de traitement, à la reprise de la tache A. En d'autres termes, la section d'enregistrement 200c retient un emplacement pour l'instruction qui doit être exécutée ensuite, lorsque la, tâche A redevientactive. Les références 300 et 40G se rapportent aux blocs de contrôle des tâches respectivement assignés aux tâches B et C. Le bloc de contrôle des tâches 300 est doté de quatre indicateurs V, R, W et N, et de trois sections d'enregistrement 300a, 300b et 300c, qui correspondent respectivement aux parties opposées 200a, 200b et 200c. De la meme manière, le bloc de contrôle des tâches 400 est doté de quatre indicateurs V, R, W et n, et de trois sections d'enregistrement 400a, 400b et 400c, qui correspondent également aux parties qui leur sont opposées 2O0a, 200b 200c. Chacun des blocs de contrôle des tâches 300 et 400 est identique, en ce qui concerne son arrangement logiciel, au bloc de contrôle des tâches 200, et par conséquent, afin d'être bref, on ne reviendra pas sur la description de ces blocs. Le fonctionnement de la présente invention va être décrit plus en détail en se référant aux Figs. 1 et 2. La tâche A doit obtenir les conditions qu'elle attend apres L'exécution complete des taches B et C. A L'étape 12, la tâche A est activée et demande ensuite au contrôleur 100a de génération de bloc de contrôle des taches (Fig. 2) de générer un bloc de contrôle des tâches (portant la référence BCT A) pour lui-meme. Il convient de noter que le logiciel d'exécution de la tache A est appelé TACHE A. A ce moment, l'indicateur R dans le BCT A est positionné sur ON. Puis la tâche A active les taches B et C , respectivement aux étapes 14 et 16. A L'étape suivante, 18, le BCT A enregistre, dans la section d'enregistrement 200b, les conditions qui seront comparées ensuite avec les conditions obtenues à partir des tâches B et C. Pour la simplicite de La description, les conditions enregistrées par la tâche A sont respectivement appelées B' et C', alors que les conditions obtenues à partir des taches B et C sont appeLées B et C. De plus, à L'étape 18, l'indicateur W du 6CT A est positionné dans son état ON, et indique donc que la tâche A est en état d'attente. Ensuite, à L'étape 20, la tache A accède au contrôleur 100b d'attente de tache, et positionne l'indicateur W sur ON, puis va vers l'état d'attente. La tâche 8, qui a été activée par la tache A à L'étape 14, demande au contrôleur 100a de génération de bloc de contrôle des taches de saisir un bloc de contrôle des tâches (appelé BCT B) à L'étape 30. Ainsi, Le BCT B est crée, comme cela est illustré à la fig. 2, et une section d'enregistrement 300a (correspondant à la section 200a) mémorise une identification de bloc de contrôle des taches, par laquelle la tache B spécifie le BCT B. De plus, à L'étape 30, les facteurs suivants sont mis en place: (a) un indicateur R est positionné, et (b) une condition, qui est attendue lorsque la tache B a été complètement exécutée, est enregistrée dans une section d'enregistrement 300b qui correspond à La section 20Db du BCT A. Après L'étape 30, la tâche B exécute une (ou des) instruction(s) prédéterminée(s) à L'étape 32. A L'étape 34, ia tache 6 active la tache A, d'ou il résulte que Le programme entre dans un sous-programme 40 appartenant à la section de gestion des taches 10, et qui est appelé ACTIVATION. Le sous-programme va vers L'étape 42 et recherche un (ou des) bloc(s) de contrôle des tâches dont l'indicateur W est positionné sur ON. Dans ce mode de réalisation, seul l'indicateur W du BCT A a été positionné sur (ON), et donc la condition B' dans la section d'enregistrement 2û0b est comparée avec la condition C dans la section d'enre.istrement 300b. ans le cas ou les conditions B' et B coïncident, la condition Z' est supprimée de la section d'enregistrement 200b à l'étape 44. A la suite de ceci, à L'étape 46, la section 200b est contrôlée pour vérifier que toutes les conditions enregistrées dedans (8' et C' dans le cas présent) ont eté supprimees. A ce moment là, la condition C n'est pas encore supprimée, et donc le sous-programme 40 passe à l1étape 48. Ainsi, le programme passe directement à l'étape 36 ou le BCT B est supprimé par le contrôleur 100d de suppression de bloc de contrôle des tâches, et ainsi s'achève le programme TACHE B. De la même manière, la tâche B qui a été activée par la tâche A à l'étape 16, demande au contrôleur 100a de génération de bloc de contrôle des tâches de saisir un bloc de contrôle des tâches (appelé BCT C) à l'étape 50. Ainsi, le BCT C est créé tel qu'illustré à la Fig. 2, et une section d'enregistrement 400a (correspondant à la section 200a) mémorise une identification de BCT par laquelle la tache C spécifie le BCT C. En outre, à l'étape 50, les facteurs suivants sont mis en place: (a) un indicateur R du 6CT C est positionne, et (b) une condition, qui est attendue lorsque la tache C a été completement exécutée, est enregistrée dans une section d'enregistrement 400b qui correspond a la section 200b du BCT A. Apres l'étape 40, la tâche C execute une (ou des) instruction(s) prédéterminée(s) à l'étape 42. A L'étape 44, la tache C active la tache A, d'ou il résulte que le programme entre dans un sous-programme 40. Le sous-programme va vers l'étape 42 et recherche un (ou des) bloc(s) de contrôle des taches dont l'indicateur W est positionné sur ON. Comme cela a été mentionne précédemment, seul l'indicateur W du BCT A a eté positionné sur (ON), et donc la condition C' dans la section d'enregistrement 200b est comparée avec la condition C dans la section d'enregistrement 300b. Dans le cas où les conditions C et C' coincident, la condition C' est supprimée de la section d'enregistrement 200b à l'étape 44. A L'étape 46, la section 2OOb est contrôlée pour vérifier que toutes les conditions enregistrées dedans tel et C') ont été supprimées. Dans cet exemple particulier, les conditions B' et C ont déjà été supprimées, et donc le sous-programme 40 passe à L'étape 49, ou la tâche A est activée. De plus, à l'étape 49, les indicateurs W et N du BCT A sont respectivement mis en position OFF et ON. Ceci indique que la tâche A est transférée de l'état d'attente à L'étant d'attente de redémarrage. A la suite de ceci, le programme passe directement à l'étape 22, appartenant au programme TACHE A, et à ce point, les indicateurs N et R sont respectivement positionnées sur OFF et ON. A l'étape 24, la tache A redevient active. D'autre part, lorsque l'exécution à L'étape 49 est achevée, le sous-programme va vers ltétape 48 ou le programme passe directement à l'étape 56.A ce moment là, le SCT C est supprimé par le contrôleur 100d de suppression de bloc de contrôle des tâches, et ainsi s'achève le programme TACHE C. Comme cela a été décrit dans ce qui précède, la tache A enregistre une pluralité des conditions devant etre satisfaites par les résultats des tâches B et C, puis va vers l'état d'attente. La section d'enregistrement 20Db peut être situee de telle sorte que l'accès a ses contenus soit simple. Les conditions, qui sont enregistrées par la tache, sont supprimées une par une, au fur et à mesure que les taches B et C sont exécutées, et jusqu'à ce que toutes les conditions aient éto supprimées. Ensuite, La tache A est å nouveau activée. Donc, selon la présente invention, une tâche donnée attend une pluralité d'événements externes résultant d'autres taches, qui doivent être satisfaites avant que Ladite tache donnée ne soit reprise. Dans ce qui précède, il n'est fait référence qu'a deux tâches B et C, mais il va sans dire que le champ d'application de cette invention n'est en aucun cas limite à ce nombre de tâches. Alors que la description qui précède ne décrit qu'un mode de réalisation de la présente invention, les diverses sol ut ions et modifications possibles ne sortant pas du champ d'application de ta présente invention, qui n'est limité que par les revendications annexes, seront apparentes aux personnes de l'art. REVENDICATIONS 1. Un arrangement pour exécuter une pluralité de taches sous le contrôle d'un procédé de gestion des tâches, l'une des taches dudit ensemble de taches étant activée et transférée dans l'état d'attente, ladite tache faisant partie de l'ensemble des taches étant reprise et achevant son exécution uniquement lorsque ladite tache faisant partie dudit ensemble de tâches satisfait chacune des conditions emises par les autres tâches faisant partie dudit ensemble des tâches, ledit arrangement comprenant: un premier moyen pour gérer indépendamment ledit ensemble des taches etant dans L'état exécutable; un second moyen pour enregistrer les premières conditions dans ledit premier moyen, lesdites premières conditions étant appliquees à partir de ladite tache faisant partie dudit ensemble de taches avant que cette dite tâche faisant partie dudit ensemble de taches ne passe dans l'état d'attente, lesdites premières conditions ayant une relation de une à une avec les conditions dérivées desdites autres taches dudit ensemble des tâches; un troisième moyen pour ernregistrer les setondes conditions à l'intérieur du premier moyen, lesdites secondes conditions étant produites à partir desdites autres taches faisant partie dudit ensemble des tâches; un quatrième moyen pour implémenter des comparaisons une à une entre lesdites premières conditions et lesdites secondes conditions apres que chacune desdites autres taches faisant partie dudit ensemble des taches a achevé son exécution; un cinquième moyen pour supprimer l'une desdites premieres conditions dans le cas ou l'une de ces dites premières conditions coincide avec une condition correspondante parmi lesdites secondes conditions; un sixième moyen de vérification pour s'assurer que toutes lesdites premières conditions ont eté supprimees; un septième moyen pour reprendre l'une desdites tâches faisant partie dudit ensemble des tâches, dans le cas ou ledit sixième moyen indique que toutes lesdites premières conditions ont été supprimées par Ledit cinquième moyen. 2. Un arrangement tel que revendiqué à ta revendication 1, dans lequel ledit premier moyen comprend une pluralité de blocs de contrôle des taches qui sont assigné à ladite pluralité des taches sur une base de une à une. 3. Un arrangement tel que revendiqué à la revendication 2, dans lequel un bloc de contrôle des tâches assigné à ladite tache faisant partie de ladite pluralité desdites tâches comprend: une première section d'enregistrement pour enregistrer lesdites premières conditions; et une première section d'enregistrement pour enregistrer une indication selon laquelle l'instruction appartenant à l une desdites tâches faisant partie dudit ensemble desdites taches est La suivante à exécuter lorsque ladite tache dudit ensemble de taches est reprise. 4. Une méthode d'exécution d'une pluralité de tâches selon un procédé de gestion des tâches, dans laquelle l'une des taches de ladite pluralité des tâches est activée et transférée dans un état d'attente, ladite tache audit ensemble de tâches étant reprise et achevant son exécution uniquement lorsque ladite tache dudit ensemble de tâches satisfait chacune des conditions émises par les autres tâches de ladite pluralité de tâches, ladite méthode comprenant les étapes de: (a) gestion indépendante de ladite pluralité oe taches étant dans l'état exécutable; (b) enregistrement des premieres conditions a L'intérieur du premier moyen, lesdites premières conditions etant appliquées à -partir de L'une des taches faisant partie de ladite pluralite de tâches, avant que ladite tache faisant partie de ladite pluralité de taches ne passe à L'état d'attente, lesdites premières conditions ayant une relation de une à une avec les conditions dérivees par Lesdites autres tâches faisant partie de ladite pluralité de tâches; (c) enregistrement des secondes conditions dans ledit premier moyen, lesdites secondes conditions etant produites à partir desdites autres tâches faisant partie de Ladite pluralité de tâches; (d) impl émentat i on de comparai sons une a une entre lesdites premières conditions et lesdites secondes conditions, après que chacune desdites autres taches faisant partie de ladite pluralité de taches a achevé son exécution; (e) suppression de l'une desdites premières conditions, dans le cas ou ladite condition faisant partie desdites premières conditions coincide avec une condition correspondante parmi lesdites secondes conditions; (f) contrôle pour vérifier que toutes lesdites premières conditions ont été supprimées; et (g) reprise de ladite tache faisant partie de ladite pluralité de tâches, dans le cas ou toutes lesdites premières conditions sont supprimées à l'étape (e). 5. Une méthode tel que revendiqué à la revendication 4, dans laquelle ledit premier moyen comprend une pluralité de blocs de contrôle des tâches, qui sont assignés à ladite pluralité de tâches sur une base de une à une. 6. Une méthode tel que revendique à la revendication 5, dans laquelle un bloc de contrôle des tâches assigné à L'une desdites taches faisant partie de ladite pluralité de tâches comprend: une première section d'enregistrement pour enregistrer lesdites premières conditions; et une premiere section d'enregistrement pour enregistrer une indication selon laquelle t' instruction appartenant à ladite tache faisant partie de ladite pluralite de taches est La suivante à executer , lorsque ladite tache faisant partie de ladite pluralité de tâches est reprise.