ITMI20012343A1 - PROCEDURE FOR MAKING AN INTERTASK COMMUNICATION IN A MULTITASKING EXERCISE SYSTEM - Google Patents

PROCEDURE FOR MAKING AN INTERTASK COMMUNICATION IN A MULTITASKING EXERCISE SYSTEM Download PDF

Info

Publication number
ITMI20012343A1
ITMI20012343A1 ITMI20012343A ITMI20012343A1 IT MI20012343 A1 ITMI20012343 A1 IT MI20012343A1 IT MI20012343 A ITMI20012343 A IT MI20012343A IT MI20012343 A1 ITMI20012343 A1 IT MI20012343A1
Authority
IT
Italy
Prior art keywords
intertask
task
priority task
variable
variables
Prior art date
Application number
Other languages
Italian (it)
Inventor
Gabriel Wetzel
Kjens Fiedler
Original Assignee
Bosch Gmbh Robert
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 Bosch Gmbh Robert filed Critical Bosch Gmbh Robert
Publication of ITMI20012343A1 publication Critical patent/ITMI20012343A1/en

Links

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/54Interprogram communication

Description

Descrizione Description

La presente invenzione riguarda un procedimento per realizzare una comunicazione intertask in un sistema di esercizio multitasking comandante l'esecuzione di un programma computerizzato suddiviso in più tasks con rispettivamente almeno un processo. The present invention relates to a method for carrying out an intertask communication in a multitasking operating system controlling the execution of a computerized program divided into several tasks with respectively at least one process.

Stato della tecnica State of the art

Ai singoli tasks di un programma computerizzato multitasking sono associate diverse priorità. I tasks con una alta priorità possono interrompere altri tasks con una priorità più bassa. L'interruzione avviene per i tasks, che vengono elaborati in un modo cooperativo, fra due processi. Per i tasks che vengono elaborati in un modo preempitivo l'interruzione può avvenire anche centralmente in un processo. Nel programma computerizzato sono usualmente previste variabili impiegate per scambiare informazioni fra i tasks in più tasks. Queste variabili vengono indicate come variabili intertask. Different priorities are associated with the individual tasks of a multitasking computer program. Tasks with a high priority can interrupt other tasks with a lower priority. The interruption occurs for tasks, which are processed in a cooperative way, between two processes. For tasks that are processed in a preemptive manner, the interruption can also occur centrally in a process. In the computer program there are usually provided variables used to exchange information between tasks in multiple tasks. These variables are referred to as intertask variables.

Un importante aspetto per la comunicazione fra tasks di un programma computerizzato è la sicura della consistenza dei dati delle variabili intertask. Durante l'elaborazione di una parte del programma computerizzato (ad esempio processo oppure task) i contenuti delle variabili, cui accede la parte del programma computerizzato, non possono essere modificati da altre parti del programma computerizzato. Parimenti dovrà essere garantita la consistenza dei dati, fra più variabili intertask. Quando più variabili intertask sono fra di loro logicamente coorenti, va assicurato che fra i tasks vengono scambiati sempre contenuti fra di loro coorenti delle variabili. An important aspect for the communication between tasks of a computerized program is the certainty of the data consistency of the intertask variables. During the processing of a part of the computer program (for example process or task) the contents of the variables, accessed by the computer program part, cannot be modified by other parts of the computer program. Likewise, the consistency of the data must be guaranteed, among several intertask variables. When several intertask variables are logically consistent with each other, it must be ensured that the contents of the variables are always exchanged between the tasks.

Un ulteriore aspetto importante della comunicazione fra i tasks è l'istante dello scambio dei dati. Esistono due differenti possibilità: Another important aspect of the communication between tasks is the instant of data exchange. There are two different possibilities:

- il trasfeeeriemnto del contenuto della variabile intertask da un task ad un altro task non è vincolato ad intervalli di tempo fissi. Viene utilizzato sempre il valore più aggiornato - the transfer of the content of the intertask variable from one task to another task is not bound to fixed time intervals. The most up-to-date value is always used

- il trasferimento del contenuto della variabile intertask da un task ad un altro task è vincolato ad intervalli di tempo fissi. - the transfer of the content of the intertask variable from one task to another task is bound to fixed time intervals.

Dalle esigenze relative alla consistenza dei dati e ai diversi istanti dello scambio di dati risultano più casi di applicazione: From the requirements relating to the consistency of the data and the various instances of the data exchange, there are several cases of application:

1. è necessario assicurare la consistenza di dati di una variabile intertask. Il trasferimento del contenuto della variabile intertask da un task ad un altro task non è vincolato ad intervalli di tempo fissi. Si utilizza sempre il valore più aggiornato. 1. It is necessary to ensure the data consistency of an intertask variable. The transfer of the contents of the intertask variable from one task to another task is not bound to fixed time intervals. The most up-to-date value is always used.

2. La consistenza dei dati di una variabile intertask deve essere assicurata. Il trasferimento del contenuto della variabile intertask da un task ad un altro task non è vincolato ad intervalli di tempo fissi. Viene utilizzato sempre il valore più aggiornato. Hanno luogo calcoli con più operazioni di registrazione sulla variabile intertask. 2. The data consistency of an intertask variable must be ensured. The transfer of the contents of the intertask variable from one task to another task is not bound to fixed time intervals. The most up-to-date value is always used. Calculations with multiple registration operations take place on the intertask variable.

3. La consistenza dei dati fra più variabili intertask deve essere assicurata. Il trasferimento dei contenuti delle variabili intertask da un task ad un altro task non è vincolato ad intervalli di tempo fissi. Si utilizzano sempre i valori più aggiornati. 3. Data consistency between multiple intertask variables must be ensured. The transfer of the contents of the intertask variables from one task to another task is not bound to fixed time intervals. The most up-to-date values are always used.

4 . La consistenza dei dati di una variabile intertask oppure fra più variabili intertask deve essere assicurata. Il trasferimento dei contenuti delle variabili intertask da un task ad un altro task è vincolato a intervalli di tempo fissi. Hanno luogo eventualmente calcoli con più operazioni di registrazione sulle variabili intertask. 4. The data consistency of one intertask variable or between several intertask variables must be ensured. The transfer of the contents of the intertask variables from one task to another task is bound to fixed time intervals. Calculations with multiple registration operations may take place on the intertask variables.

5. Una grandezza viene utilizzata in più task ma non ha luogo scambio di dati fra i tasks. Si tratta di variabili logicamente coorenti fra di loro ma fra di loro indipendenti. 5. A quantity is used in several tasks but there is no data exchange between the tasks. These are variables that are logically consistent with each other but independent of each other.

6. Viene utilizzata una grandezza in più tasks. 6. One quantity is used in several tasks.

Lo scambio di dati fra i tasks viene regolato in modo speciale (casi particolari). Si tratta di variabili logicamente coerenti fra di loro e reciprocamente dipendenti. The data exchange between tasks is regulated in a special way (special cases). These are logically consistent and mutually dependent variables.

L'elaborazione di tasks di un programma computerizzato in un modo cooperativo è nota dal DE 195 00 957 Al. Un sistema di esercizio multitasking, che coadiuva sia il modo cooperativo sia anche il modo riempitivo per l'elaborazione di un programma computerizzato è ad esempio il sistema di esercizio in tempo reale ERCOS<EK >della ditta ETAS Entwicklungs- und pplikationswerkzeuge fuer elektronische Systerne GmbH & Co. KG, Stoccarda, Germania (vedere ETAS GmbH & Co. KG: ERCOS<EK >V2.0.0 Manual, Stoccarda 1998). Si fa espressamente riferimento al DE 19500 957 Al e al manuale ERCOS™. The processing of tasks of a computer program in a cooperative mode is known from DE 195 00 957 A1. A multitasking operating system, which supports both the cooperative mode and also the filling mode for processing a computer program is for example the ERCOS <EK> real-time operating system from ETAS Entwicklungs- und pplikationswerkzeuge fuer elektronische Systerne GmbH & Co. KG, Stuttgart, Germany (see ETAS GmbH & Co. KG: ERCOS <EK> V2.0.0 Manual, Stuttgart 1998 ). Reference is made expressly to DE 19500 957 A1 and to the ERCOS ™ manual.

Per una comunicazione intertask per il sistema di esercizio multitasking, noto dalla stato della tecnica, si utilizza un cosiddetto ERCOS Message Communication Model. Per questo procedimento garantente un consistente scambio di dati fra i tasks, il programmatore tuttavia deve definire le variabili intertask mediante parole chiave come cosiddetti Messages già in fase di definizione delle variabili. Inoltre viene coadiuvato soltanto un determinato meccanismo per la comunicazione intertask, per cui risulta fortemente limitata la funzionalità della nota comunicazione intertask. A so-called ERCOS Message Communication Model is used for intertask communication for the multitasking operating system known from the state of the art. For this procedure to guarantee a consistent data exchange between tasks, the programmer however must define the intertask variables using keywords such as so-called Messages already in the variable definition phase. Furthermore, only a certain mechanism for intertask communication is supported, so that the functionality of the known intertask communication is severely limited.

Nel programma computerizzato per ogni messages viene applicata una variabile come originale. All'inizio di task questi originali vengono copiati in variabili locali dei tasks. Gli algoritmi del task durante l'intera durata di funzionamento del task operano con queste copie. Altri task non possono accedere a queste copie ed anzi hanno proprie copie. Se dovranno essere disponibili risultati di algoritmi di un task anche per altri tasks, le copie locali alla fine del task vengon copiate negli originali. In the computer program for each messages a variable is applied as original. At the beginning of tasks these originals are copied into local variables of the tasks. The algorithms of the task during the entire life of the task operate with these copies. Other tasks cannot access these copies and indeed have their own copies. If algorithm results of a task are to be available for other tasks as well, the local copies at the end of the task are copied to the originals.

