2 @defgroup MSG_API MSG: Legacy handling of CSP algorithms
3 @brief Simple programming environment
6 MSG is a simple API to write algorithms organized with Concurrent
7 Sequential Processes (CSP) that interact by exchanging messages. It
8 constitutes a convenient simplification of the reality of distributed
9 systems. It can be used to build rather realistic simulations, but
10 remains simple to use: most unpleasant technical elements can be
11 abstracted away rather easily.
13 \warning MSG used to be the main API of SimGrid 3, but we are
14 currently in the process of releasing SimGrid 4. The
15 tentative release date is Summer 2018. So MSG is frozen and
16 will probably never evolve. If you are starting a new
17 project, you should consider S4U instead. Note that the
18 support for MSG will not be removed from SimGrid before 2020
21 \section MSG_funct Offered functionalities
23 - \ref m_process_management
24 - \ref m_host_management
25 - \ref m_task_management
26 - \ref msg_mailbox_management
36 @defgroup msg_simulation Main MSG simulation Functions
38 @brief How to setup and control your simulation.
40 The basic workflow is the following (check the \ref msg_examples for
43 -# Initialize the library with #MSG_init
44 -# Create a platform (usually by parsing a file with
45 #MSG_create_environment)
46 -# Register the functions that your processes are supposed to run with
47 #MSG_function_register (and maybe #MSG_function_register_default)
48 -# Launch your processes from a deployment file with #MSG_launch_application
49 -# Run the simulation with #MSG_main
52 /** @defgroup m_process_management Process Management Functions
54 * @brief This section describes the process structure of MSG
55 * (#msg_process_t) and the functions for managing it.
58 /** @defgroup m_host_management Host Management Functions
60 * @brief Host structure of MSG
63 /** @defgroup m_task_management Task Management Functions
65 * @brief Task structure of MSG (#msg_task_t) and associated functions. See
66 * \ref msg_task_usage to see how to put the tasks in action.
69 /** @defgroup msg_mailbox_management Mailbox Management Functions
71 * @brief Functions associated to mailboxes.
74 /** @defgroup msg_task_usage Task Actions
76 * @brief This section describes the functions that can be used
77 * by a process to execute, communicate or otherwise handle some task.
80 /** @defgroup msg_synchro Explicit Synchronization Functions
82 * @brief Explicit synchronization mechanisms: semaphores (#msg_sem_t) and friends.
84 * In some situations, these things are very helpful to synchronize processes without message exchanges.
87 /** @defgroup msg_VMs VMs
89 * @brief Interface created to mimic IaaS clouds.
91 * With it, you can create virtual machines to put your processes
92 * into, and interact directly with the VMs to manage groups of
97 /** @defgroup msg_storage_management Storage Management Functions
99 * @brief Storage structure of MSG (#msg_storage_t) and associated functions, inspired from POSIX.
102 /** @defgroup msg_file File Management Functions
104 @brief MSG files (#msg_file_t) and associated functions, inspired from POSIX.