Integrations (PTC products, 3rd party products and code) > Code integration (Ada, ARINC 653, C, C#, C++, IDL, Java, SQL and VB) > ARINC 653 for VxWorks 653 code > ARINC 653 for VxWorks 653 profile items > Process (ARINC for VxWorks code)
  
Process (ARINC for VxWorks code)
Conceptually, a Process has the same meaning as normal in computing - a sequence of instructions executing independently or semi-independently of other processes, synonymous to "task". For more information see the ARINC SPECIFICATION 653P1-2, December 1, 2005. Within the model, a process is a class within an application project - the process containing a special operation (the entry point) where infrastructure code will call the OS in such a way as the OS calls the entry point operation in a new task. Processes are therefore scoped by Application Projects - however they are not created explicitly on the Application Projects. Processes are created automatically by creating a Process Part on the Application (or Application Part) linked with the Application Project.
A Process is created and started in the application startup code that is generated for the Process' associated Application Part.
/* Header File */
extern PROCESS_ID_TYPE Process1_id;
/* Implementation File */
#include "Process1.h"
PROCESS_ID_TYPE Process1_id;
...
PROCESS_ATTRIBUTE_TYPE Process1_attr;
static const char Process1_name[] = "Process1";
RETURN_CODE_TYPE rc;
int i;
for(i = 0; i <= MAX_NAME_LENGTH-1 && Process1_name[i]; i++)
Process1_attr.NAME[i] = Process1_name[i];
Process1_attr.NAME[i] = '\0'
Process1_attr.ENTRY_POINT = (SYSTEM_ADDRESS_TYPE)entrypoint;
Process1_attr.STACK_SIZE = 0x800;
Process1_attr.BASE_PRIORITY = 10;
Process1_attr.PERIOD = INFINITE_TIME_VALUE;
Process1_attr.TIME_CAPACITY = INFINITE_TIME_VALUE;
Process1_attr.DEADLINE = HARD;
CREATE_PROCESS(&Process1_attr, &Process1_id, &rc);
ASSERT(rc == NO_ERROR);
The profile creates a Process when you create a Process Part: To create a Process Part: on a Configuration Diagram, click the Process Part toolbar button, and then click within an Application Part. You are prompted to specify the name of the Process.
When you create a Process Part on an Application Part, the profile creates the following items in the model:
A Process Part on the Configuration Diagram.
A Process item that types the Process Part. The Process item is scoped to the Application Project that is associated with the Application Part.
The profile creates an entry point operation on the Process named entrypoint. If you create an alternative Operation to use as an entry point, ensure that you reference that Operation through the EntryPoint property of the Process.
Specify the BasePriority, Deadline, EntryPoint, Period, StackSize and TimeCapability properties of the Process through the Process' Property Pages: on the Process' Property Pages, click the Process tab, and then set the tagged value of each property.
You can view all the Processes in the model through the Process folder in the ARINC 653 Profile pane.
A Process is based on a UML Class.
The following sections provide information about how a Process is used in the model.
Shown on these diagrams
Configuration Diagram
ARINC properties
These properties are set on the Process tab of the Process' Property Pages.
BasePriority - used to generate the BASE_PRIORITY attribute value of the process in the startup code for the application.
Deadline - used to generate the DEADLINE attribute value of the process in the startup code for the application.
EntryPoint - used to generate the ENTRY_POINT attribute value of the process in the startup code for the application.
Period - used to generate the PERIOD attribute value of the process in the startup code for the application.
StackSize - used to generate the STACK_SIZE attribute value of the process in the startup code for the application.
TimeCapacity - used to generate the TIME_CAPACITY attribute value of the process in the startup code for the application.