Il noto procedimento può essere impiegato per i casi di applicazione 1 e 2. La consistenza dei dati è garantita in quanto i tasks operano sempre con una copia delle variabili intertask. Per il caso di applicazione 3 il procedimento noto è impiegabile soltanto quando non è possibile interrompere la copiatura delle variabili intertask. Per i rimanenti casi di applicazione 4 fino a 6 non è possibile impiegare il procedimento. La velocità di aggiornamento delle variabili intertask dipende dallo svolgimento del programma computerizzato, si utilizzano sempre i valori più aggiornati. The known procedure can be used for application cases 1 and 2. The consistency of the data is guaranteed as the tasks always operate with a copy of the intertask variables. For application case 3, the known method can only be used when it is not possible to interrupt the copying of the intertask variables. For the remaining application cases 4 to 6 it is not possible to use the procedure. The updating speed of the intertask variables depends on the execution of the computerized program, the most updated values are always used.

La presente invenzione si pone pertanto il compito di eseguire e sviluppare ulteriormente un procedimento per realizzare una comunicazione intertask del genere menzionato all'inizio, in modo che il procedimento presenta una flessibilità il più possibile elevata e la comunicazione intertask presenta una funzionalità comprende il più possibile tutte le esigenze. The present invention therefore sets itself the task of carrying out and further developing a method for realizing an intertask communication of the kind mentioned at the beginning, so that the method has as much flexibility as possible and the intertask communication has a functionality that includes as much as possible all needs.

Partendo dal procedimento per realizzare una comunicazione intertask del genere menzionato all'inizio per risolvere questo problema l'invenzione propone un procedimento avente le seguenti fasi: Starting from the procedure for realizing an intertask communication of the kind mentioned at the beginning, to solve this problem the invention proposes a procedure having the following steps:

- determinazione di tutte le variabili utilizzate nel programma computerizzato - determination of all the variables used in the computerized program

- per ogni variabile determinazione dei tasks, in cui si ricorre alle variabili e determinazione delle variabili (variabili intertask) utilizzate in più tasks - for each variable, determination of tasks, in which variables are used and determination of variables (intertask variables) used in several tasks

- per ogni variabile intertask determinazione di meccanismi teoricamente adottabili per una comunicazione intertask da meccanismi disponibili - for each intertask variable determination of theoretically adoptable mechanisms for intertask communication from available mechanisms

- per variabili intertask, per le quali sono impiegabili più meccanismi, selezione di un meccanismo per una comunicazione intertask dei meccanismi teoricamente applicabili, e - for intertask variables, for which multiple mechanisms can be used, selection of a mechanism for intertask communication of the theoretically applicable mechanisms, and

- in dipendenza del meccanismo teoricamente applicabile o del meccanismo selezionato, inserimento di accorgimenti nei tasks per uno scambio di dati nel programma computerizzato. Vantaggi dell'invenzione - depending on the theoretically applicable mechanism or the selected mechanism, insertion of precautions in the tasks for an exchange of data in the computerized program. Advantages of the invention

Pertanto viene realizzata una tabella con tutte le variabili utilizzate nel programma computerizzato. Per ogni variabile vengono determinati i tasks, nei quali viene letta e,oppure registrata la variabile. Questa fase può essere automatizzata, in quanto ad esempio un Parser valuta i Quellfiles del programma computerizzato. Therefore a table is created with all the variables used in the computer program. The tasks in which the variable is read and / or recorded are determined for each variable. This phase can be automated, as for example a Parser evaluates the Quellfiles of the computerized program.

Nella tabella vengono quindi determinate tutte le variabili intertask. Variabili intertask sono tutte le variabili utilizzate in più task. Tutte le variabili utilizzate in soltanto un task possono essere trascurate nelle successive fasi del procedimento. Questa fase della determinazione delle variabili intertask può essere automatizzata, in quanto ad esempio un attrezzo adatto (Tool) valuta la tabella. All intertask variables are then determined in the table. Intertask variables are all variables used in multiple tasks. All the variables used in only one task can be neglected in the subsequent steps of the procedure. This step of the determination of the intertask variables can be automated, as for example a suitable tool (Tool) evaluates the table.

Da una serie di meccanismi disponibili, descritti più in seguito in dettaglio, per ogni variabile intertask vengono quindi determinati i meccanismi teoricamente applicabili. Essi risultano dai tasks presenti dalla relativa priorità. A tale scopo deve essere nota la priorità di ogni task. Questa fase può essere automatizzata, in quanto ad esempio un attrezzo (Tool) valuta la tabella. The theoretically applicable mechanisms are then determined for each intertask variable from a series of available mechanisms, described in more detail below. They result from the tasks present from their priority. To do this, the priority of each task must be known. This phase can be automated, as for example a tool evaluates the table.

Quando per una variabile intertask sono impiegabili più meccanismi, ad esempio un programmatore dovrà decidere quale meccanismo debba essere adottato. Corrispondentemnte al meccanismo selezionato, rispettivamente corrispondentemente al meccanismo applicabile, quando per una variabile intertask è adottabile soltanto un meccanismo, all'inizio rispettivamente alla fine dei tasks vengono infine inseriti accorgimenti per un consistente scambio di dati nel programma computerizzato. Si rendere automatica questa fase in quanto ad esempio un attrezzo adatto (Tool) realizza le parti di programma corrispondenti agli accorgimenti da inserire. When multiple mechanisms are usable for an intertask variable, for example, a programmer will have to decide which mechanism should be adopted. Corresponding to the selected mechanism, respectively corresponding to the applicable mechanism, when for an intertask variable only one mechanism can be adopted, at the beginning or at the end of the tasks, devices are finally inserted for a consistent exchange of data in the computerized program. This phase must be made automatic because, for example, a suitable tool (Tool) creates the parts of the program corresponding to the measures to be inserted.

I vantaggi del procedimento secondo l'invenzione consistono specialmente nel fatto che non si dovrà necessariamente caratterizzare una variabile, già nel corso della definizione come variabile intertask. Anzi,quando è stabilita la configurazione dell'intero programma computerizzato, è necessario decidere se per una variabile sono o non sono necessari determinati meccanismi. In tal modo si può evitare che troppe o troppo poche variabili vengano definite come variabili intertask. The advantages of the method according to the invention consist in particular in the fact that it is not necessarily necessary to characterize a variable, already during the definition as an intertask variable. Indeed, when the configuration of the entire computer program is established, it is necessary to decide whether or not certain mechanisms are required for a variable. This can prevent too many or too few variables from being defined as intertask variables.

Inoltre il procedimento secondo l'invenzione non coadiuva soltanto uno speciale meccanismo per la comunicazione intertask. Anzi il programmatore ha a disposizione una pluralità di differenti meccanismi con le loro corrispondenti proprietà (flessibilità del software, ottimizzazione dell'utilizzazione delle risorse etc.), P<er >cui esso è in grado di selezionare per il rispettivo caso di impiego un meccanismo ottimale. Furthermore, the method according to the invention not only supports a special mechanism for intertask communication. Indeed, the programmer has at his disposal a plurality of different mechanisms with their corresponding properties (software flexibility, optimization of the use of resources, etc.), P <er> to which he is able to select a mechanism for the respective use case optimal.

Infine il procedimento secondo l'invenzione può essere reso automatico senza grande dispendio. Il programmatore di conseguenza con la realizzazione del software può essere quasi completamente sollevato dalle gravi elevazioni in parte assai complesse. Finally, the method according to the invention can be made automatic without great expenditure. Consequently the programmer with the realization of the software can be almost completely relieved from the severe elevations in part very complex.

Conformemente ad un vantaggioso ulteriore sviluppo della presente invenzione viene proposto che i meccanismi teoricamente adottabili per una comunicazione intertask vengono determinati in base ai tasks presenti nel programma computerizzato e alla relativa priorità. According to an advantageous further development of the present invention it is proposed that the theoretically adoptable mechanisms for an intertask communication are determined on the basis of the tasks present in the computerized program and the relative priority.

Con i meccanismi disponibili per una comunicazione intertask viene vantaggiosamente assicurato che durante l'elaborazione di una parte del programma computerizzato (ad esempio processo o task) i contenuti di tutte le variabili intertask non vengano modificati da altre parti del programma computerizzato. Così ad esempio la consistenza dei dati di una variabile intertask è pregiudicata quando la variabile intertask viene registrata in un task di alta priorità e letta in un task di bassa priorità. Può verificarsi un ulteriore problema quando una variabile intertask viene più volte registrata in un task di bassa priorità (ad esempio per l'esecuzione di calcoli intermedi) e viene letta in una task di alta priorità, e il task di bassa priorità può essere interrotto fra le operazioni di registrazione dal task di alta priorità. With the mechanisms available for intertask communication, it is advantageously ensured that during the processing of a part of the computer program (for example process or task) the contents of all intertask variables are not changed by other parts of the computer program. Thus, for example, the data consistency of an intertask variable is impaired when the intertask variable is registered in a high priority task and read in a low priority task. A further problem may arise when an intertask variable is repeatedly registered in a low priority task (for example, for performing intermediate calculations) and is read in a high priority task, and the low priority task can be interrupted between the registration operations from the high priority task.

