X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/615213f9ac7f2241034fb619a551aa3559d8f0b0..1b238404f03d6ff882eff4267104225332fd8846:/doc/doxygen/uhood.doc diff --git a/doc/doxygen/uhood.doc b/doc/doxygen/uhood.doc index be3ce71027..df2de9bcab 100644 --- a/doc/doxygen/uhood.doc +++ b/doc/doxygen/uhood.doc @@ -1,13 +1,13 @@ /*! @page uhood Under the Hood -\tableofcontents +@tableofcontents TBD - Simulation Loop, LMM, sharing -> papers - Context Switching, privatization -> papers -\section simgrid_uhood_s4u S4U +@section simgrid_uhood_s4u S4U S4U classes are designed to be user process interfaces to Maestro resources. We provide an uniform interface to them: @@ -129,9 +129,9 @@ void SIMIX_process_unref(smx_process_t process) } ~~~ -\section simgrid_uhood_async Asynchronous operations +@section simgrid_uhood_async Asynchronous operations -\subsection simgrid_uhood_futures Futures +@subsection simgrid_uhood_futures Futures The `simgrid::kernel::Future` class has been added to SimGrid as an abstraction to represent asynchronous operations in the SimGrid maestro. Its API is based @@ -197,36 +197,36 @@ futures are currently not implemented in our futures however such as [`shared_future`](http://en.cppreference.com/w/cpp/thread/shared_future), [`when_any()`](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0159r0.html#futures.when_any). -\subsection simgrid_uhood_timer Timers +@subsection simgrid_uhood_timer Timers -\section simgrid_uhood_mc Model Checker +@section simgrid_uhood_mc Model Checker The current implementation of the model-checker uses two distinct processes: - the SimGrid model-checker (`simgrid-mc`) itself lives in the parent process; - - it spaws a child process for the SimGrid simulator/mastro and the simulated + - it spaws a child process for the SimGrid simulator/maestro and the simulated processes. -They communicate using a `AF_UNIX` `SOCK_DGRAM` socket and exchange messages +They communicate using a `AF_UNIX` `SOCK_SEQPACKET` socket and exchange messages defined in `mc_protocol.h`. The `SIMGRID_MC_SOCKET_FD` environment variable it set to the file descriptor of this socket in the child process. The model-checker analyzes, saves and restores the state of the model-checked process using the following techniques: -* the model-checker reads and writes in the model-checked address space; +- the model-checker reads and writes in the model-checked address space; -* the model-cheker `ptrace()`s the model-checked process and is thus able to +- the model-cheker `ptrace()`s the model-checked process and is thus able to know the state of the model-checked process if it crashes; -* DWARF debug informations are used to unwind the stack and identify local +- DWARF debug informations are used to unwind the stack and identify local variables; -* a custom heap is enabled in the model-checked process which allows the model +- a custom heap is enabled in the model-checked process which allows the model checker to know which chunks are allocated and which are freed. -\subsection simgrid_uhood_mc_address_space Address space +@subsection simgrid_uhood_mc_address_space Address space The `AddressSpace` is a base class used for both the model-checked process and its snapshots and has methods to read in the corresponding address space: @@ -243,7 +243,7 @@ Additional helper class include: - `RemotePtr` represents the address of an object of type `T` in some remote `AddressSpace` (it could be an alias to `Remote`). -\subsection simgrid_uhood_mc_address_elf_dwarf ELF and DWARF +@subsection simgrid_uhood_mc_address_elf_dwarf ELF and DWARF [ELF](http://refspecs.linuxbase.org/elf/elf.pdf) is a standard executable file and dynamic libraries file format.