X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/04fa61785ae1ecb5e5233ef0cb6d24145120d95e..d6d03a0a88c2673c9e5c604d63912b77bc17fdd4:/examples/s4u/README.doc
diff --git a/examples/s4u/README.doc b/examples/s4u/README.doc
index 6aaef6a3b5..fea2ad72c5 100644
--- a/examples/s4u/README.doc
+++ b/examples/s4u/README.doc
@@ -14,18 +14,89 @@ documentation, but it should remain readable directly.
@brief Find the S4U example fitting your needs in the archive.
- @ref s4u_ex_basics
-
-@section s4u_ex_basics Basic examples and features
+ - @ref s4u_ex_actors
+ - @ref s4u_ex_synchro
+ - @ref s4u_ex_actions
+
+@section s4u_ex_basics Basics of SimGrid simulation
+
+ - Creating actors: @ref examples/s4u/actor-create/s4u_actor-create.cpp and
+ @ref examples/s4u/actor-create/s4u_actor-create_d.xml \n
+ Shows how to start your actors to populate your simulation.
+
+ - Token ring: @ref examples/s4u/app-token-ring/s4u_app-token-ring.cpp \n
+ Shows how to implement a classical communication pattern, where a token is exchanged along a ring to reach every
+ participant.
+
+ - Master Workers: @ref examples/s4u/app-masterworker/s4u_app-masterworker.cpp \n
+ Another good old example, where one Master process has a bunch of task to dispatch to a set of several Worker
+ processes.
+
+@section s4u_ex_actors Acting on Actors
+
+ - Creating actors.
+ @ref examples/s4u/actor-create/s4u_actor-create.cpp \n
+ Most actors are started from the deployment XML file, but they exist other methods.
+
+ - Suspend and Resume actors.
+ @ref examples/s4u/actor-suspend/s4u_actor-suspend.cpp \n
+ Actors can be suspended and resumed during their executions
+ thanks to the @ref suspend and @ref resume methods.
+
+ - Kill actors.
+ @ref examples/s4u/actor-kill/s4u_actor-kill.cpp \n
+ Actors can forcefully stop other actors with the @ref kill method.
+
+ - Migrating Actors.
+ @ref examples/s4u/actor-migration/s4u_actor-migration.cpp \n
+ Actors can move or be moved from a host to another with the @ref migrate method.
@section s4u_ex_synchro Inter-Actor Synchronization
- - Mutex.
- @ref examples/s4u/mutex/s4u_mutex.cpp\n
- Shows how to use simgrid::s4u::Mutex synchronization objects
-
+ - Mutex: @ref examples/s4u/mutex/s4u_mutex.cpp \n
+ Shows how to use simgrid::s4u::Mutex synchronization objects.
+
+@section s4u_ex_actions Following Workload Traces
+
+This section details how to run trace-driven simulations. It is very
+handy when you want to test an algorithm or protocol that only react
+to external events. For example, many P2P protocols react to user
+requests, but do nothing if there is no such event.
+
+In such situations, you should write your protocol in C++, and separate
+the workload that you want to play onto your protocol in a separate
+text file. Declare a function handling each type of the events in your
+trace, register them using @ref xbt_replay_action_register in your
+main, and then run the simulation.
+
+Then, you can either have one trace file containing all your events,
+or a file per simulated process: the former may be easier to work
+with, but the second is more efficient on very large traces. Check
+also the tesh files in the example directories for details.
+
+ - Communication replay.
+ @ref examples/s4u/actions-comm/s4u_actions-comm.cpp \n
+ Presents a set of event handlers reproducing classical communication
+ primitives (asynchronous send/receive at the moment).
+
+ - I/O replay.
+ @ref examples/s4u/actions-storage/s4u_actions-storage.cpp \n
+ Presents a set of event handlers reproducing classical I/O
+ primitives (open, read, close).
+
*/
/**
+@example examples/s4u/actions-comm/s4u_actions-comm.cpp
+@example examples/s4u/actions-storage/s4u_actions-storage.cpp
+@example examples/s4u/actor-create/s4u_actor-create.cpp
+@example examples/s4u/actor-create/s4u_actor-create_d.xml
+@example examples/s4u/actor-kill/s4u_actor-kill.cpp
+@example examples/s4u/actor-migration/s4u_actor-migration.cpp
+@example examples/s4u/actor-suspend/s4u_actor-suspend.cpp
+@example examples/s4u/app-token-ring/s4u_app-token-ring.cpp
+@example examples/s4u/app-masterworker/s4u_app-masterworker.cpp
+
@example examples/s4u/mutex/s4u_mutex.cpp
*/
\ No newline at end of file