Inoltre mediante il meccanismo disponibile per una comunicazione intertask vantaggiosamente viene assicurato che durante l'elaborazione del programma computerizzato vengono variati insieme i contenuti di tutte le variabili intertask logicamente coerenti. Così ad esempio la consistenza dei dati fra più variabili intertask è pregiudicata quando le variabili intertask vengono descritte in un task di alta priorità e lette in un task di bassa priorità. Inoltre la consistenza dei dati fra più variabili intertask è pregiudicata quando le variabili intertask vengono registrate in un task di bassa priorità e lette in un task di alta priorità ed è possibile interrompere il task di bassa priorità fra le operazioni di registrazione del task di alta priorità. Ciò si verifica per lo Scheduling cooperativo, quando le operazioni di registrazione vengono effettuate in più processi. Dello Scheduling preempitivo è già problematico quando le operazioni di registrazione avvengono con più istruzioni assembler. Furthermore, by means of the mechanism available for intertask communication, it is advantageously ensured that during the processing of the computer program the contents of all logically consistent intertask variables are varied together. Thus, for example, the consistency of data between several intertask variables is impaired when the intertask variables are described in a high priority task and read in a low priority task. Furthermore, the consistency of data between multiple intertask variables is impaired when the intertask variables are registered in a low priority task and read in a high priority task and it is possible to interrupt the low priority task between the registration operations of the high priority task. . This occurs for cooperative scheduling, when posting is done in multiple processes. Preemptive scheduling is already problematic when registration operations occur with multiple assembler instructions.

Conformemente ad una forma di realizzazione preferita della presente invenzione viene proposto che i meccanismi disponibili comprendano almeno uno dei meccanismi illustrati in seguito: According to a preferred embodiment of the present invention it is proposed that the available mechanisms comprise at least one of the mechanisms illustrated below:

- scambio attuale di dati, copiatura all'inizio di un task di bassa priorità - actual data exchange, copying at the start of a low priority task

- scambio attuale di dati, esiste soltanto una variabile intertask, nessuna copiatura - current data exchange, only one intertask variable exists, no copying

scambio attuale dei dati, copiatura alla fine di un task di bassa priorità actual data exchange, copying at the end of a low priority task

scambio ciclico dei dati, copiatura alla fine di un task di alta priorità in istanti definiti scambio ciclico dei dati, copiatura all'inizio di un task di alta priorità in istanti definiti - nessuno scambio di dati, variabili fra di loro indipendenti, nessuna copiatura, e cyclic data exchange, copying at the end of a high priority task at defined instants cyclical data exchange, copying at the beginning of a high priority task at defined instants - no data exchange, mutually independent variables, no copying, And

casi particolari. special cases.

In base ai meccanismi qui realizzati è possibile realizzare tutti i casi di applicazione precedentemente descritti. On the basis of the mechanisms implemented here, it is possible to realize all the previously described application cases.

Conformemente ad un ulteriore vantaggioso sviluppo della presente invenzione viene proposto che per lo scambio attuale dei dati According to a further advantageous development of the present invention it is proposed that for the actual data exchange

- ad un task di registrazione di alta priorità e almeno ad un task di lettura di bassa priorità venga associata rispettivamente una propria riproduzione di almeno una variabile intertask e all'inizio di ogni task di bassa priorità il contenuto di almeno una variabile intertask venga copiato dal task di alta priorità verso almeno un task di bassa priorità, quando almeno una variabile intertask viene registrata nel task di alta priorità e viene letta in almeno un task di bassa priorità - an own reproduction of at least one intertask variable is associated with a high-priority recording task and at least one low-priority reading task, and at the beginning of each low-priority task the content of at least one intertask variable is copied from the high priority task towards at least one low priority task, when at least one intertask variable is registered in the high priority task and is read in at least one low priority task

- non viene copiato il contenuto di una variabile intertask fra un task di alta priorità ed un task di bassa priorità, se la variabile intertask viene registrata nel task di bassa priorità e viene letta in almeno un task di alta priorità, oppure - the content of an intertask variable is not copied between a high priority task and a low priority task, if the intertask variable is registered in the low priority task and is read in at least one high priority task, or

- ad un task di registrazione di bassa priorità ed almeno un task di lettura di alta priorità viene associata rispettivamente una propria riproduzione di almeno una variabile intertask e il contenuto di almeno una variabile intertask alla fine del task di bassa priorità viene copiato dal task di bassa priorità verso almeno un task di alta priorità, se la variabile intertask viene registrata nel task di bassa priorità e viene letta in almeno un task di alta priorità. - an own reproduction of at least one intertask variable is associated with a low priority recording task and at least one high priority reading task and the content of at least one intertask variable at the end of the low priority task is copied from the low task priority towards at least one high priority task, if the intertask variable is registered in the low priority task and is read in at least one high priority task.

Conformemente ad una forma di realizzazione preferita della presente invenzione viene proposto che se almeno una variabile intertask viene registrata nel task di alta priorità e viene letta in almeno un task di bassa priorità, viene impedita una interruzione della copiatura del contenuto di almeno una variabile intertask da parte di un task di alta priorità. According to a preferred embodiment of the present invention, it is proposed that if at least one intertask variable is registered in the high priority task and is read in at least one low priority task, an interruption in copying the content of at least one intertask variable is prevented from part of a high priority task.

Conformemente ad un'altra forma di realizzazione preferita della presente invenzione viene proposto che se la variabile intertask viene registrata nel task di bassa priorità e viene letta almeno in un task di alta priorità, viene resa possibile una interruzione dei calcoli con più operazioni di registrazione sulla variabile intertask nel task di bassa priorità. According to another preferred embodiment of the present invention it is proposed that if the intertask variable is registered in the low priority task and is read in at least one high priority task, an interruption of the calculations with multiple registration operations on the intertask variable in the low priority task.

Conformemente ad un altro ulteriore vantaggioso sviluppo della presente invenzione viene proposto che per lo scambio di dati ciclico According to another further advantageous development of the present invention it is proposed that for cyclical data exchange

il contenuto di almeno una variabile intertask in una prima chiamata di un task di alta priorità alla fine del task di alta priorità venga copiato dal task di alta priorità verso almeno un task di bassa priorità, qualora almeno una variabile intertask venga registrata nel task di alta priorità e venga letta in almeno un task di bassa priorità; oppure the content of at least one intertask variable in a first call of a high-priority task at the end of the high-priority task is copied from the high-priority task to at least one low-priority task, if at least one intertask variable is registered in the high-priority task priority and is read in at least one low priority task; or

- il contenuto di almeno una variabile intertask viene copiato in un prima chiamata di un task di alta priorità all'inizio del task di alta priorità dal task di bassa priorità verso almeno un task di alta priorità, qualora almeno una variabile intertask venga registrata nel task di bassa priorità e letta in almeno un task di alta priorità. - the content of at least one intertask variable is copied in a first call of a high priority task at the beginning of the high priority task from the low priority task to at least one high priority task, if at least one intertask variable is registered in the task low priority and read in at least one high priority task.

Disegni Drawings

Ulteriori caratteristiche, possibilità di impiego e vantaggi dell'invenzione risultano dalla seguente descrizione di esempi di realizzazione dell'invenzione rappresentati nel disegno. In particolare tutte le caratteristiche descritte o rappresentate formano di per sé o in combinazione a piacere l'oggetto dell'invenzione indipendentemente dal loro compendio nelle rivendicazioni o dalla loro relazione nonché indipendentemente dalla loro formulazione rispettivamente rappresentazione nella descrizione rispettivamente nel disegno. Further characteristics, possibilities of use and advantages of the invention result from the following description of embodiments of the invention shown in the drawing. In particular, all the characteristics described or represented form the object of the invention by themselves or in combination as desired, regardless of their summary in the claims or their relationship as well as regardless of their formulation or representation in the description or in the drawing.

In particolare: In particular:

la figura 1 mostra una tabella con meccanismi per una comunicazione intertask in un sistema di esercizio multitasking, Figure 1 shows a table with mechanisms for intertask communication in a multitasking operating system,

la figura 2 mostra una legenda relativa alla tabella della figura 1, Figure 2 shows a legend relating to the table in Figure 1,

la figura 3 mostra un meccanismo noto dalla stato della tecnica per una comunicazione intertask in un sistema di esercizio multitasking, la figura 4 mostra un meccanismo per un task di bassa priorità per una comunicazione intertask per un attuale scambio di dati, Figure 3 shows a mechanism known from the state of the art for an intertask communication in a multitasking operating system, Figure 4 shows a mechanism for a low priority task for an intertask communication for an actual data exchange,

la figura 5 mostra uno svolgimento task per un attuale scambio di dati, Figure 5 shows a task sequence for a current data exchange,

la figura 6 mostra un meccanismo per un task di alta priorità per la comunicazione intertask con uno scambio di dati ciclico, Figure 6 shows a mechanism for a high priority task for intertask communication with cyclic data exchange,

la figura 7 mostra uno svolgimento task per uno scambio di dati ciclico, Figure 7 shows a task sequence for a cyclical data exchange,

la figura 8 mostra una tabella per illustrare un procedimento secondo l'invenzione in base a cinque variabili ad esempio evidenziate, e Figure 8 shows a table to illustrate a process according to the invention on the basis of five variables highlighted for example, and

la figura 9 mostra un diagramma di svolgimento del procedimento secondo l'invenzione conformemente ad una forma di realizzazione preferita. Figure 9 shows a flow chart of the process according to the invention according to a preferred embodiment.

Descrizione degli esempi di realizzazione Description of the examples of realization

