TacOS-team/tacos — Issue #112: [Signaux] Signaux synchrones
Author: Addict7
Created: 2012-02-10 18:20:28+00:00
State: open
Labels: Feature, kernel

Actuellement, on ne gère que les signaux asynchrones, c'est à dire les signaux dont l'exécution du signal est reportée au prochain scheduling du processus concerné.
Dans le cas ou le processus émetteur est également le processus récepteur d'un signal, on aimerait pouvoir exécuter directement le signal (dans le sens où dans un système idée, un signal est exécuté le plus vite possible). Et c'est celà qu'on appel un signal.
Faire cela n'est pas forcement trivial. Le principe sera, dans sys_kill, de sauvegarder le cadre de pile courant, et créer un cadre de pile permettant d'exécuter le handler ainsi que d'exécuter le syscall sys_sigret à la fin du handler, et de faire un iret. (si le cadre de pile est correctement concervé, sys_sigret se chargera de le rétablir comme il le fait pour un signal asynchrone, et son iret se comportera comme aurait du se comporter celui de sys_kill s'il n'y avait pas eu de iret anticipé).