SimGrid: Process Management Functions

SimGrid 3.10 Versatile Simulation of Distributed Systems

- Home page
- Online documentation
- Dev's Corner

All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
Functions
Process Management Functions
SIMIX

## Functions
void | simcall_process_create (smx_process_t *process, const char *name, xbt_main_func_t code, void *data, const char *hostname, double kill_time, int argc, char **argv, xbt_dict_t properties, int auto_restart)
| Creates and runs a new SIMIX process.
void | simcall_process_kill (smx_process_t process)
| Kills a SIMIX process.
void | simcall_process_killall (int reset_pid)
| Kills all SIMIX processes.
void | simcall_process_cleanup (smx_process_t process)
| Cleans up a SIMIX process.
void | simcall_process_change_host (smx_process_t process, smx_host_t dest)
| Migrates an agent to another location.
void | simcall_process_suspend (smx_process_t process)
| Suspends a process.
void | simcall_process_resume (smx_process_t process)
| Resumes a suspended process.
int | simcall_process_count (void)
| Returns the amount of SIMIX processes in the system.
int | simcall_process_get_PID (smx_process_t process)
| Return the PID of a smx_process_t.
int | simcall_process_get_PPID (smx_process_t process)
| Return the parent PID of a smx_process_t.
void * | simcall_process_get_data (smx_process_t process)
| Return the user data of a smx_process_t.
void | simcall_process_set_data (smx_process_t process, void *data)
| Set the user data of a smx_process_t.
void | simcall_process_set_kill_time (smx_process_t process, double kill_time)
| Set the kill time of a process.
smx_host_t | simcall_process_get_host (smx_process_t process)
| Return the location on which an agent is running.
const char * | simcall_process_get_name (smx_process_t process)
| Return the name of an agent.
int | simcall_process_is_suspended (smx_process_t process)
| Returns true if the process is suspended .
xbt_dict_t | simcall_process_get_properties (smx_process_t process)
| Return the properties.
void | simcall_process_on_exit (smx_process_t process, int_f_pvoid_t fun, void *data)
| Add an on_exit function Add an on_exit function which will be executed when the process exits/is killed.
void | simcall_process_auto_restart_set (smx_process_t process, int auto_restart)
| Sets the process to be auto-restarted or not by SIMIX when its host comes back up. Will restart the process when the host comes back up if auto_restart is set to 1.
smx_process_t | simcall_process_restart (smx_process_t process)
| Restarts the process, killing it and starting it again from scratch.
e_smx_state_t | simcall_process_sleep (double duration)
| Creates a new sleep SIMIX action.
typedef struct s_smx_process * | smx_process_t
| Process datatypeA processt may be defined as a code, with some private data, executing in a location.

## Detailed Description

## Typedef Documentation

typedef struct s_smx_process* smx_process_t

Process datatypeA processt may be defined as a code, with some private data, executing in a location.

See Also
  Process Management Functions

## Function Documentation

void simcall_process_create | ( | smx_process_t * | process,
|  | const char * | name,
|  | xbt_main_func_t | code,
|  | void * | data,
|  | const char * | hostname,
|  | double | kill_time,
|  | int | argc,
|  | char ** | argv,
|  | xbt_dict_t | properties,
|  | int | auto_restart
| ) |  |

Creates and runs a new SIMIX process.

The structure and the corresponding thread are created and put in the list of ready processes.

Parameters

  process | the process created will be stored in this pointer
  name | a name for the process. It is for user-level information and can be NULL.
  code | the main function of the process
  data | a pointer to any data one may want to attach to the new object. It is for user-level information and can be NULL. It can be retrieved with the function simcall_process_get_data.
  hostname | name of the host where the new agent is executed.
  kill_time | time when the process is killed
  argc | first argument passed to code
  argv | second argument passed to code
  properties | the properties of the process
  auto_restart | either it is autorestarting or not.

void simcall_process_kill | ( | smx_process_t | process | ) |

Kills a SIMIX process.

This function simply kills a process.

Parameters

  process | poor victim

void simcall_process_cleanup | ( | smx_process_t | process | ) |

Cleans up a SIMIX process.

Parameters

  process | poor victim (must have already been killed)

void simcall_process_change_host | ( | smx_process_t | process,
|  | smx_host_t | dest
| ) |  |

Migrates an agent to another location.

This function changes the value of the host on which process is running.

Parameters

  process | the process to migrate
  dest | name of the new host

void simcall_process_suspend | ( | smx_process_t | process | ) |

Suspends a process.

This function suspends the process by suspending the action it was waiting for completion.

Parameters

  process | a SIMIX process

void simcall_process_resume | ( | smx_process_t | process | ) |

Resumes a suspended process.

This function resumes a suspended process by resuming the action it was waiting for completion.

Parameters

  process | a SIMIX process

int simcall_process_count | ( | void |  | ) |

Returns the amount of SIMIX processes in the system.

Maestro internal process is not counted, only user code processes are

int simcall_process_get_PID | ( | smx_process_t | process | ) |

Return the PID of a smx_process_t.

Parameters

  process | a SIMIX process

Returns
  the PID of this process

int simcall_process_get_PPID | ( | smx_process_t | process | ) |

Return the parent PID of a smx_process_t.

Parameters

  process | a SIMIX process

Returns
  the PID of this process parenrt

void* simcall_process_get_data | ( | smx_process_t | process | ) |

Return the user data of a smx_process_t.

Parameters

  process | a SIMIX process

Returns
  the user data of this process

void simcall_process_set_data | ( | smx_process_t | process,
|  | void * | data
| ) |  |

Set the user data of a smx_process_t.

This functions sets the user data associated to process.

Parameters

  process | SIMIX process
  data | User data

void simcall_process_set_kill_time | ( | smx_process_t | process,
|  | double | kill_time
| ) |  |

Set the kill time of a process.

Parameters

  process | a process
  kill_time | a double

smx_host_t simcall_process_get_host | ( | smx_process_t | process | ) |

Return the location on which an agent is running.

This functions returns the smx_host_t corresponding to the location on which process is running.

Parameters

  process | SIMIX process

Returns
  SIMIX host

const char* simcall_process_get_name | ( | smx_process_t | process | ) |

Return the name of an agent.

This functions checks whether process is a valid pointer or not and return its name.

Parameters

  process | SIMIX process

Returns
  The process name

int simcall_process_is_suspended | ( | smx_process_t | process | ) |

Returns true if the process is suspended .

This checks whether a process is suspended or not by inspecting the task on which it was waiting for the completion.

Parameters

  process | SIMIX process

Returns
  1, if the process is suspended, else 0.

xbt_dict_t simcall_process_get_properties | ( | smx_process_t | process | ) |

Return the properties.

This functions returns the properties associated with this process

e_smx_state_t simcall_process_sleep | ( | double | duration | ) |

Creates a new sleep SIMIX action.

This function creates a SURF action and allocates the data necessary to create the SIMIX action. It can raise a host_error exception if the host crashed. The default SIMIX name of the action is "sleep".

Parameters

  duration | Time duration of the sleep.

Returns
  A result telling whether the sleep was successful