Dallo stato della tecnica sono noti i programmi computerizzati suddivisi in più tasks. Un task è una parte di software,che dovrà essere attuata come conseguenza di un evento oppure ad intervalli di tempo regolari. Ogni tasks ha associata una priorità. I tasks possono essere realizzati in un modo cooperativo oppure preempitivo. A riguardo tutti i tasks preempitivi sono fondamentalmente priorizzati in modo più alto rispetto ai tasks cooperativi. Un tasks comprende una sequenza di almeno un processo. Un processo è una unità funzionale chiusa nell'ambito di un task. A livello tecnico di programma un processo è una funzione senza argomenti e senza valore di restituzione. I processi vengono elaborati sequenzialmente. Computerized programs divided into several tasks are known from the state of the art. A task is a piece of software, which must be implemented as a consequence of an event or at regular time intervals. Each task has an associated priority. Tasks can be done in a cooperative or preemptive way. In this regard, all preemptive tasks are fundamentally prioritized in a higher way than cooperative tasks. A tasks comprises a sequence of at least one process. A process is a closed functional unit within a task. At the program level, a process is a function with no arguments and no return value. The processes are processed sequentially.

Quando in un determinato istante si intendono realizzare contemporaneamente più tasks, i tasks vengono elaborati corrispondentemnte alla loro priorità. Il task con la priorità più alta viene realizzato per primo. Un task con una priorità più bassa viene interrotto da un task di più alta priorità. Un task riempitivo può interrompere tasks di bassa priorità (tasks preempitivi o cooperativi) i qualsiasi momento, ossia anche l'elaborazione di un processo. Un task cooperativo può interrompere il task di bassa priorità ( solo task cooperativi) unicamente fra due processi. When several tasks are to be carried out simultaneously at a given time, the tasks are processed corresponding to their priority. The task with the highest priority is performed first. A lower priority task is interrupted by a higher priority task. A filler task can interrupt low priority tasks (preemptive or cooperative tasks) at any time, ie also the processing of a process. A cooperative task can interrupt the low priority task (cooperative tasks only) between two processes only.

La realizzazione di un programma computerizzato formato da più tasks viene comandata da un sistema di esercizio multitasking. Nei tasks esistono variabili, alle quali si ricorre con lettura e,oppure registrazione in più tasks. Tali variabili vengono indicate come variabili intertask. Esse servono allo scambio di informazioni fra i tasks. The creation of a computerized program consisting of several tasks is controlled by a multitasking operating system. In the tasks there are variables, which are used by reading and / or recording in several tasks. These variables are referred to as intertask variables. They serve for the exchange of information between tasks.

Durante la realizzazione del programma computerizzato è necessario fare attenzione alla consistenza dei dati delle variabili intertask. Va assicurato che durante l'elaborazione di una parte del software (ad esempio processo o task) i contenuti di tutte le variabili, ai quali ricorre la parte software, non vengano modificati da altre parti solftware. Così la consistenza dei dati di una variabili intertask ad esempio è pregiudicata quando la variabile intertask viene registrata in un task di alta priorità e letta in un task di bassa priorità. Un ulteriore problema compare quando una variabile intertask in un task di bassa priorità (ad esempio per attuare calcoli intermedi) viene registrata più volte e letta in un task di alta priorità, e il task di bassa priorità può essere interrotto fra le operazioni di registrazione dal task di alta priorità. Ciò si verifica nel caso di Scheduling cooperativo, quando le operazioni di registrazione vengono effettuate in più processi. Nel caso dello Scheduling preempitivo è già problematico quando le operazioni di registrazione sono realizzate con più istruzioni assembler. During the implementation of the computer program it is necessary to pay attention to the consistency of the data of the intertask variables. It must be ensured that during the elaboration of a part of the software (for example process or task) the contents of all the variables used by the software part are not modified by other solftware parts. Thus the data consistency of an intertask variable is, for example, impaired when the intertask variable is registered in a high priority task and read in a low priority task. A further problem occurs when an intertask variable in a low priority task (for example to perform intermediate calculations) is recorded multiple times and read in a high priority task, and the low priority task can be interrupted between registration operations by the high priority tasks. This occurs in the case of cooperative scheduling, when posting is done in multiple processes. In the case of preempitive scheduling it is already problematic when the registration operations are carried out with several assembler instructions.

Va considerata anche la sicurezza della consistenza dei dati fra più variabili intertask. Se più variabili intertask sono logicamente coerenti fra loro va assicurato che fra i tasks vengano scambiati sempre contenuti coorenti delle variabili. Così la consistenza dei dati fra più variabili intertask ad esempio è pregiudicata quando le variabili intertask vengono registrate in un task di alta priorità e lette in un task di bassa priorità. La consistenza dei dati fra più variabili intertask e inoltre pregiudicata quando le variabili intertask vengono registrate in un task di bassa priorità e lette in un task di alta priorità e il task di bassa priorità può essere interrotto fra le operazioni di registrazione dal task di alta priorità. Ciò si verifica nel caso di Scheduling cooperativo, quando le operazioni di registrazione vengono effettuate in più processi. Nello Scheduling preempitivo è già problematico quando le operazioni di registrazione sono realizzate con più istruzioni assembler. The security of data consistency between multiple intertask variables must also be considered. If several intertask variables are logically consistent with each other, it must be ensured that the coorent contents of the variables are always exchanged between the tasks. Thus, the consistency of the data between several intertask variables is compromised, for example, when the intertask variables are registered in a high priority task and read in a low priority task. Data consistency across multiple intertask variables is also impaired when intertask variables are registered in a low priority task and read in a high priority task and the low priority task can be interrupted between registration operations by the high priority task . This occurs in the case of cooperative scheduling, when posting is done in multiple processes. In preemptive scheduling it is already problematic when the registration operations are performed with multiple assembler instructions.

Un ulteriore aspetto importante per la comunicazione intertask è l'istante dello scambio dei dati. Esistono due differenti possibilità: Another important aspect for intertask communication is the instant of data exchange. There are two different possibilities:

- nel caso di un attuale scambio di dati il trasferimento del contenuto di una variabile intertask da un task ad un altro task non è vincolato ad intervalli di tempo fissi e si utilizza sempre il valore più aggiornato - in the case of a current data exchange, the transfer of the content of an intertask variable from one task to another task is not bound to fixed time intervals and the most updated value is always used

- per uno scambio di dati ciclico il trasferimento del contenuto della variabile intertask da un task ad un altro task è vincolato ad intervalli di tempo fissi. - for a cyclic data exchange, the transfer of the contents of the intertask variable from one task to another task is bound to fixed time intervals.

Esistono tre possibilità di uno scambio dei dati attuale (vedere fig. 4): There are three possibilities for an actual data exchange (see fig. 4):

1. una oppure variabili intertask vengono registrate in un task di alta priorità e lette in uno oppure più task di bassa priorità. In questo caso al task di registrazione di alta priorità e ai tasks di lettura di bassa priorità viene associata rispettivamente una propria copia delle variabili intertask. All'inizio di ogni task di bassa priorità il contenuto delle variabili intertask viene copiato dal task di alta priorità al task di bassa priorità (vedere "inizio task" in figura 4). Se si tratta di più variabili intertask è necessario assicurare che la copiatura non possa essere interrotta da uno dei tasks di più alta priorità. 1. one or more intertask variables are registered in a high priority task and read in one or more low priority tasks. In this case, the high-priority registration task and the low-priority reading tasks are associated respectively with their own copy of the intertask variables. At the beginning of each low priority task the contents of the intertask variables are copied from the high priority task to the low priority task (see "task start" in figure 4). If there are several intertask variables, it is necessary to ensure that the copying cannot be interrupted by one of the higher priority tasks.

2. Una variabile intertask viene registrata in un task di bassa priorità e letta in uno o più task di alta priorità. In questo caso esiste soltanto una variabile per tutti i task e non sono necessarie copie. 2. An intertask variable is registered in a low priority task and read in one or more high priority tasks. In this case there is only one variable for all tasks and no copies are needed.

3. Una variabile intertask viene registrata in un task di bassa priorità e letta in uno o più task di alta priorità. I calcoli con più operazioni di registrazione sulla variabile intertask nel task di bassa priorità possono essere interrotti. Alternativamente è possibile registrare anche più variabili di intertask in un task di bassa priorità oppure leggerle in uno oppure task di più alta priorità. La consistenza dei dati fra queste variabili intertask deve essere assicurata. In questi due casi il task di registrazione di bassa priorità e i tasks di lettura di alta priorità ricevono associata di volta in volta una propria copia delle variabili intertask. Alla fine del task di bassa priorità il contenuto delle variabili intertask dal task di bassa priorità viene copiato verso i tasks di alta priorità (vedere "fine task" in figura 4). Se si tratta di più variabili intertask oppure di più task di alta priorità, è necessario assicurare che la copiatura non possa essere interrotta da uno dei tasks di alta priorità. Nella figura 5 è rappresentato lo svolgimento task esemplificativamente per un primo ciclo e per un secondo ciclo per l'attuale scambio di dati. E' chiaramente riconoscibile che i processi di copiatura vengono realizzati dal task di alta priorità Hi verso il task di bassa priorità Lo rispettivamente dal task di bassa priorità Lo al task Hi di alta priorità all'inizio rispettivamente alla fine del task di bassa priorità. 3. An intertask variable is registered in a low priority task and read in one or more high priority tasks. Calculations with multiple registration operations on the intertask variable in the low priority task can be aborted. Alternatively, it is also possible to register several intertask variables in a low priority task or read them in one or higher priority tasks. The consistency of the data between these intertask variables must be ensured. In these two cases, the low priority registration task and the high priority reading tasks each time receive their own copy of the intertask variables. At the end of the low priority task the contents of the intertask variables from the low priority task are copied to the high priority tasks (see "end of task" in figure 4). If there are several intertask variables or multiple high priority tasks, it must be ensured that the copying cannot be interrupted by one of the high priority tasks. Figure 5 shows the task execution by way of example for a first cycle and for a second cycle for the current data exchange. It is clearly recognizable that the copying processes are carried out by the high priority task Hi towards the low priority task Lo respectively from the low priority task Lo to the high priority task Hi at the beginning respectively at the end of the low priority task.

