Introduction

Ce didacticiel est destiné aux utilisateurs sachant écrire un peu de code de la Simple Virtual Machine.

Dans ce didacticiel, vous allez découvrir l'entité responsable de l'exécution de tout le code au sein de la machine virtuelle.

Le temps de lecture de ce didacticiel est estimé à 10 minutes.

Mise en place

Pour commencer, créez le canevas de l'application dans le fichier exécutable systeme.svm en utilisant ce code :

#!/usr/bin/env svm
DESCRIPTION
System exploration
END
LOG
DEBUG "System"
PLUGIN "svmrun.so"
PLUGIN "svmint.so"
PROCESS "application"
	CODE "main" INLINE
		:debug BREAK "application"
		:memory INT/i
		0 -> &i
	:label loop
		:run.parallel_call $"child" i "child" SCHED=run.parallel PARAMS=COPY
		:shift &i
		:goto loop :when @&i IN &0*3
		:shutdown
	:symbol child
		:memory STR/s
		:int.print @&P -> &s
		:debug BREAK @&s
	END
END

Système

Le système est l'entité de la machine virtuelle qui contrôle l'exécution de tout le code de l'application.

Il contient notamment les ordonnanceurs et les processus créés dans la machine, et surveille leur terminaison.

Evénements

Pour orchestrer l'exécution des processus avec leurs ordonnanceurs, le système met à disposition de ces derniers une file d'événements servant de canal de communication entre processus et ordonnanceurs.

Ces événements sont affichés dans le débugueur. Lancez l'application en mode débugueur, puis cliquez sur "Events" dans le menu principal. Executez l'application pas à pas :

Le système contrôle l'exécution du code dans la machine virtuelle.

Le système et les éléments qui le composent communiquent entre eux grâce à des événements.

Conclusion

Vous venez de voir la plus haute entité d'exécution de code de la machine virtuelle.

Les événements qui sont échangés au sein du système permettent de mettre au point un nouvel ordonnanceur, ou de comprendre l'enchaînement d'actions pouvant mener à un comportement incorrect de l'application.