Functions

Management Functions of Agents
[MSG native]

This section describes the agent structure of MSG (m_process_t) and the functions for managing it. More...

Functions

m_process_t MSG_process_create (const char *name, xbt_main_func_t code, void *data, m_host_t host)
 Creates and runs a new m_process_t.
m_process_t MSG_process_create_with_arguments (const char *name, xbt_main_func_t code, void *data, m_host_t host, int argc, char **argv)
 Creates and runs a new m_process_t.
m_process_t MSG_process_create_with_environment (const char *name, xbt_main_func_t code, void *data, m_host_t host, int argc, char **argv, xbt_dict_t properties)
 Creates and runs a new m_process_t.
void MSG_process_kill (m_process_t process)
MSG_error_t MSG_process_change_host (m_host_t host)
 Migrates an agent to another location.
void * MSG_process_get_data (m_process_t process)
 Return the user data of a m_process_t.
MSG_error_t MSG_process_set_data (m_process_t process, void *data)
 Set the user data of a m_process_t.
m_host_t MSG_process_get_host (m_process_t process)
 Return the location on which an agent is running.
m_process_t MSG_process_from_PID (int PID)
 Return a m_process_t given its PID.
int MSG_process_get_PID (m_process_t process)
 Returns the process ID of process.
int MSG_process_get_PPID (m_process_t process)
 Returns the process ID of the parent of process.
const char * MSG_process_get_name (m_process_t process)
 Return the name of an agent.
const char * MSG_process_get_property_value (m_process_t process, const char *name)
 Returns the value of a given process property.
xbt_dict_t MSG_process_get_properties (m_process_t process)
 Return the list of properties.
int MSG_process_self_PID (void)
 Return the PID of the current agent.
int MSG_process_self_PPID (void)
 Return the PPID of the current agent.
m_process_t MSG_process_self (void)
 Return the current agent.
MSG_error_t MSG_process_suspend (m_process_t process)
 Suspend the process.
MSG_error_t MSG_process_resume (m_process_t process)
 Resume a suspended process.
int MSG_process_is_suspended (m_process_t process)
 Returns true if the process is suspended .

Detailed Description

This section describes the agent structure of MSG (m_process_t) and the functions for managing it.

We need to simulate many independent scheduling decisions, so the concept of process is at the heart of the simulator. A process may be defined as a code, with some private data, executing in a location.

See also:
m_process_t

Function Documentation

m_process_t MSG_process_create ( const char *  name,
xbt_main_func_t  code,
void *  data,
m_host_t  host 
)

Creates and runs a new m_process_t.

Does exactly the same as MSG_process_create_with_arguments but without providing standard arguments (argc, argv, start_time, kill_time).

See also:
MSG_process_create_with_arguments
m_process_t MSG_process_create_with_arguments ( const char *  name,
xbt_main_func_t  code,
void *  data,
m_host_t  host,
int  argc,
char **  argv 
)

Creates and runs a new m_process_t.

A constructor for m_process_t taking four arguments and returning the corresponding object. The structure (and the corresponding thread) is created, and put in the list of ready process.

Parameters:
name a name for the object. It is for user-level information and can be NULL.
code is a function describing the behavior of the agent. It should then only use functions described in Management Functions of Agents (to create a new m_process_t for example), in Management functions of Hosts (only the read-only functions i.e. whose name contains the word get), in Managing functions of Tasks (to create or destroy some m_task_t for example) and in MSG Operating System Functions (to handle file transfers and task processing).
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 MSG_process_get_data.
host the location where the new agent is executed.
argc first argument passed to code
argv second argument passed to code
See also:
m_process_t
Returns:
The new corresponding object.
m_process_t MSG_process_create_with_environment ( const char *  name,
xbt_main_func_t  code,
void *  data,
m_host_t  host,
int  argc,
char **  argv,
xbt_dict_t  properties 
)

Creates and runs a new m_process_t.

A constructor for m_process_t taking four arguments and returning the corresponding object. The structure (and the corresponding thread) is created, and put in the list of ready process.

Parameters:
name a name for the object. It is for user-level information and can be NULL.
code is a function describing the behavior of the agent. It should then only use functions described in Management Functions of Agents (to create a new m_process_t for example), in Management functions of Hosts (only the read-only functions i.e. whose name contains the word get), in Managing functions of Tasks (to create or destroy some m_task_t for example) and in MSG Operating System Functions (to handle file transfers and task processing).
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 MSG_process_get_data.
host the location where the new agent is executed.
argc first argument passed to code
argv second argument passed to code
properties list a properties defined for this process
See also:
m_process_t
Returns:
The new corresponding object.
void MSG_process_kill ( m_process_t  process  ) 
Parameters:
process poor victim

This function simply kills a process... scarry isn't it ? :)

MSG_error_t MSG_process_change_host ( m_host_t  host  ) 

Migrates an agent to another location.

This function checks whether process and host are valid pointers and change the value of the m_host_t on which process is running.

void* MSG_process_get_data ( m_process_t  process  ) 

Return the user data of a m_process_t.

This function checks whether process is a valid pointer or not and return the user data associated to process if it is possible.

MSG_error_t MSG_process_set_data ( m_process_t  process,
void *  data 
)

Set the user data of a m_process_t.

This function checks whether process is a valid pointer or not and set the user data associated to process if it is possible.

m_host_t MSG_process_get_host ( m_process_t  process  ) 

Return the location on which an agent is running.

This function checks whether process is a valid pointer or not and return the m_host_t corresponding to the location on which process is running.

m_process_t MSG_process_from_PID ( int  PID  ) 

Return a m_process_t given its PID.

This function search in the list of all the created m_process_t for a m_process_t whose PID is equal to PID. If no host is found, NULL is returned. Note that the PID are uniq in the whole simulation, not only on a given host.

int MSG_process_get_PID ( m_process_t  process  ) 

Returns the process ID of process.

This function checks whether process is a valid pointer or not and return its PID (or 0 in case of problem).

int MSG_process_get_PPID ( m_process_t  process  ) 

Returns the process ID of the parent of process.

This function checks whether process is a valid pointer or not and return its PID. Returns -1 if the agent has not been created by another agent.

const char* MSG_process_get_name ( m_process_t  process  ) 

Return the name of an agent.

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

const char* MSG_process_get_property_value ( m_process_t  process,
const char *  name 
)

Returns the value of a given process property.

Parameters:
process a process
name a property name
Returns:
value of a property (or NULL if the property is not set)
xbt_dict_t MSG_process_get_properties ( m_process_t  process  ) 

Return the list of properties.

This function returns all the parameters associated with a process

int MSG_process_self_PID ( void   ) 

Return the PID of the current agent.

This function returns the PID of the currently running m_process_t.

int MSG_process_self_PPID ( void   ) 

Return the PPID of the current agent.

This function returns the PID of the parent of the currently running m_process_t.

m_process_t MSG_process_self ( void   ) 

Return the current agent.

This function returns the currently running m_process_t.

MSG_error_t MSG_process_suspend ( m_process_t  process  ) 

Suspend the process.

This function suspends the process by suspending the task on which it was waiting for the completion.

MSG_error_t MSG_process_resume ( m_process_t  process  ) 

Resume a suspended process.

This function resumes a suspended process by resuming the task on which it was waiting for the completion.

int MSG_process_is_suspended ( m_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.


Back to the main Simgrid Documentation page Generated for SimGridAPI by doxygen