Per realizzare lo scambio ciclico di dati nel programma computerizzato (software) per le rispettive variabili intertask vengono applicate di volta in volta più copie. Ogni task utilizzato nella variabile intertask riceve associato una propria copia. Il numero delle copie di una variabile intertask risulta pertanto dal numero dei task in cui essa viene utilizzata. In order to implement the cyclic data exchange in the computer program (software) for the respective intertask variables, several copies are applied in each case. Each task used in the intertask variable receives its own copy associated with it. The number of copies of an intertask variable therefore results from the number of tasks in which it is used.

Per lo scambio ciclico dei dati esistono due possibilità (vedere figura 6): There are two possibilities for cyclic data exchange (see figure 6):

1. una oppure più variabili intertask vengono registrate in un task di alta priorità e lette in uno oppure task di bassa priorità. In questo caso all'inizio di un ciclo (nella prima chiamata del task di alta priorità) alla fine del task di alta priorità (vedere "fine task" in figura 6) il contenuto delle variabili intertask dovrà essere copiato dal task di alta priorità Hi verso i tasks di bassa priorità Lo. 1. one or more intertask variables are registered in a high priority task and read in one or more low priority task. In this case at the beginning of a cycle (in the first call of the high priority task) at the end of the high priority task (see "end of task" in figure 6) the contents of the intertask variables must be copied from the high priority task Hi towards low priority tasks Lo.

2. Una oppure più variabili intertask vengono registrate in un task di bassa priorità e lette in uno oppure task di alta priorità. In questo caso l'inizio del ciclo (nella prima chiamata del task di massima priorità) all'inizio del task di massima priorità (vedere "inizio task" in figura 6) il contenuto delle variabili intertask dovrà essere copiato dal task di bassa priorità Lo verso i tasks di alta priorità Hi. 2. One or more intertask variables are registered in a low priority task and read in one or more high priority task. In this case, the start of the cycle (in the first call of the highest priority task) at the beginning of the highest priority task (see "task start" in figure 6) the contents of the intertask variables must be copied from the low priority task. towards high priority tasks Hi.

La durata di un ciclo viene definita dal task con il massimo tempo di campionamento, in cui si utilizza la variabile intertask. Ogni ciclo inizia con la chiamata del task con la massima priorità. Seguono quindi gli altri tasks (di bassa priorità). In sistemi orientati al ciclo usualmente il task con il minimo tempo di campionamento presenta la massima priorità e il task con il massimo tempo di campionamento presenta la minima priorità. I tempi di campionamento stanno reciprocamente in un rapporto numerico intero. The duration of a cycle is defined by the task with the maximum sampling time, in which the intertask variable is used. Each cycle begins with calling the task with the highest priority. Then the other (low priority) tasks follow. In cycle-oriented systems usually the task with the shortest sampling time has the highest priority and the task with the highest sampling time has the lowest priority. The sampling times are reciprocally in an integer relationship.

La copiatura delle variabili intertask ha luogo in un istante definito nel task con la massima priorità (il ciclo). Questi tasks e pertanto anche la copiatura delle variabili intertask non possono essere interrotti. Anche nel caso di Scheduling intatto il task di bassa priorità non può essere stato interrotto dal task di alta priorità all'inizio di un ciclo. Per questi motivi il procedimento può essere impiegato anche quando le variabili intertask nei tasks debbono essere registrate più volte e,oppure deve essere assicurata la consistenza dei dati fra più variabili intertask. The copying of the intertask variables takes place at a time defined in the task with the highest priority (the cycle). These tasks and therefore also the copying of the intertask variables cannot be interrupted. Even in the case of intact Scheduling, the low priority task cannot have been interrupted by the high priority task at the beginning of a cycle. For these reasons, the procedure can also be used when the intertask variables in the tasks must be registered several times and / or the consistency of the data between several intertask variables must be ensured.

Nella figura 7 è rappresentato esemplificativamente uno svolgimento task per un primo ciclo e per un suo secondo ciclo per uno scambio ciclico dei dati. E' chiaramente riconoscibile che i processi di copiatura hanno luogo dal task di bassa priorità Lo al task di alta priorità Hi rispettivamente dal task Hi di alta priorità al task Lo di bassa priorità, all'inizio rispettivamente alla fine del task di alta priorità. Figure 7 illustrates by way of example a task sequence for a first cycle and a second cycle thereof for a cyclic data exchange. It is clearly recognizable that the copying processes take place from the low priority task Lo to the high priority task Hi respectively from the high priority task Hi to the low priority Lo task, at the beginning respectively at the end of the high priority task.

Dalle esigenze relative alla consistenza dei dati e dai diversi istanti dello scambio di dati risultano i seguenti casi di applicazione: The following application cases result from the requirements relating to the consistency of the data and the various instances of data exchange:

1. la consistenza dei dati di una variabile intertask dovrà essere assicurata. Il trasferimento del contenuto della variabile intertask da un task ad un altro task non è vincolato agli intervalli di tempo fissi (scambio di dati attuale) 1. the data consistency of an intertask variable must be ensured. The transfer of the contents of the intertask variable from one task to another task is not bound to fixed time intervals (actual data exchange)

2. la consistenza dei dati di una variabile intertask dovrà essere assicurata. Il trasferimento del contenuto della variabile intertask da un task ad un altro task non è vincolato ad intervalli di tempo fissi (scambio di dati attuale). Hanno luogo calcoli con più operazioni di registrazioni sulla variabile intertask. 2. the data consistency of an intertask variable must be ensured. The transfer of the contents of the intertask variable from one task to another task is not bound to fixed time intervals (actual data exchange). Calculations with multiple posting operations take place on the intertask variable.

3. La consistenza dei dati fra più variabili intertask dovrà essere assicurata. Il trasferimento dei contenuti delle variabili intertask da un task ad un altro task non è vincolato ad intervalli di tempo fissi (scambio attuale dei dati). 3. The consistency of the data between several intertask variables must be ensured. The transfer of the contents of the intertask variables from one task to another task is not bound to fixed time intervals (actual data exchange).

4. La consistenza dei dati di una variabile intertask oppure fra più variabili intertask dovrà essere assicurata. Il trasferimento dei contenuti delle variabili intertask da un task ad un altro task è vincolato ad intervalli di tempo fissi (scambio ciclico dei dati). Hanno luogo calcoli con più operazioni di registrazione sulle variabili intertask. 4. The consistency of the data of one intertask variable or between several intertask variables must be ensured. The transfer of the contents of the intertask variables from one task to another task is bound to fixed time intervals (cyclic data exchange). Calculations with multiple registration operations take place on intertask variables.

5. Una grandezza viene utilizzata in più task ma non ha luogo uno scambio di dati fra i tasks. Si tratta di variabili logicamente coerenti ma fra di loro indipendenti. 5. A quantity is used in several tasks but there is no data exchange between the tasks. These are logically consistent but independent variables.

6. Una grandezza viene impiegata in più task. Lo scambio dei dati fra i tasks viene regolato in modo speciale (casi particolari). Si tratta di variabili logicamente coerenti e fra di loro dipendenti. 6. A quantity is used in several tasks. Data exchange between tasks is regulated in a special way (special cases). These are logically consistent and mutually dependent variables.

Nella figura 1 sono rappresentati i meccanismi previsti secondo l'invenzione per realizzare questi casi di applicazione. Essi vengono descritti in seguito dettagliatamente. In un primo momento tuttavia viene descritto un meccanismo noto dallo stato della tecnica, il cosiddetto ERCOS Message Communication Model. Questo noto meccanismo è contenuto in un noto sistema di esercizio multitasking in tempo reale ERCOS^ della ditta ETAS Entwicklungs- und Applikationswerkzeuge fuer elektronische Systerne GmbH und Co. KG, Stoccarda. Il noto meccanismo è rappresentato nella figura 3. Nel noto sistema di esercizio multitasking viene realizzata una comunicazione intertask, per il fatto che un programmatore già in fase di definizione delle variabili del programma computerizzato definisce tutte le variabili intertask mediante parole chiave come cosiddetti messages. Nel programma computerizzato (software) per ogni messages viene applicata una variabile come originale 0. All'inizio di un task Hi, Lo questi originali 0 vengono copiati in variabili locali dei task Hi, Lo. Gli algoritmi del task durante l'intero tempo di svolgimento del task operano con queste copie. Altri tasks non possono accedere a queste copie e anzi hanno proprie copie. Se dovranno essere disponibil risultati di algoritmi dei tasks Hi, Lo anche per altri tasks, le copie locali alla fine del task Hi, Lo vengono copiate negli originali 0 (vedere figura 3). Figure 1 shows the mechanisms envisaged according to the invention for realizing these application cases. They are described in detail below. At first, however, a mechanism known from the state of the art is described, the so-called ERCOS Message Communication Model. This well-known mechanism is contained in a well-known ERCOS real-time multitasking operating system ^ from ETAS Entwicklungs- und Applikationswerkzeuge fuer elektronische Systerne GmbH und Co. KG, Stuttgart. The known mechanism is shown in Figure 3. In the known multitasking operating system, an intertask communication is implemented, due to the fact that a programmer already in the phase of defining the variables of the computer program defines all the intertask variables by means of keywords such as so-called messages. In the computer program (software) for each messages a variable is applied as the original 0. At the beginning of a task Hi, Lo these original 0's are copied into local variables of the tasks Hi, Lo. The task algorithms during the entire task run time operate with these copies. Other tasks cannot access these copies and indeed have their own copies. If algorithm results of tasks Hi, Lo are to be available for other tasks as well, the local copies at the end of the task Hi, Lo are copied to the original 0 (see figure 3).

