Sto cercando di implementare uno scheduler di prelazione in C, ma ho alcuni problemi di comprensione:
Quando lo scheduler viene chiamato da un interrupt, può verificarsi un cambio di contesto. L'interruttore di contesto può essere programmato solo nell'assembler. Nel mio programma C un compito è una funzione. Se lo scheduler viene chiamato da un interrupt e si verifica un interruttore di contesto, non riesco ad avviare una nuova attività nell'interrupt. Nell'interrupt memorizzo il contesto dell'attività corrente (non ne sono sicuro). Ma dopo l'interruzione il programma tornerà alla funzione. Allora, dove posso iniziare una nuova attività? Dovrei tornare al loop principale in assembler dopo aver salvato il contesto?