6) Quali sono le problematiche relative alle operazioni remote sui processi?
Creazione remota: si usa una primitiva di CreateProcess
La gerarchia si espande su nodi diversi (vedi figura)
L’esecuzione dei processi (creatore/padre e creato/figlio) può essere concorrente o con attesa del padre
La condivisione dei processi può essere completa o parziale.
Uso di primitive in UNIX: come salvare e ripristinare lo stato di un processo in presenza di un kernel monolitico come Unix?
uso di setjmp: salvataggio dello stato di un processo per un ripristino successivo (Simile ad un checkpoint).
uso di longjmp: ripristino dello stato precedente del processo.
Sintassi:
int setjmp (jmp_buffer env);
int longjmp (jmp_buffer env, int valore);
env è l’area di memorizzazione dello stato
setjmp ritorna 0 alla prima invocazione, restituisce il valore specificato in longjmp ogni altra volta
In Unix si possono usare le primitive jmp per ottenere la esecuzione di un processo da un punto diverso da quello iniziale.
In UNIX, non c'è condivisione e, naturalmente, non esiste la fork remota. La realizzazione avviene con:
Sistema operativo Sprite:
qui esiste la fork remota:
In Sprite, si condividono variabili (vedi figura)