Questo noto meccanismo può essere impiegato soltanto per i casi di applicazione 1 e 2. La consistenza dei dati viene garantita per il fatto che i tasks Hi, Lo operano sempre con una copia della variabile intertask. Per il caso di applicazione 3 il procedimento è utilizzabile soltanto quando non è possibile interrompere la copiatura delle variabili intertask. Dagli altri casi di applicazione 4 fino a 6 non è possibile impiegare il procedimento noto. La velocità di aggiornamento delle variabili intertask dipende dallo svolgimento del programma computerizzato. Si utilizzano sempre dei valori più aggiornati in assoluto. This known mechanism can only be used for application cases 1 and 2. Data consistency is ensured by the fact that tasks Hi, Lo always operate with a copy of the intertask variable. For application case 3, the procedure can only be used when it is not possible to interrupt the copying of the intertask variables. From the other application cases 4 to 6 it is not possible to use the known method. The updating speed of the intertask variables depends on the execution of the computerized program. The most up-to-date values are always used.

Per rendere flessibile la realizzazione di una comunicazione intertask in un sistema di esercizio multitasking e aumentare la funzionalità della comunicazione intertask, l'invenzione propone un procedimento, di cui nella figura 9 è rappresentato un diagramma di svolgimento di una forma di realizzazione preferita. Parte del procedimento secondo l'invenzione sono i meccanismi rappresentati in figura 1. Il meccanismo A riguarda uno scambio di dati attuale, laddove viene effettuata copiatura all'inizio di un task di bassa priorità. Il meccanismo A è impiegabile per i casi di applicazione 1,2 e 3. Al task di alta priorità Hi si accede con registrazione W e con lettura R. Al task di bassa priorità Lo si accede soltanto con lettura R. Il meccanismo B.l riguarda parimenti uno scambio di dati attuale, laddove esiste soltanto una variabile. Pertanto non sono necessarie copie. Il meccanismo B.l è impiegabile soltanto per il caso di applicazione 1. Sul task Hi di alta priorità si accede soltanto con lettura R e sul task Lo di bassa priorità si accede sia con lettura R sia anche con registrazione W. Il meccanismo B.2 riguarda infine anche un attuale stato di dati, laddove viene effettuata copiatura alla fine del task di bassa priorità. Il meccanismo B.2 è impiegabile per i casi di applicazione 2 e 3. Sul task di alta priorità Hi si accede con lettura R e sul task Lo di bassa priorità si accede con lettura R e con registrazione W. In order to make the implementation of an intertask communication in a multitasking operating system flexible and to increase the functionality of the intertask communication, the invention proposes a method, of which Figure 9 shows a sequence diagram of a preferred embodiment. Part of the method according to the invention are the mechanisms represented in figure 1. Mechanism A concerns an actual data exchange, whereby copying is carried out at the beginning of a low priority task. Mechanism A can be used for application cases 1,2 and 3. The high priority task Hi is accessed with registration W and with reading R. The low priority task Lo is accessed only with reading R. Mechanism B.l also concerns an actual data exchange, where there is only one variable. Therefore no copies are needed. Mechanism B.l can only be used for application case 1. The high priority task Hi is accessed only with reading R and the low priority task Lo is accessed both with reading R and also with recording W. Mechanism B.2 concerns finally also a current data state, where copying is performed at the end of the low priority task. Mechanism B.2 can be used for application cases 2 and 3. The high priority task Hi is accessed with reading R and the low priority task Lo is accessed with reading R and recording W.

Il meccanismo C riguarda uno scambio di dati ciclico, laddove alla fine di un task Hi di alta priorità viene effettuata copiatura in istanti definiti. Il meccanismo C è impiegabile soltanto per il caso di applicazione 4. Sul task di alta priorità Hi si accede sia con lettura R si anche con registrazione W e sul task di bassa priorità Lo si accede unicamente con lettura R. Il meccanismo D riguarda parimenti uno scambio di dati ciclico, laddove all'inizio del task Hi di alta priorità in istanti definiti viene effettuata copiatura. Il meccanismo D è impiegabile parimenti soltanto per il caso di applicazione 4. Sul task Hi di alta priorità si accede solo con lettura R e sul task di bassa priorità Lo si accede con lettura R sia anche con registrazione W. Per il meccanismo E non ha luogo scambio di dati in quanto le variabili sono fra di loro indipendenti. Il meccanismo E è impiegabile per il caso di applicazione 5. Sul task di alta priorità Hi e sul task di bassa priorità Lo si accede sia con lettura R sia anche con registrazione W. Il meccanismo F riguarda tutti i casi particolari. Esso è utilizzabile per il caso di applicazione 6. Per il meccanismo F si accede al task Hi di alta priorità e al task Lo di bassa priorità sia con lettura R sia anche con registrazione W. Mechanism C concerns a cyclic data exchange, whereby at the end of a high-priority task Hi, copying is performed at defined instants. Mechanism C can be used only for application case 4. On the high priority task Hi one can access both with reading R and also with W registration and on the low priority task Lo one can access only with reading R. Mechanism D also concerns one cyclic data exchange, whereby copying is performed at the beginning of the high-priority task Hi at defined instants. Mechanism D can likewise be used only for application case 4. The high priority task Hi is accessed only with reading R and at the low priority task Lo it is accessed with reading R and also with recording W. For mechanism E there is no exchange of data as the variables are independent of each other. Mechanism E can be used for application case 5. On the high priority task Hi and on the low priority task Lo it is accessed both with reading R and also with recording W. The mechanism F concerns all particular cases. It can be used for application case 6. For the F mechanism, the high priority Hi task and the low priority Lo task are accessed both with reading R and also with recording W.

Per maggiori dettagli relativamente alla figura 1 si rimanda alla legenda della figura 1 rappresentata in figura 2. For more details regarding figure 1, please refer to the legend of figure 1 represented in figure 2.

In seguito viene illustrato più dettagliatamente ora il procedimento secondo l'invenzione della figura 9. Il procedimento inizia in un blocco funzionale 10. In un blocco funzionale 11 viene realizzato il programma computerizzato rispettivamente vengono realizzati i tasks e i processi del programma computerizzato. Successivamente in un blocco funzionale 12 vengono determinate tutte le varianti utilizzate nel programma computerizzato. Queste variabili possono essere memorizzate ad esempio in una tabella. Per ogni variabile vengono definiti i tasks, nei quali si accede alle variabili, ossia la variabile viene letta e,oppure registrata. Questa fase può essere resa automatica in quanto ad esempio un Parser valuta i Quellfiles del programma computerizzato. The method according to the invention of Figure 9 is now illustrated in more detail. The method begins in a functional block 10. The computerized program is implemented in a functional block 11, respectively, the tasks and processes of the computerized program are performed. All variants used in the computer program are then determined in a function block 12. These variables can be stored for example in a table. For each variable, the tasks are defined, in which the variables are accessed, ie the variable is read and / or recorded. This phase can be made automatic as for example a Parser evaluates the Quellfiles of the computerized program.

Successivamente in un blocco funzionale 13 vengono determinate tutte le variabili utilizzate in più tasks. Queste variabili vengono indicate come variabili intertasks. Questa fase può essere resa automatica in quanto ad esempio un adatto attrezzo (Tool) valuta la tabella con le variabili. Subsequently in a functional block 13 all the variables used in several tasks are determined. These variables are referred to as intertasks variables. This phase can be made automatic as for example a suitable tool evaluates the table with the variables.

Successivamente per ogni variabile intertask da meccanismi disponibili (vedere figure 1 e 3) si determinano i meccanismi teoricamente adottabili. A tale scopo in un blocco funzionale 14 viene selezionata una prima variabile intertask. In un blocco funzionale 15 quindi si determinano i meccanismi teoricamente adottabili per la variabile intertask selezionata. In un blocco di interrogazione 16 quindi viene verificato se sono state elaborate tutte le variabili intertask. In caso negativo si passa al blocco funzionale 14 e si seleziona la successiva variabile intertask. In caso affermativo si prosegue il procedimento secondo l'invenzione. Questa fase del procedimento rappresentata dai blocchi funzionali 14 fino a 16 può essere resa automatica, in quanto ad esempio con adatto attrezzo (Tool) valuta la tabella con le variabili ivi memorizzate. Subsequently for each intertask variable from available mechanisms (see Figures 1 and 3) the theoretically adoptable mechanisms are determined. For this purpose, a first intertask variable is selected in a function block 14. The theoretically adoptable mechanisms for the selected intertask variable are then determined in a functional block 15. It is then checked in a query block 16 whether all intertask variables have been processed. If not, move to function block 14 and select the next intertask variable. If so, the process according to the invention is continued. This step of the process represented by the functional blocks 14 to 16 can be made automatic, since for example with a suitable tool (Tool) it evaluates the table with the variables stored therein.

