SimGrid  3.21
Versatile Simulation of Distributed Systems
s4u_VirtualMachine.cpp File Reference
#include "simgrid/s4u/Actor.hpp"
#include "simgrid/vm.h"
#include "src/include/surf/surf.hpp"
#include "src/plugins/vm/VirtualMachineImpl.hpp"
#include "src/plugins/vm/VmHostExt.hpp"
#include "src/simix/smx_host_private.hpp"
#include "src/surf/cpu_cas01.hpp"

Namespaces

 simgrid
 
 simgrid::s4u
 

Functions

 XBT_LOG_NEW_DEFAULT_CATEGORY (s4u_vm, "S4U virtual machines")
 
sg_vm_t sg_vm_create_core (sg_host_t pm, const char *name)
 Create a new VM object with the default parameters A VM is treated as a host. More...
 
sg_vm_t sg_vm_create_multicore (sg_host_t pm, const char *name, int coreAmount)
 Create a new VM object with the default parameters, but with a specified amount of cores A VM is treated as a host. More...
 
const char * sg_vm_get_name (sg_vm_t vm)
 
sg_host_t sg_vm_get_pm (sg_vm_t vm)
 Get the physical host of a given VM. More...
 
void sg_vm_set_ramsize (sg_vm_t vm, size_t size)
 
size_t sg_vm_get_ramsize (sg_vm_t vm)
 
void sg_vm_set_bound (sg_vm_t vm, double bound)
 
int sg_vm_is_created (sg_vm_t vm)
 Returns whether the given VM has just created, not running. More...
 
int sg_vm_is_running (sg_vm_t vm)
 Returns whether the given VM is currently running. More...
 
int sg_vm_is_suspended (sg_vm_t vm)
 Returns whether the given VM is currently suspended, not running. More...
 
void sg_vm_start (sg_vm_t vm)
 Start a vm (i.e., boot the guest operating system) If the VM cannot be started (because of memory over-provisioning), an exception is generated. More...
 
void sg_vm_suspend (sg_vm_t vm)
 Immediately suspend the execution of all processes within the given VM. More...
 
void sg_vm_resume (sg_vm_t vm)
 Resume the execution of the VM. More...
 
void sg_vm_shutdown (sg_vm_t vm)
 Immediately kills all processes within the given VM. More...
 
void sg_vm_destroy (sg_vm_t vm)
 Destroy a VM. More...
 

Function Documentation

◆ XBT_LOG_NEW_DEFAULT_CATEGORY()

XBT_LOG_NEW_DEFAULT_CATEGORY ( s4u_vm  ,
"S4U virtual machines"   
)

◆ sg_vm_create_core()

sg_vm_t sg_vm_create_core ( sg_host_t  pm,
const char *  name 
)

Create a new VM object with the default parameters A VM is treated as a host.

Opaque type describing a Virtual Machine.

The name of the VM must be unique among all hosts.

◆ sg_vm_create_multicore()

sg_vm_t sg_vm_create_multicore ( sg_host_t  pm,
const char *  name,
int  coreAmount 
)

Create a new VM object with the default parameters, but with a specified amount of cores A VM is treated as a host.

The name of the VM must be unique among all hosts.

◆ sg_vm_get_name()

const char* sg_vm_get_name ( sg_vm_t  vm)

◆ sg_vm_get_pm()

sg_host_t sg_vm_get_pm ( sg_vm_t  vm)

Get the physical host of a given VM.

◆ sg_vm_set_ramsize()

void sg_vm_set_ramsize ( sg_vm_t  vm,
size_t  size 
)

◆ sg_vm_get_ramsize()

size_t sg_vm_get_ramsize ( sg_vm_t  vm)

◆ sg_vm_set_bound()

void sg_vm_set_bound ( sg_vm_t  vm,
double  bound 
)

◆ sg_vm_is_created()

int sg_vm_is_created ( sg_vm_t  vm)

Returns whether the given VM has just created, not running.

◆ sg_vm_is_running()

int sg_vm_is_running ( sg_vm_t  vm)

Returns whether the given VM is currently running.

◆ sg_vm_is_suspended()

int sg_vm_is_suspended ( sg_vm_t  vm)

Returns whether the given VM is currently suspended, not running.

◆ sg_vm_start()

void sg_vm_start ( sg_vm_t  vm)

Start a vm (i.e., boot the guest operating system) If the VM cannot be started (because of memory over-provisioning), an exception is generated.

◆ sg_vm_suspend()

void sg_vm_suspend ( sg_vm_t  vm)

Immediately suspend the execution of all processes within the given VM.

This function stops the execution of the VM. All the processes on this VM will pause. The state of the VM is preserved. We can later resume it again.

No suspension cost occurs.

◆ sg_vm_resume()

void sg_vm_resume ( sg_vm_t  vm)

Resume the execution of the VM.

All processes on the VM run again. No resume cost occurs.

◆ sg_vm_shutdown()

void sg_vm_shutdown ( sg_vm_t  vm)

Immediately kills all processes within the given VM.

Any memory that they allocated will be leaked, unless you used MSG_process_on_exit().

No extra delay occurs. If you want to simulate this too, you want to use a MSG_process_sleep().

◆ sg_vm_destroy()

void sg_vm_destroy ( sg_vm_t  vm)

Destroy a VM.

Destroy the VM object from the simulation.