Nell'ulteriore andamento del procedimento si seleziona uno dei meccanismi adottabili per quelle variabili intertask sulle quali sono adottabili più meccanismi. Ciò può avvenire o da parte di un programmatore oppure in maniera automatica. A tale scopo in un blocco funzionale 17 viene dapprima selezionata una prima variabile intertask. In un blocco di interrogazione 18 si verifica se sono state elaborate tutte le variabili intertask. In caso negativo si passa ad un blocco di interrogazione 19, dove si controlla se per le variabili intertask selezionate sono adottabili più meccanismi. In caso affermativo in un blocco funzionale 20 viene selezionato uno dei meccanismi adottabili si passa al blocco funzionale 17. Se per la variabile intertask selezionata è impiegabile soltanto un meccanismo allora dal blocco di interrogazione 19 si passa direttamente al blocco funzionale 17. Nel blocco funzionale 17 quindi si seleziona la variabile intertask successiva. Non appena sono state elaborate tutte le variabili intertask viene proseguito il procedimento secondo l'invenzione per il blocco funzionale 21. In the further course of the procedure, one of the mechanisms that can be adopted is selected for those intertask variables on which more mechanisms can be adopted. This can be done either by a programmer or automatically. For this purpose, a first intertask variable is first selected in a function block 17. In a query block 18, it is checked whether all intertask variables have been processed. If not, it passes to an interrogation block 19, where it is checked whether more mechanisms can be adopted for the selected intertask variables. If so, one of the adoptable mechanisms is selected in a function block 20 and switches to function block 17. If only one mechanism can be used for the selected intertask variable, then from query block 19 it is switched directly to function block 17. In function block 17 then the next intertask variable is selected. As soon as all the intertask variables have been processed, the method according to the invention for function block 21 is continued.

Nel corso dell'ulteriore svolgimento del procedimento all'inizio rispettivamente alla fine dei tasks del programma computerizzato si inseriscono accorgimenti per un consistente scambio di dati nel programma computerizzato. Quali accorgimenti vengono inseriti in quali tasks dipende dai meccanismi selezionati per le variabili intertask. Nel blocco funzionale 21 in un primo momento viene selezionato un primo task del programma computerizzato. In un blocco di interrogazione 22 viene quindi verificato se il task selezionato contiene una variabile intertask. In caso negativo si passa direttamente al blocco funzionale 21 e viene selezionato il task successivo. In caso affermativo si passa ad un blocco funzionale 23, in quanto si inserisce l'accorgimento per lo scambio consistente di dati all'inizio rispettivamente alla fine del task selezionato. Successivamente in un ulteriore blocco di interrogazione 24 si verifica se sono stati elaborati tutti i tasks del programma computerizzato. In caso negativo si passa direttamente al blocco funzionale 21 e si seleziona il task successivo. In caso affermativo viene terminato il procedimento secondo l'invenzione in un blocco funzionale 25. In the course of the further development of the procedure, at the beginning or at the end of the tasks of the computerized program, arrangements are made for a consistent exchange of data in the computerized program. Which tricks are included in which tasks depends on the mechanisms selected for the intertask variables. In function block 21, a first task of the computer program is first selected. It is then checked in a query block 22 whether the selected task contains an intertask variable. If not, it goes directly to function block 21 and the next task is selected. In the affirmative case, one passes to a functional block 23, since the device for the consistent exchange of data is inserted at the beginning respectively at the end of the selected task. Subsequently, in a further interrogation block 24 it is checked whether all the tasks of the computerized program have been processed. If not, you go directly to function block 21 and select the next task. If so, the method according to the invention is terminated in a functional block 25.

In seguito viene illustrato più dettagliatamente un ulteriore esempio di realizzazione della presente invenzione in base alla figura 8. Si considera un programma computerizzato comprendente complessivamente otto tasks contrassegnati con 1 fino a 8. Il numero indica contemporaneamente la priorità dei tasks. Il tasks 1 presenta la massima priorità mentre il tasks 8 presenta la priorità più bassa in assoluto. A further example of embodiment of the present invention is illustrated in greater detail below on the basis of Figure 8. A computerized program is considered comprising altogether eight tasks marked with 1 to 8. The number simultaneously indicates the priority of the tasks. Tasks 1 has the highest priority while tasks 8 has the absolute lowest priority.

In un primo momento il programma computerizzato da un Parser viene esaminato secondo tutte le variabili. Nella tabella della figura 8 sono illustrate esemplificativamente cinque variabili g-vRad-ub, g-xFzg-ow, g-ASR-b, g-uFzr-ub, g-aRadub (vedere colonna 1). Per ogni variabile vengono definiti i tasks, nei quali si ricorre alla variabile, ossia la variabile viene letta e,oppure registrata (vedere colonne 2 e 3). At first the computerized program by a Parser is examined according to all the variables. In the table of Figure 8 five variables g-vRad-ub, g-xFzg-ow, g-ASR-b, g-uFzr-ub, g-aRadub are illustrated by way of example (see column 1). For each variable, the tasks are defined, in which the variable is used, ie the variable is read and / or recorded (see columns 2 and 3).

Nelle fasi successive si considerano soltanto le variabile intertask. Tutte le variabili che compaiono soltanto in un task non sono variabili intertask (vedere g-xFzg-uw, g-uFzr-ub). In the following steps, only the intertask variables are considered. All variables that appear only in a task are not intertask variables (see g-xFzg-uw, g-uFzr-ub).

Per le variabili intertask i meccanismi teoricamente applicabili sono indicati nella quarta colonna. Infine ad esempio dal programmatore dai meccanismi teoricamente adottabili si dovrà sceglierne uno. Il meccanismo selezionato è indicato nella colonna 5. For the intertask variables the theoretically applicable mechanisms are indicated in the fourth column. Finally, for example, from the programmer with theoretically adoptable mechanisms, one will have to be chosen. The mechanism selected is indicated in column 5.

Un attrezzo adatto (Tool) corrispondentemente al meccanismo selezionato all'inizio rispettivamente alla fine dei tasks può inserire adeguate istruzioni di programma per realizzare gli accorgimenti su descritti per assicurare la consistenza dei dati per una comunicazione intertask nel programma computerizzato. A suitable tool corresponding to the mechanism selected at the beginning or at the end of the tasks can insert adequate program instructions to carry out the above-described measures to ensure the consistency of the data for an intertask communication in the computerized program.

Come precedememnte descritto è assai grande l'entità dei meccanismi possibili. Le relazioni sono complesse. Pertanto può essere opportuno conformare l'attrezzo (Tool) per valutare la tabella con le variabili ivi memorizzate, in modo che le possibilità sono configurabili già nel campo preliminare. Se ad esempio un'applicazione consente la limitazione a soltanto una parte dei meccanismi (a limite un unico meccanismo) è possibile escludere a priori i meccanismi non necessari. Così si verificherà raramente il caso in cui per una variabile intertask sono impiegabili più meccanismi. Il programmatore può essere sollevato ancora più fortemente (a limite completamente) dall'operazione di sicurezza della consistenza dei dati. As previously described, the extent of the possible mechanisms is very large. Relationships are complex. Therefore it may be appropriate to conform the tool to evaluate the table with the variables stored therein, so that the possibilities are already configurable in the preliminary field. For example, if an application allows the limitation to only a part of the mechanisms (to limit a single mechanism) it is possible to exclude a priori the unnecessary mechanisms. Thus, the case will rarely arise where multiple mechanisms are usable for an intertask variable. The programmer can be relieved even more strongly (to limit completely) from the safety operation of the data consistency.

Claims (1)

Rivendicazioni 1.-Procedimento per realizzare una comunicazione intertask in un sistema di esercizio multitasking, che comanda l'esecuzione di un programma computerizzato suddiviso in più tasks con rispettivamente almeno un processo, caratterizzato dalle seguenti fasi: - determinazione (12) di tutte le variabili utilizzate nel programma utilizzato, - per ogni variabile determinazione dei tasks, nei quali si accede alla variabile e determinazione (13) delle variabili (variabili intertask) utilizzate in più tasks - per ogni variabile intertask determinazione (15) di meccanismi adottabili teoricamente per una comunicazione intertask da meccanismi disponibili - per le variabili intertask, per le quali è possibile adottare più meccanismi, selezione (20) di un meccanismo per una comunicazione intertask dai meccanismi teoricamente adottabili, e in dipendenza del meccanismo teoricamente adottabile oppure del meccanismo selezionato, inserimento (23) di accorgimenti nei tasks per uno scambio di dati del programma computerizzato. 2.-Procedimento secondo la rivendicazione 1, caratterizzato dal fatto che i meccanismi teoricamente adottabili vengono determinati per una comunicazione intertask in base ai tasks che si presentano nel programma computerizzato e alla loro priorità. 3.-Procedimento secondo la rivendicazione 1 oppure 2, caratterizzato dal fatto che con i meccanismi disponibili per una comunicazione intertask viene assicurato che durante l'elaborazione di una parte del programma computerizzato i contenuti di tutte le variabili intertask non vengono modificati da altre parti del programma computerizzato. 4.-Procedimento secondo le rivendicazioni da 1 fino a 3, caratterizzato dal fatto che con i meccanismi disponibili per una combinazione intertask viene assicurato che durante l'elaborazione del programma computerizzato vengono modificati insieme i contenuti di tutte le variabili intertask logicamente fra di loro coerenti. 5.-Procedimento secondo la rivendicazione 3, caratterizzato dal fatto che i meccanismi disponibili comprendono almeno uno dei meccanismi illustrati in seguito: scambio di dati attuale, copiatura all'inizio di un task di bassa priorità - cambio attuale dei dati, si ha soltanto una variabile intertask, nessuna copiatura - cambio attuale dei dati, copiatura alla fine di un task di bassa priorità scambio ciclico dei dati, copiatura alla fine di un task di alta priorità in istanti definiti scambio ciclico dei dati, copiatura di inizio di un task di alta priorità in istanti definiti - nessuno scambio dei dati, variabili fra di loro indipendenti, nessuna copiatura e - casi particolari. 6.-Procedimento secondo la rivendicazione 5, caratterizzato dal fatto che per lo scambio attuale dei dati .- ad un task di registrazione di alta priorità e ad almeno un task di lettura di bassa priorità viene associata rispettivamente una propria riproduzione di almeno una variabile intertask e all'inizio di ogni task di bassa priorità il contenuto di almeno una variabile intertask viene copiato dal task di alta priorità verso almeno un task di bassa priorità, se almeno una variabile intertask viene registrata nel task di alta priorità e viene letta in almeno un task di bassa priorità il contenuto di una variabile intertask fra un task di alta priorità ed un task di bassa priorità non viene copiato, se la variabile intertask viene registrata nel task di bassa priorità e viene letta in almeno un task di alta priorità, oppure - ad un task di registrazione di bassa priorità ed almeno un task di lettura di alta priorità viene associata rispettivamente una propria introduzione di almeno una variabile intertask e il contenuto di almeno una variabile intertask alla fine del task di bassa priorità viene copiato dal task di bassa priorità verso almeno un task di alta priorità, se la variabile intertask viene registrata nel task di bassa priorità e viene letta in almeno un task di alta priorità. 7,-Procedimento secondo la rivendicazione 6, caratterizzato dal fatto che se almeno una variabile intertask viene registrata nel task di alta priorità e viene letta in almeno un task di bassa priorità si impedisce un'interruzione della copiatura del contenuto di almeno una variabile di intertask da parte di un task di alta priorità. 8.-Procedimento secondo la rivendicazione 6, caratterizzato dal fatto che se la variabile intertask viene registrata nel task di bassa priorità e viene letta in almeno un task di alta priorità, viene resa possibile una interruzione dei calcoli con più operazioni di registrazione sulla variabile intertask nel task di bassa priorità. 9.-Procedimento secondo la rivendicazione 5, caratterizzato dal fatto che per lo scambio di dati ciclico - il contenuto di almeno una variabile intertask viene copiato in una prima richiesta di un task di alta priorità alla fine del task di alta priorità dal task di alta priorità verso almeno un task di bassa priorità, qualora almeno una variabile intertask viene registrata nel task di alta priorità e viene letta in almeno un task di bassa priorità, oppure il contenuto di almeno una variabile di intertask in una prima richiesta di un task di alta priorità all'inizio del task di alta priorità viene copiato da un task di bassa priorità verso almeno un task di alta priorità, se almeno una variabile intertask viene registrata nel task di bassa priorità e viene letta in almeno un task di alta priorità. Claims 1.-Procedure for carrying out an intertask communication in a multitasking operating system, which commands the execution of a computerized program divided into several tasks with respectively at least one process, characterized by the following phases: - determination (12) of all the variables used in the program used, - for each variable, determination of the tasks, in which the variable is accessed and determination (13) of the variables (intertask variables) used in several tasks - for each intertask variable determination (15) of mechanisms that can be theoretically adopted for intertask communication from available mechanisms - for intertask variables, for which it is possible to adopt more mechanisms, selection (20) of a mechanism for intertask communication from theoretically adoptable mechanisms, and depending on the theoretically adoptable mechanism or on the selected mechanism, insertion (23) of expedients in the tasks for an exchange of data of the computerized program. 2. Process according to Claim 1, characterized in that the theoretically adoptable mechanisms are determined for an intertask communication on the basis of the tasks that occur in the computerized program and their priority. Method according to Claim 1 or Claim 2, characterized in that by means of the mechanisms available for intertask communication it is ensured that during the processing of a part of the computer program the contents of all intertask variables are not changed by other parts of the computerized program. Method according to Claims 1 to 3, characterized in that the mechanisms available for an intertask combination ensure that the contents of all logically consistent intertask variables are changed together during the processing of the computer program . 5. Process according to Claim 3, characterized in that the available mechanisms comprise at least one of the mechanisms illustrated below: actual data exchange, copying at the start of a low priority task - current data change, there is only one intertask variable, no copying - current data change, copying at the end of a low priority task cyclic data exchange, copying at the end of a high priority task at defined instants cyclical data exchange, starting copying of a high priority task at defined instants - no data exchange, variables independent of each other, no copying and - special cases. 6. Method according to Claim 5, characterized in that for the actual data exchange .- an own reproduction of at least one intertask variable is associated with a high priority registration task and at least one low priority reading task and at the beginning of each low priority task the content of at least one intertask variable is copied from the high priority task to at least one low priority task, if at least one intertask variable is registered in the high priority task and is read in at least one low priority task the content of an intertask variable between a high priority task and a low priority task is not copied, if the intertask variable is registered in the low priority task and is read in at least one high priority task, or - an own entry of at least one intertask variable is associated with a low priority registration task and at least one high priority reading task and the content of at least one intertask variable at the end of the low priority task is copied from the low task priority towards at least one high priority task, if the intertask variable is registered in the low priority task and is read in at least one high priority task. 7, Process according to claim 6, characterized in that if at least one intertask variable is registered in the high-priority task and is read in at least one low-priority task, an interruption in copying the content of at least one intertask variable is prevented by a high priority task. 8. Method according to Claim 6, characterized in that if the intertask variable is registered in the low-priority task and is read in at least one high-priority task, it is possible to interrupt the calculations with several registration operations on the intertask variable in the low priority task. 9. Process according to Claim 5, characterized in that for cyclical data exchange - the content of at least one intertask variable is copied in a first request of a high priority task at the end of the high priority task from the high priority task to at least one low priority task, if at least one intertask variable is registered in the high priority and is read in at least one low priority task, or the content of at least one intertask variable in a first request of a high priority task at the beginning of the high priority task is copied from a low priority task to at least one high priority task, if at least one intertask variable is registered in the low priority task and is read in at least one high priority task.
ITMI20012343 2000-11-11 2001-11-08 PROCEDURE FOR MAKING AN INTERTASK COMMUNICATION IN A MULTITASKING EXERCISE SYSTEM ITMI20012343A1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE2000156046 DE10056046A1 (en) 2000-11-11 2000-11-11 Method for implementing an intertask communication in a multi-tasking OS controlling a program split into multiple tasks determines all used variables, all tasks for each variable and usable mechanisms for intertask variables.

Publications (1)

Publication Number Publication Date
ITMI20012343A1 true ITMI20012343A1 (en) 2003-05-08

Family

ID=7663026

Family Applications (1)

Application Number Title Priority Date Filing Date
ITMI20012343 ITMI20012343A1 (en) 2000-11-11 2001-11-08 PROCEDURE FOR MAKING AN INTERTASK COMMUNICATION IN A MULTITASKING EXERCISE SYSTEM

Country Status (3)

Country Link
DE (1) DE10056046A1 (en)
FR (1) FR2817634B1 (en)
IT (1) ITMI20012343A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3071334B1 (en) * 2017-09-19 2019-08-30 Psa Automobiles Sa METHOD FOR ENSURING DATA STABILITY OF A MULTICOAL PROCESSOR OF A MOTOR VEHICLE

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0365728B1 (en) * 1988-10-28 1993-12-29 International Business Machines Corporation Resource access for a multiprocessing computer system
EP0513206B1 (en) * 1990-01-30 1995-04-12 Johnson Service Company Networked facilities management system
US5278986A (en) * 1991-12-13 1994-01-11 Thinking Machines Corporation System and method for compiling a source code supporting data parallel variables
US5442789A (en) * 1994-03-31 1995-08-15 International Business Machines Corporation System and method for efficiently loading and removing selected functions on digital signal processors without interrupting execution of other functions on the digital signal processors
DE19903599A1 (en) * 1999-01-29 2000-08-03 Siemens Ag Process for secure access to at least one variable in a preemptive multitasking-controlled processor system

Also Published As

Publication number Publication date
FR2817634A1 (en) 2002-06-07
FR2817634B1 (en) 2007-06-08
DE10056046A1 (en) 2002-05-23

Similar Documents

Publication Publication Date Title
US5375239A (en) Use of build status indicators in connection with building of complex computer programs from source code parts
Needham et al. The Cambridge CAP computer and its protection system
CN100373331C (en) Multithreaded processor for processing multiple instruction streams independently of each other by flexibly controlling throughput in each instruction stream
US20040194071A1 (en) Compiling device, computer-readable recording medium on which a compiling program is recorded and a compiling method
JPS63266571A (en) Program generation control system for decentralized processing system
ITMI20012343A1 (en) PROCEDURE FOR MAKING AN INTERTASK COMMUNICATION IN A MULTITASKING EXERCISE SYSTEM
US6083278A (en) System and method for displaying and editing assembly language source codes
US5276821A (en) Operation assignment method and apparatus therefor
Strachey et al. Some proposals for improving the efficiency of ALGOL 60
Sint MIDL-A microinstruction description language
JPS63172303A (en) Programming display method for programmable controller
CN109932997A (en) A kind of programmable logic controller (PLC) core system
Kluge The organization of reduction, data flow, and control flow systems
JPH0451328A (en) Composite type instruction scheduling processing system
KR100210796B1 (en) Method for embodying history function in an ess
JP3014682B2 (en) Program control method and device
Elrad et al. A hierarchical and reflective framework for synchronization and scheduling controls
Tapken Implementing hierarchical graph-structures
JP2001014215A (en) Device for executing program
Naef Hard Real-Time and Synchronous Programming with SDL.
Sobek A constructive unified model of parallel computation
Domınguez et al. A way of dealing with behaviour of state machines
Ohl et al. State dependent release control in flexible manufacturing systems
JPH03218524A (en) Instruction processor
Sibley Invited papers—3: A new programming language: PL/1